개요: Claude Code란 무엇인가?
Claude Code는 Anthropic에서 개발한 CLI 기반의 에이전틱 코딩 도구입니다. 명령줄에서 Claude AI를 호출하여 다음을 수행할 수 있습니다.
- 코드를 읽고 이해하고 작성
- 테스트를 자동화하고 커밋 메시지를 생성
- PR 작성 및 코드 리뷰 자동화
- 스크립트 실행, MCP 기반 도구 활용
- GitHub, Jupyter, 터미널, 디자인 목업 등 다양한 도구와 연동
🎯 철학 및 설계 원칙
특징 | 설명 |
---|---|
로우레벨 & 비의존적 | 특정 워크플로우 강제 없음, 사용자가 주도하는 구성 |
고유연성 | 슬래시 명령어, MCP 도구, 커스텀 CLI 명령 등 확장성 극대화 |
보안 지향 | 시스템 변경 시 항상 승인 요구, 도구별 allowlist 구성 |
학습 곡선 존재 | 초기 사용자에겐 난이도 있으나 강력한 자동화 가능 |
1. 초기 설정 및 커스터마이징
📁 CLAUDE.md 파일
Claude의 "지식 문서"로, Claude가 시작 시 자동으로 참조합니다.
주요 내용
- 자주 쓰는 명령어 (
npm run build
) - 코드 스타일 가이드 (
ES module 사용
) - 테스트 전략, 브랜치 네이밍 규칙
- pyenv, Docker 등 환경 설정법
- 경고 사항, 예외 처리, 주의점
위치 우선순위
위치 | 설명 |
---|---|
프로젝트 루트 | 가장 기본적인 참조 대상 |
상위 디렉토리 | 모노레포에서 유용 |
하위 디렉토리 | 파일 작업 시 자동 로딩 |
~/.claude/CLAUDE.md |
모든 세션에 공통 적용 |
CLAUDE.local.md | Git 미포함 개인 설정 (선택적) |
✨ CLAUDE.md 최적화
#
키 입력 → Claude가 내용을 CLAUDE.md에 자동 반영- “IMPORTANT”, “YOU MUST” 등 강조 표현 사용 시 명령 이행률 증가
- 프롬프트처럼 지속적으로 반복 실험하여 성능 개선
2. 도구 허용 목록 관리
Claude는 시스템 변경 가능 작업(bash, 파일 쓰기, MCP 등)에 대해 항상 승인을 요청합니다.
✅ 허용 방법
방식 | 설명 |
---|---|
프롬프트 상 "Always allow" | 세션 중 직접 허용 |
/allowed-tools 명령어 |
명시적으로 도구 등록 |
settings.json , ~/.claude.json |
팀 단위 공유 또는 개인 설정 |
--allowedTools CLI 플래그 |
세션별 도구 허용 지정 |
3. Claude에게 도구 제공하기
🖥️ Bash 도구
- Claude는 Bash 환경을 상속합니다.
- 커스텀 도구는 사용법, 예시,
--help
를 통해 직접 알려줘야 합니다.
🔌 MCP 도구 연결
.mcp.json
에 등록 → 팀 전체 공유 가능- 예: Puppeteer, Sentry, Lighthouse MCP 서버 등
--mcp-debug
로 연결 문제 디버깅
📝 사용자 정의 슬래시 명령어
.claude/commands/*.md
에 저장/명령어
입력으로 호출$ARGUMENTS
로 매개변수 전달 가능- 공유:
.gitignore
제외 시 팀원과 함께 사용
4. 주요 워크플로우 패턴
1️⃣ 탐색 → 계획 → 구현 → 커밋
think
,think hard
,ultrathink
키워드로 사고 예산 할당- 계획을 GitHub 이슈로 등록 후 구현
- 서브 에이전트로 세부 검토 병렬 수행
2️⃣ 테스트 주도 개발 (TDD)
- 테스트 먼저 → 실패 확인 → 코드 작성 → 반복 → 테스트 통과 → 커밋
- 테스트 수정 금지 명시
- 오버피팅 방지를 위한 Sub-agent 병행 검토
3️⃣ 시각 기반 반복
- 디자인 목업 제공 → Claude가 구현 → 스크린샷 확인 → 반복
- Puppeteer MCP 또는 직접 스크린샷 제공 활용
4️⃣ Safe YOLO 모드
--dangerously-skip-permissions
사용- 반드시 인터넷 차단된 Docker 컨테이너 등에서 실행
- 반복적 보일러플레이트, 린트 수정 등 자동화에 유용
5️⃣ 코드베이스 Q&A
Claude에게 다음과 같이 물어보세요.
"test.py의 123번째 줄 async는 무슨 역할을 하나요?"
"이 API는 왜 이런 구조를 가지고 있죠?"
"이 프로젝트에서 새 API는 어떻게 만들어요?"
5. Git, GitHub, Jupyter 연동
연동 대상 | 활용 사례 |
---|---|
Git | 히스토리 추적, 커밋 메시지 생성, 충돌 해결 |
GitHub | 이슈 생성, PR 작성, 리뷰 코멘트 반영, 자동 라벨링 |
Jupyter | 노트북 생성, 시각화 검토, aesthetic improvement 요청 |
6. 워크플로우 최적화 전략
전략 | 설명 |
---|---|
지시어 구체화 | Claude는 구체적 요청에 더 잘 반응함 |
이미지 제공 | 목업, 스크린샷, 시각 비교 가능 |
파일 경로 명시 | Tab 키 자동 완성 활용 |
URL 허용 목록 추가 | 반복 접근 시 승인 생략 가능 |
Escape / /clear 활용 | 맥락 초기화 및 리디렉션 관리 |
체크리스트 활용 | Markdown 파일로 작업 추적 |
데이터 전달 | cat foo.log | claude 형태로 파이핑 가능 |
7. 헤드리스 모드 활용
✳️ 예시
claude -p "commit message for the recent diff" --diff . --output-format stream-json
🔄 활용 방식
패턴 | 내용 |
---|---|
Fanning out | 대규모 파일 마이그레이션 자동화 |
Pipelining | Claude 출력 → 후속 처리로 자동 전달 |
GitHub 이슈 triage | 라벨 자동 지정 |
린트 & 리뷰 자동화 | 주관적 코드 품질 점검까지 가능 |
8. 멀티 Claude 전략
구성 | 내용 |
---|---|
역할 분리 | A: 코드 작성, B: 리뷰, C: 테스트 생성 |
git worktree | 여러 브랜치를 분리된 폴더에서 병렬 처리 |
독립 Claude 세션 | Scratchpad 파일 또는 폴더 분리 운영 |
자동화용 Claude | 헤드리스 CLI 인스턴스로 예약 실행 |
9. 비용 제어 전략
전략 | 설명 |
---|---|
파일 최소 참조 | 필요 없는 파일 불러오기 지양 |
명확한 목표 | 프롬프트 목표를 간결하고 명확하게 유지 |
캐시 활용 | 반복 작업 시 Claude가 인식할 수 있도록 명시화 |
짧은 세션 운영 | 컨텍스트 overflow 방지 및 토큰 절약 |
작업 분할 | 과도한 단일 작업 요청 지양, 단계별 분리 요청 |
예산 제어 | 대부분의 작업은 $0.5 ~ $0.75 수준에서 완료 가능 |
Claude Code를 성공적으로 사용하려면?
- 📁 CLAUDE.md와 슬래시 명령어로 작업 기반 마련
- 🔐 보안과 도구 허용 정책을 체계적으로 설정
- 🔁 반복 작업 자동화 및 시각 기반 개선 루프 정립
- 🧠
think hard
,ultrathink
, 서브에이전트를 활용한 고급 사고 확장 - 🤖 병렬 Claude 세션 + 헤드리스 모드로 확장성 확보
- 💵 비용 절감을 위한 최적화된 워크플로우 설계
Claude Code를 활용한 보안 인시던트 자동 분석 및 알림 시스템 구축 예시, 사용자 정의 명령어(.claude/commands), GitHub CI 연동용 Headless 자동화 템플릿입니다.
---
📁 Claude Code 실전 적용 예시 및 자동화 구성
## 1. Claude Code 실전 사용 예시: 보안 인시던트 자동 분석
### ⚡️ 시나리오
보안팀은 외부 위협 인텔리전스에서 제공되는 최신 인시던트(예: CVE, 악성 IP, 도메인 등)를 수신함. 이를 기반으로 내부 로그/시스템과 비교하여 이상 유무를 감지하고, 검토 결과를 요약하고 조치가 필요한 경우 자동으로 Slack, Jira, Notion 등으로 알림.
### ✅ Claude 사용 단계
1. **입력 데이터 수신**: n8n, Webhook 등을 통해 IOC 정보 수신
2. **입력 처리 및 저장**: CSV/JSON으로 변환 후 Claude에게 전달
3. **분석 요청 프롬프트 예시**:
```bash
claude -p "다음 IoC 목록이 내부 탐지 로그에서 발견되는지 확인하고, 발견된 경우 관련 로그 내용과 탐지된 시스템을 요약하고 조치 방안을 제안해줘. 결과는 Markdown 형식으로 요약해줘." \
--input ioc_feed.json \
--allowedTools Edit Bash(LogQuery:*) MCP(Slack, Jira)
```
4. **결과 예시 출력**:
```md
# ⚠️ 감지된 인시던트 보고서 (2025-04-30)
- 발견된 IoC: 3건 (IP, Domain, SHA256)
- 탐지 위치: 172.20.1.45, web-gw01, internal-db02
- 관련 로그:
- [2025-04-29 13:00] IDS 탐지: 203.0.113.45 접속 시도
- 조치 방안:
- 방화벽 차단 등록 (FortiGate Rule-ID 3012)
- 내부 자산 점검 및 포렌식 요청
- 알림:
- Slack: @blue-team에 경고 전송 완료
- Jira: INC-20312 이슈 자동 생성
```
---
## 2. .claude/commands/→ 사용자 정의 명령어 샘플
### 🔹 fix-ioc-alert.md
```md
분석 대상 IoC: $ARGUMENTS
1. 내부 SIEM 시스템에서 해당 IoC가 탐지된 로그를 검색해
2. 관련 자산, 탐지 타임스탬프, 이벤트 유형을 정리해
3. 감지 여부에 따라 다음 중 하나 수행:
- 탐지됨: 대응 필요성 검토 및 조치 방안 제시
- 미탐지: 향후 탐지를 위한 룰 개선 제안
4. Markdown 형식으로 보고서 작성해줘
5. Slack과 Jira에 결과를 공유해
```
### 🔹 summarize-log-analysis.md
```md
다음 로그 분석 결과를 요약해줘: $ARGUMENTS
- 어떤 이벤트가 주로 발생했는지?
- 이벤트 발생 빈도 Top 5는?
- 관련 시스템 또는 사용자 이상 징후는?
- 결과를 Markdown으로 요약해줘
```
### 🔹 escalate-incident.md
```md
$ARGUMENTS 내용을 기반으로 보안 인시던트로 분류해야 할지 판단해줘.
- 위협 수준이 높은 경우: Jira에 이슈 생성
- 해당 팀에게 Slack 알림 전달
- 취약점 또는 피해가 예상되는 경우 대응 방안과 우선순위를 포함해
```
---
## 3. GitHub Actions → CI 자동화 (Headless 모드)
### 📄 .github/workflows/ioc-check.yml
```yaml
name: IoC Alert Checker
on:
push:
paths:
- 'alerts/ioc_feed.json'
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Run Claude Headless Analysis
run: |
docker run --rm -v "${{ github.workspace }}:/workspace" anthropic/claude-code \
-p "다음 IoC 목록이 내부 로그와 매칭되는지 분석하고 조치 방안을 제시해줘." \
--input /workspace/alerts/ioc_feed.json \
--output /workspace/reports/ioc_result.md \
--allowedTools Edit Bash(LogQuery:*) MCP(Slack, Jira)
- name: Upload Report as Artifact
uses: actions/upload-artifact@v3
with:
name: ioc-report
path: reports/ioc_result.md
```
---
🎉 이 구성은 인시던트 탐지부터 분석, 보고, 알림까지 전 과정을 자동화하며, Claude Code를 실전 보안 운영 환경에서 효과적으로 활용할 수 있는 기반을 제공합니다. 추가로 n8n, Wazuh, Elastic 등과 연동한 시나리오도 확장 가능합니다. 요청 주시면 더 상세히 도와드릴게요!
- 사용자 정의 명령어 샘플
fix-ioc-alert.md
: IoC 탐지 및 보고summarize-log-analysis.md
: 로그 요약 분석escalate-incident.md
: 고위험 판단 및 Slack/Jira 알림
- GitHub Actions CI 연동 예시
- Headless 모드로 IoC 분석 및 보고서 생성 자동화
- Slack 알림, Jira 이슈 자동 등록 가능 MCP 연동 포함
아래는 Claude Code를 활용하여 보안 인시던트 자동 탐지, 분석, 보고, 알림까지 과정의 단계별 설명입니다.
단계 1: 인시던트 정보 수신 및 IoC 정제
외부 위협 인텔리전스 피드(예: CVE, IP, 도메인, 해시 등)를 수신하고, Claude가 분석할 수 있는 구조화된 데이터 형태로 변환합니다.
n8n
또는Webhook
으로 JSON 수신- 내부 자동화 스크립트를 통해 CSV → JSON 변환
- 예:
alerts/ioc_feed.json
파일에 저장
단계 2: Claude Code로 IoC 분석 자동 수행
IoC 목록을 기반으로 내부 로그 및 자산과 비교하여 탐지 여부, 이상 행위, 조치 방안을 분석합니다.
claude -p "다음 IoC 목록이 내부 로그와 매칭되는지 분석하고 조치 방안을 제시해줘." \
--input alerts/ioc_feed.json \
--output reports/ioc_result.md \
--allowedTools Edit Bash(LogQuery:*) MCP(Slack, Jira)
📝 Claude가 로그 질의 도구와 MCP 연동 도구를 활용해 분석하고, Markdown 보고서를 생성하도록 합니다.
단계 3: 사용자 정의 명령어로 반복 작업 단축
반복되는 IoC 분석, 로그 요약, 대응 자동화를 위한 슬래시 명령어를 구성합니다. (.claude/commands 예시)
1️⃣ fix-ioc-alert.md
분석 대상 IoC: $ARGUMENTS
1. 내부 SIEM 시스템에서 해당 IoC가 탐지된 로그를 검색해
2. 관련 자산, 탐지 타임스탬프, 이벤트 유형을 정리해
3. 감지 여부에 따라 다음 중 하나 수행:
- 탐지됨: 대응 필요성 검토 및 조치 방안 제시
- 미탐지: 향후 탐지를 위한 룰 개선 제안
4. Markdown 형식으로 보고서 작성해줘
5. Slack과 Jira에 결과를 공유해
2️⃣ summarize-log-analysis.md
다음 로그 분석 결과를 요약해줘: $ARGUMENTS
- 어떤 이벤트가 주로 발생했는지?
- 이벤트 발생 빈도 Top 5는?
- 관련 시스템 또는 사용자 이상 징후는?
- 결과를 Markdown으로 요약해줘
3️⃣ escalate-incident.md
$ARGUMENTS 내용을 기반으로 보안 인시던트로 분류해야 할지 판단해줘.
- 위협 수준이 높은 경우: Jira에 이슈 생성
- 해당 팀에게 Slack 알림 전달
- 취약점 또는 피해가 예상되는 경우 대응 방안과 우선순위를 포함해
위 명령어들은 /fix-ioc-alert, /summarize-log-analysis, /escalate-incident처럼 Claude 대화창에서 바로 호출할 수 있습니다.
단계 4: GitHub Actions를 통한 자동화 (CI 연동)
CI 환경에서 새로운 IoC 파일이 등록될 때마다 자동 분석 및 보고서 생성을 수행합니다.
GitHub Actions 템플릿 예시 (.github/workflows/ioc-check.yml
)
name: IoC Alert Checker
on:
push:
paths:
- 'alerts/ioc_feed.json'
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Run Claude Headless Analysis
run: |
docker run --rm -v "${{ github.workspace }}:/workspace" anthropic/claude-code \
-p "다음 IoC 목록이 내부 로그와 매칭되는지 분석하고 조치 방안을 제시해줘." \
--input /workspace/alerts/ioc_feed.json \
--output /workspace/reports/ioc_result.md \
--allowedTools Edit Bash(LogQuery:*) MCP(Slack, Jira)
- name: Upload Report as Artifact
uses: actions/upload-artifact@v3
with:
name: ioc-report
path: reports/ioc_result.md
결과 보고서는 reports/ioc_result.md에 저장되며, 필요시 Slack/Jira와 MCP를 통해 연동 알림 가능
단계 5: 대응 결과 보고 및 알림
분석 결과를 기반으로 다음과 같은 알림 및 후속 조치를 자동화합니다.
- Slack: 담당자에게 위험 감지 알림
- Jira: 대응 필요 이슈 자동 생성
- Notion 등: 리포트 페이지 생성 (선택 사항)
MCP 설정을 통해 Claude가 직접 알림 전송/이슈 등록까지 수행 가능
확장 방향
구성 요소 | 역할 |
---|---|
ioc_feed.json |
IoC 입력 파일 |
claude -p 명령 |
Headless 분석 실행 |
.claude/commands/*.md |
반복 명령 템플릿화 |
GitHub Actions | CI 자동화 트리거 |
MCP (Slack, Jira) | 보고/이슈 알림 통합 |
댓글