- CLAUDE.md 운영 규칙 - wiki/ 정리된 지식 페이지 (Nuxt + Claude Code) - raw/ 원본 자료 - reference/ Nuxt 4.x 공식 문서 Co-authored-by: Cursor <cursoragent@cursor.com>
186 lines
5.3 KiB
Markdown
186 lines
5.3 KiB
Markdown
# Claude Code 워크플로우 패턴
|
|
|
|
> **카테고리:** 패턴 & 레시피
|
|
> **최종 수정:** 2026-05-13
|
|
> **관련:** [[claude-code-overview]], [[claude-code-project-setup]]
|
|
|
|
## 요약
|
|
|
|
단순한 것부터 시작하라. Sequential 패턴이 무너질 때만 복잡성을 추가하라. 장기 프로젝트에는 세션 간 상태를 유지하는 Harness 구조가 필요하다.
|
|
|
|
---
|
|
|
|
## 5가지 에이전틱 패턴
|
|
|
|
### 패턴 선택 매트릭스
|
|
|
|
| 시나리오 | 패턴 |
|
|
|---|---|
|
|
| 명확한 단계의 선형 작업 | Sequential |
|
|
| 서브 위임 필요한 대규모 작업 | Operator |
|
|
| 독립적 항목 다량 처리 | Split-and-Merge |
|
|
| 다중 도메인 장기 프로젝트 | Agent Teams |
|
|
| 반복·이벤트 트리거 자동화 | Headless |
|
|
|
|
---
|
|
|
|
### 1. Sequential (순차)
|
|
|
|
각 단계가 순서대로 실행. 이전 출력 → 다음 입력.
|
|
|
|
**적합:** 예측 가능한 선형 작업, 1~2개 컨텍스트 윈도우에 들어오는 크기.
|
|
|
|
```
|
|
명세 읽기 → 함수 구현 → 단위 테스트 작성 → 테스트 실행
|
|
```
|
|
|
|
✅ 최대 단순성, 예측 가능성
|
|
❌ 독립 작업 시 낮은 처리량, 긴 작업에서 컨텍스트 한계
|
|
|
|
---
|
|
|
|
### 2. Operator (오케스트레이터)
|
|
|
|
하나의 제어 에이전트가 계획 → 특화된 subagent나 도구에 실행 위임.
|
|
|
|
**적합:** 작업이 단일 컨텍스트 초과, 컴포넌트마다 전문화 필요, 계획과 실행 분리 필요.
|
|
|
|
```
|
|
오케스트레이터
|
|
├── 인증 스캔 subagent
|
|
├── DB 쿼리 스캔 subagent
|
|
└── 입력 검증 스캔 subagent
|
|
→ 결과 종합 → 최종 리포트
|
|
```
|
|
|
|
✅ 확장성
|
|
❌ 오케스트레이터가 병목, 명확한 인터페이스 설계 필요
|
|
|
|
---
|
|
|
|
### 3. Split-and-Merge (병렬)
|
|
|
|
코디네이터가 독립 청크로 분할 → 병렬 실행 → 결과 합성.
|
|
|
|
**적합:** 상호 의존성 없는 분리 가능한 작업, 속도 중요, 대량의 유사 항목 처리.
|
|
|
|
```
|
|
함수 50개 문서화
|
|
→ 5개씩 10 배치로 분할
|
|
→ 병렬 실행
|
|
→ docstring 합산
|
|
```
|
|
|
|
✅ 병렬성으로 극적인 성능 향상
|
|
❌ 합병 단계 복잡성, 불일관 출력 처리, 비용 상승
|
|
|
|
```bash
|
|
# Fan-out 예시
|
|
for file in $(cat files.txt); do
|
|
claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
|
|
--allowedTools "Edit,Bash(git commit *)"
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
### 4. Agent Teams (다중 에이전트 팀)
|
|
|
|
역할이 정의된 여러 특화 에이전트가 지속적으로 협업.
|
|
|
|
**적합:** 여러 세션에 걸친 장기 프로젝트, 진정한 도메인 전문화 필요.
|
|
|
|
```
|
|
Planning agent → 전체 목표 유지
|
|
Code agent → 구현 작성·수정
|
|
Testing agent → 동작 검증
|
|
Review agent → 품질 검사
|
|
Documentation agent → 문서 업데이트
|
|
```
|
|
|
|
✅ 에이전트당 집중된 컨텍스트, 복잡한 지속 작업에 강력
|
|
❌ 조율 오버헤드, 오류 전파 위험
|
|
|
|
---
|
|
|
|
### 5. Headless Autonomous (자율 자동화)
|
|
|
|
인간 개입 없이 이벤트/스케줄로 트리거. 작업 완료까지 독립 실행.
|
|
|
|
**적합:** 잘 정의된 반복 작업, 알려진 실패 모드, 완전 자동화.
|
|
|
|
예시:
|
|
- 야간 저장소 스캔 → 의존성 업데이트 → 자동 PR 생성
|
|
- CI/CD 트리거 → 실패 진단 → 버그 리포트
|
|
|
|
```bash
|
|
claude --permission-mode auto -p "fix all lint errors"
|
|
```
|
|
|
|
✅ 반복 작업 최대 자동화
|
|
❌ 엄격한 안전장치 필요: 최소 권한, 가역적 작업 우선, 종료 조건 명확화
|
|
|
|
---
|
|
|
|
## 장기 실행 에이전트 Harness 패턴
|
|
|
|
여러 세션에 걸친 프로젝트는 세션 간 상태를 유지하는 구조가 필요하다.
|
|
|
|
### 핵심 문제
|
|
|
|
각 세션은 이전 작업을 기억하지 못한 채 시작된다. 인간이 세션 사이 컨텍스트를 복구해주면 안 된다 — **에이전트가 스스로 추적해야 한다**.
|
|
|
|
### 2단계 Harness 구조
|
|
|
|
**1단계: Initializer Agent (첫 번째 세션)**
|
|
|
|
```
|
|
init.sh 생성 → 환경 설정 스크립트
|
|
claude-progress.txt 생성 → 진행 상황 추적 로그
|
|
기능 목록 작성 → JSON으로 관리 (passing/failing 상태)
|
|
초기 git commit → 추가된 파일 기록
|
|
```
|
|
|
|
**2단계: Coding Agent (이후 세션들)**
|
|
|
|
```
|
|
매 세션 시작 루틴:
|
|
1. pwd (현재 디렉토리 확인)
|
|
2. progress 파일 읽기
|
|
3. 다음 기능 선택
|
|
4. init.sh 실행
|
|
5. 핵심 기능 동작 확인
|
|
6. 점진적 변경 구현 (한 번에 기능 하나)
|
|
```
|
|
|
|
### 실패 모드와 대응
|
|
|
|
| 문제 | 해결 |
|
|
|---|---|
|
|
| 전체 프로젝트를 한 번에 완성하려 함 | feature list를 "failing" 상태로 목록화, 하나씩만 허용 |
|
|
| 테스트 없이 "완료" 선언 | Puppeteer MCP로 브라우저 자동화 테스트 의무화 |
|
|
| 버그를 기록 없이 방치 | 설명적 커밋 메시지 + progress 파일 업데이트 강제 |
|
|
|
|
---
|
|
|
|
## Non-interactive 모드 (자동화 기초)
|
|
|
|
```bash
|
|
# 단발 쿼리
|
|
claude -p "이 프로젝트가 무엇인지 설명해줘"
|
|
|
|
# JSON 출력 (스크립트 파싱용)
|
|
claude -p "API 엔드포인트 나열해줘" --output-format json
|
|
|
|
# 스트리밍
|
|
claude -p "로그 파일 분석해줘" --output-format stream-json
|
|
```
|
|
|
|
---
|
|
|
|
## 참고 / 출처
|
|
|
|
- `raw/claude-code-5-agentic-workflow-patterns.md` (mindstudio.ai)
|
|
- `raw/claude-code-long-running-agent-harnesses.md` (Anthropic 엔지니어링 블로그)
|
|
- `raw/claude-code-best-practices-official.md` (code.claude.com 공식 문서)
|