10강

서브에이전트 오케스트레이션

4 조회 1

복잡한 작업을 독립 컨텍스트의 서브에이전트들로 분산하고 결과를 취합하는 오케스트레이션 패턴 — 병렬 처리로 대규모 작업 완료.

서브에이전트 오케스트레이션 — 팀처럼 일하기

단일 Claude 세션으로 처리하기 어려운 작업이 있습니다. "전체 코드베이스 i18n 번역 추가", "모든 API 엔드포인트 보안 감사", "50개 컴포넌트 접근성 개선" — 이런 작업들은 범위가 너무 커서 하나의 컨텍스트 윈도우에 담기 어렵습니다. 서브에이전트 오케스트레이션은 이 문제를 해결합니다. 하나의 메인 에이전트가 여러 전문 서브에이전트를 생성하고, 각자 독립 컨텍스트에서 작업한 결과를 취합하는 방식입니다.

오케스트레이션 기본 구조

# 메인 세션에서 오케스트레이터 역할 지시
"다음 대규모 작업을 서브에이전트를 활용해서 처리해줘.
 각 서브에이전트는 독립 컨텍스트에서 실행됨을 인지해줘.

 작업: messages/ 디렉토리의 en.json, ja.json에 누락된 번역 키 추가
 
 오케스트레이션 계획:
 1. 서브에이전트 A: ko.json 분석 → 전체 키 목록 추출
 2. 서브에이전트 B: en.json 분석 → 누락 키 목록 생성 (A 결과 기반)
 3. 서브에이전트 C: ja.json 분석 → 누락 키 목록 생성 (A 결과 기반)
 4. 서브에이전트 D: en.json 누락 키 번역 추가
 5. 서브에이전트 E: ja.json 누락 키 번역 추가
 
 B와 C는 병렬 실행 가능. D와 E는 B·C 완료 후 순차 실행."

병렬 실행 가능 vs 순차 실행 필수

# 병렬 실행 가능 — 독립적인 작업
Agent({ description: "auth 모듈 타입 오류 수정", prompt: "app/actions/auth.ts 타입 오류 모두 수정..." })
Agent({ description: "jobs 모듈 타입 오류 수정", prompt: "app/actions/jobs.ts 타입 오류 모두 수정..." })
Agent({ description: "profile 모듈 타입 오류 수정", prompt: "app/actions/profile.ts 타입 오류 모두 수정..." })

# 순차 실행 필수 — 의존성 있는 작업
# 1. DB 스키마 변경
Agent({ description: "마이그레이션 생성", prompt: "notifications 테이블 마이그레이션 파일 생성..." })
# 2. 타입 재생성 (마이그레이션 완료 후)
Agent({ description: "TS 타입 갱신", prompt: "supabase gen types typescript 실행..." })
# 3. 컴포넌트 업데이트 (타입 갱신 후)
Agent({ description: "컴포넌트 업데이트", prompt: "새 notifications 타입 사용하도록 컴포넌트 수정..." })

자기완결적 서브에이전트 프롬프트 작성

서브에이전트는 부모 세션의 대화를 모릅니다. 프롬프트 안에 모든 컨텍스트를 담아야 합니다.

# ❌ 실패하는 프롬프트
Agent({
  prompt: "아까 얘기한 대로 결제 모듈 구현해줘"
  // 서브에이전트는 "아까 얘기"가 뭔지 모름
})

# ✅ 성공하는 프롬프트
Agent({
  description: "결제 Server Action 구현",
  prompt: `
    **프로젝트**: Next.js 16 App Router + Supabase + TypeScript
    **작업**: 결제 Server Action 구현
    
    **구현할 파일**: app/actions/payment.ts
    **참조 파일**: 
      - app/actions/auth.ts (인증 패턴 참고)
      - types/supabase.ts (DB 타입)
    
    **요구사항**:
    - createPayment(orderId: string, amount: number) 함수
    - Toss Payments API 연동 (TOSS_SECRET_KEY 환경변수)
    - 성공: { success: true, paymentKey: string }
    - 실패: { success: false, message: string }
    - supabase/migrations/ 에 payments 테이블 마이그레이션 파일 생성
    
    **완료 조건**: npx tsc --noEmit 타입 오류 없음
  `
})

결과 취합과 검증

"5개 서브에이전트 작업이 완료됐어.
 이제 전체 결과를 통합 검증해줘:
 
 1. npm run build — 빌드 오류 없는지
 2. npx tsc --noEmit — 타입 충돌 없는지
 3. 각 에이전트가 생성한 파일 목록 확인
 4. 파일 간 import 오류 없는지
 5. 최종 요약: 완료된 작업, 발견된 문제, 권장 후속 조치"

Worktree 격리 — 브랜치 충돌 방지

# 여러 에이전트가 같은 저장소에서 동시에 작업할 때
Agent({
  description: "결제 모듈",
  isolation: "worktree",  // 별도 git worktree에서 작업
  prompt: "feature/payment 브랜치에서 결제 기능 구현..."
})
Agent({
  description: "알림 모듈",
  isolation: "worktree",  // 별도 git worktree에서 작업
  prompt: "feature/notification 브랜치에서 알림 기능 구현..."
})
# 각 에이전트가 다른 브랜치에서 작업 → 충돌 없음
# 완료 후 메인이 각 브랜치를 순차 merge

실전: 전체 사이트 접근성 감사

"사이트 전체 접근성(a11y) 감사를 서브에이전트로 분산해서 해줘.

 디렉토리별로 서브에이전트 할당:
 - 서브에이전트 1: app/[locale]/ 공개 페이지
 - 서브에이전트 2: app/admin/ 어드민 페이지
 - 서브에이전트 3: components/ 공통 컴포넌트

 각 에이전트 체크 항목:
 - img 태그 alt 텍스트
 - 버튼/링크 접근 가능한 이름
 - 폼 라벨 연결
 - 색상 대비 (클래스 기준)
 
 결과를 accessibility-report.md 하나로 취합해줘."
서브에이전트 오케스트레이션의 핵심 가치는 "병렬 처리"만이 아닙니다. 각 에이전트가 독립된 컨텍스트에서 특정 영역에만 집중하기 때문에 품질이 높아집니다. 모든 것을 아는 제너럴리스트 하나보다, 각 도메인에 집중하는 스페셜리스트 여럿이 대규모 작업에서 더 좋은 결과를 냅니다.

핵심 정리

  • 서브에이전트는 독립 컨텍스트 — 프롬프트에 프로젝트 스택·참조 파일·완료 조건 등 모든 정보 자기완결적으로 포함
  • 독립 작업은 병렬, 의존 작업은 순차 — worktree isolation으로 브랜치 충돌 없이 동시 기능 개발
  • 오케스트레이터는 분배·취합·검증 담당 — 서브에이전트 완료 후 빌드·타입 체크로 통합 검증 필수

관련 검색어  ·  클로드 코드 서브에이전트  ·  AI 오케스트레이션  ·  Claude Code 병렬 작업  ·  클로드 코드 완벽 마스터  ·  에이전트 분산 처리

채용정보
공지사항
인사이트
MY