Claude Code를 위한 Orchestrator-Worker 시스템을 구축한 방법
Source: Dev.to
문제
여러 레포(백엔드, 프론트엔드, 어드민, 인프라)를 동시에 작업할 때는 다음이 필요합니다:
- 코드를 절대 건드리지 않는 코디네이터
- 하나의 작업에만 집중하는 워커
- 세션 간 깔끔한 핸드오프
Claude Copilot이 메모리와 작업 인프라를 제공했습니다. 나는 여기에 코디네이션 레이어를 추가해야 했습니다.
내가 만든 것
Orchestrator (조정만 하고 실행은 하지 않음)
- 모든 레포의 상태를 추적
- 어떤 워커 명령을 실행할지 알려줌
- 스프린트 보드와 인보이스 업데이트
- Notion과 동기화
Workers (격리된 실행)
- git worktree에서 실행 (브랜치 전환 충돌 없음)
- git flow(
feature/브랜치) 사용 - 메모리를 통해 진행 상황 보고
- 엄격한 start/done 명령 보유
Makefile‑based
Python 의존성 없이, 다음과 같이 사용:
make worker-new REPO=backend TASK=fix-migration핵심 설계 결정
Human‑in‑the‑loop
워커는 자동으로 생성되지 않습니다. 언제 시작할지 직접 결정해 제어권을 유지하면서도 작업을 병렬화합니다.Git flow native
모든 작업은 feature 브랜치이며,git flow feature finish로 정상적으로 종료됩니다. 고아 브랜치나 머지 혼란이 없습니다.엄격한 역할 경계
Orchestrator는 절대 코드를 작성할 수 없습니다 – 프롬프트로 강제합니다:## CRITICAL: Your Role Boundaries **You COORDINATE. You do NOT EXECUTE.** ### You do NOT: - Write code or fix bugs (workers do this) - Work directly in sub‑repos (workers do this) - Create feature branches for tasks (workers do this)Worktree isolation
각 워커는 별도의 git worktree에서 실행됩니다. 브랜치 전환, stash 관리, 충돌이 없습니다. 워커는 진정으로 병렬 실행이 가능합니다.
흐름
┌─────────────────┐ ┌─────────────────┐
│ ORCHESTRATOR │ │ WORKER │
│ (main repo) │ │ (worktree) │
├─────────────────┤ ├─────────────────┤
│ • Track status │────▶│ • feature/task │
│ • Assign tasks │ │ • Write code │
│ • Update Notion │◀────│ • Report done │
│ • Never code │ │ • Cleanup │
└─────────────────┘ └─────────────────┘사용해 보기
모든 내용은 내 Claude Copilot 포크에 있습니다:
🔗
핵심 파일
templates/Makefile.orchestrator– 오케스트레이션 명령.claude/commands/orchestrator.md– 오케스트레이터 동작.claude/commands/worker.md– 워커 동작docs/ORCHESTRATOR-WORKER-FLOWCHART.md– 전체 시스템 다이어그램
앞으로의 계획
- 워커 간 진행 상황 보고 개선
- 워크트리 간 자동 충돌 감지
- Notion 연동 강화
비슷한 멀티‑세션 코디네이션 문제를 해결하고 계신 분들의 피드백을 기다립니다. 여러분은 어떤 접근 방식을 사용하고 계신가요?
Built on top of Claude Copilot by Everyone Needs a Copilot