| name | camp-day3 |
| description | Day 3: Agent와 병렬 작업 — 나만의 AI 팀 만들기 - 인터랙티브 강의 진행. Use when starting day 3 training, teaching subagents, parallel work, or agent orchestration. |
Day 3: Agent와 병렬 작업 — 나만의 AI 팀 만들기
이 스킬은 "Agent와 병렬 작업" 강의를 인터랙티브하게 진행합니다.
대상
- 개발자, 비개발 직군(마케터, 세일즈, 전략, 재무, 운영 등) 모두 포함
- Day 1(CLAUDE.md + Memory), Day 2(Skill + Tool + Chaining)를 이수한 분
진행 방식
강의를 섹션별로 진행합니다. 각 섹션에서:
- 핵심 개념을 설명합니다
- 실습이 있으면 사용자와 함께 직접 실행합니다
- 퀴즈가 있으면 사용자에게 문제를 내고 답을 확인합니다
- 사용자가 준비되면 다음 섹션으로 넘어갑니다
총 소요 시간: 약 90분
강의 시작
use camp-lecture-start
위 공통 루틴 실행 후, 아래 Day 3 전용 추가 단계를 진행한다:
4. 오늘의 여정(개념 → Agent → 병렬 → 워크플로)을 소개한다
5. 준비물(Day 2 이수, Slack MCP 선택)이 갖춰져 있는지 확인한다
6. 이후 섹션 0부터 순서대로 진행한다
섹션별 진행 가이드
섹션 0: Recap & 오늘의 여정 (5분)
목표: Day 2를 복습하고 오늘의 학습 로드맵을 이해시킨다.
진행 순서:
-
Day 2 핵심 30초 복습:
- 도구(Tool) = 하나의 동작 (망치질 한 번)
- Skill = 여러 도구를 엮은 워크플로 (조립 설명서)
- 오케스트레이션 = Skill끼리 연결 (가구 세트 완성)
-
여정 다이어그램을 브라우저에서 연다:
open .claude/skills/camp-day3/journey-diagram.html
(Windows: start, Linux: xdg-open)
다이어그램이 열리면 사용자에게 "이 화면을 브라우저에 띄워두세요. 강의 진행에 따라 각 단계를 함께 볼 겁니다!"라고 안내한다.
-
오늘의 여정을 소개한다 (다이어그램과 함께):
Stage 1 Stage 2 Stage 3 Stage 4
Concept Agent Parallel Workflow
+-----------+ +-----------+ +-----------+ +-----------+
| Skill | | Agent | | Multiple | | Ordered |
| Agent | ==> | Create + | ==> | Agents at | ==> | Multi- |
| Task | | Hands-on | | Once | | Agent |
| Compare | | | | | | Pipeline |
+-----------+ +-----------+ +-----------+ +-----------+
"Team leader managing AI employees"
-
핵심 비유: "Day 2에서 레시피를 만들었다면, Day 3에서는 여러 셰프를 고용해서 동시에 요리시킵니다!"
-
섹션 0 완료 후 자동으로 섹션 1로 진행합니다 (중간 응답 분할: 여기서 한 번 끊고 다음 응답에서 섹션 1 시작)
섹션 0.5: 준비물 확인 (5분)
목표: Slack MCP 설치 여부를 확인하고, 이후 실습 트랙을 결정한다.
진행 순서:
-
오늘의 여정 미리보기 — 트랙 선택 전에 전체 흐름을 간략히 안내한다:
오늘 90분 동안 배울 것:
- 개념 (10분) — Skill·Agent·Task 차이, 비유로 이해
- Agent 만들기 (20분) — Custom Agent 정의 + 단일 실행
- 병렬 실행 (20분) — 같은 Agent 여러 개 동시에
- 워크플로 (25분) — Skill 안에 Agent 오케스트레이션
- Wrap-up (5분) — 정리 + 다음 단계
"오늘 끝나면 나만의 AI 팀이 생깁니다!"
-
my-first-project 폴더가 없는 경우 아래 명령어를 안내한다:
mkdir my-first-project && cd my-first-project && git init
-
Slack MCP 설치 여부: 아래 명령어로 빠르게 확인한다 (Claude Code에서 실행):
내가 접근 가능한 Slack 채널 목록을 보여줘
- Slack 채널이 나오면 → Slack 트랙 (채널 Q&A 분석)
- 오류/채널 없으면 → WebSearch 트랙 (웹 리서치 분석)
- "두 트랙 모두 같은 개념을 배우며, 결과물만 다릅니다. 걱정하지 마세요!"
-
트랙을 안내한 후 바로 섹션 1로 진행한다
섹션 1: Skill vs Agent vs Task (10분)
목표: Skill, Agent, Task 세 가지 핵심 개념을 명확히 구분한다.
이 섹션은 개념 이해에만 집중합니다. Agent의 세부 파라미터는 섹션 2에서 실습과 함께 다룹니다.
진행 순서:
-
세 가지 개념 비교 테이블을 보여준다:
| Skill | Agent | Task |
|---|
| 비유 | 레시피 📋 | 셰프 👤 | 주문 전표 ✅ |
| 하는 일 | 재사용 가능한 워크플로 | 작업을 위임받아 실행 | 진행 상황을 추적 |
| 실행 방법 | /명령어로 실행 | Skill 안에서 호출 | TaskCreate로 생성 |
| Day 2 예시 | /morning-briefing | (아직 안 배움) | (아직 안 배움) |
| Day 3 예시 | /channel-faq | "이 채널 분석해줘" | "채널 분석 완료 ✅" |
-
핵심 비유를 확장한다:
- Skill = 레시피: "김치찌개 만드는 법" — 한 번 써두면 누구든 따라할 수 있다
- Agent = 셰프: "레시피대로 요리하는 직원" — 시키면 알아서 해온다
- Task = 주문 전표: "김치찌개 1개 — 조리 중 / 완료" — 진행 상황을 추적한다
- "레시피(Skill) 하나로 여러 셰프(Agent)를 시킬 수 있고, 주문 전표(Task)로 진행 상황을 관리합니다"
-
표를 보여준 후 바로 다음 단계로 진행한다. "궁금한 점이 있으면 언제든 물어보세요!" 한 줄만 추가한다.
-
심화 비교 테이블 — 세 개념의 차이를 3가지 축으로 보여준다:
| 비교 축 | Skill | Agent | Task |
|---|
| 컨텍스트 | 메인 대화에 합류 | 별도 컨텍스트에서 실행, 요약만 반환 | 메인 대화 내 메타데이터 |
| 병렬 실행 | 불가 (순차) | 가능 (run_in_background) | 자체 불가, Agent에 위임 |
| 누가 누구를 호출? | Skill → Agent 호출 가능 | Agent → Skill 로드 가능 | 항상 "호출되는 쪽" |
- (개발자에게) "Skill은 같은 스레드에서 실행되고, Agent는 별도 프로세스처럼 격리됩니다"
- (비개발자에게) "Skill은 같은 방에서 일하고, Agent는 다른 방에서 일한 뒤 결과만 가져옵니다"
-
핵심 프레임 — 세 개념을 한 줄로 구분하는 기준:
- 무엇을 추적할지 = Task (진행 상태 + 체크리스트)
- 어떻게 할지 = Skill (절차 정의 + 재사용)
- 누가 할지 = Agent (독립 실행 + 격리)
"어떤 상황에서 뭘 써야 할지 헷갈릴 때, 이 세 질문을 던져보세요!"
-
핵심 제약 1가지를 짚어준다:
"셰프(Agent)는 다른 셰프를 고용할 수 없습니다 — 반드시 팀장(당신 또는 Skill)이 직접 고용해야 합니다."
-
퀴즈 — use camp-quiz 패턴으로 하나씩 출제한다:
⚠️ 퀴즈 루프 방지 규칙 (엄격히 준수):
- 각 퀴즈는 최대 2회 제시한다. 2회째 시도 후에도 정답이 나오지 않으면 정답/해설을 공개하고 즉시 다음 단계로 진행한다.
- 학습자가 "네", "계속해요", "다음으로", "알겠어요" 등 진행 의사를 표현하면 즉시 다음 단계로 넘어간다. 퀴즈 답변을 기다리지 않는다.
- 학습자가 다른 주제로 질문하면 1-2문장으로 답한 뒤 퀴즈를 다시 제시한다 (이것이 1회로 카운트됨). 그 다음에도 다른 주제로 이탈하면 정답 공개 후 진행한다.
- 학습자가 개념 혼란을 표현하면 ("잘 모르겠어요", "헷갈려요") 퀴즈 전에 2-3문장 설명을 먼저 제공한 후 퀴즈를 출제한다.
Q1. "매주 이메일을 요약하는 자동화"를 만들려면 어떤 것을 만들어야 하나요?
- A) Agent — 작업을 실행하는 직원
- B) Skill — 재사용 가능한 워크플로
- C) Task — 진행 상황 추적
- 정답: B — Skill은 반복적으로 재사용할 수 있는 워크플로입니다. Agent는 Skill 안에서 작업을 수행하는 역할이고, Task는 진행 상황을 추적하는 도구입니다.
Q2. Agent가 할 수 없는 것은?
- A) 파일을 읽고 분석하기
- B) 다른 Agent를 만들어서 일 시키기
- C) 웹 검색하기
- 정답: B — Agent(subagent)는 다른 Agent를 만들 수 없습니다(nesting 불가). 반드시 상위에서 직접 만들어야 합니다.
-
Task 미니 체험 — Task가 어떻게 동작하는지 직접 보여준다:
주의: Task 도구의 정확한 이름은 아래와 같습니다. 절대 TodoWrite, TodoRead 등의 이름을 사용하지 마세요.
TaskCreate — Task 생성
TaskUpdate — Task 상태 변경 (pending → in_progress → completed)
TaskList — Task 목록 조회
- "Task는 주문 전표라고 했죠? Claude Code에 이렇게 말해보세요:"
오늘 할 일 3가지를 Task로 만들어줘:
1. 채널 FAQ Skill 만들기
2. 병렬 분석으로 확장하기
3. 워크플로 완성하기
- Claude가
TaskCreate로 3개 Task를 만들고, TaskList로 목록을 보여주는 것을 확인
- "이렇게 Task는 진행 상황을 추적하는 체크리스트입니다. Agent가 작업을 끝내면
TaskUpdate로 완료 표시를 합니다."
- 핵심 도구 3가지:
TaskCreate(생성), TaskUpdate(상태 변경), TaskList(목록 확인)
- "이제 실습을 진행하면서 이 Task들을 하나씩 완료해볼 거예요!"
-
use camp-section-transition
섹션 2: Agent 만들기 — 단일 Agent 실행 (20분)
목표: Agent의 핵심 파라미터를 이해하고, Custom Agent를 정의하여 단일 작업을 실행한다.
공식 문서: https://code.claude.com/docs/en/sub-agents
진행 순서:
Agent tool 파라미터 설명 (5분)
-
Agent tool의 핵심 파라미터 5가지를 소개한다:
| 파라미터 | 역할 | 비유 |
|---|
| prompt | 업무 지시서 | "이 일을 이렇게 해줘" |
| subagent_type | 직원 유형 | 탐정(Explore), 기획자(Plan), 만능(general-purpose) |
| model | 직원 등급 | 인턴(haiku), 대리(sonnet), 부장(opus) |
| run_in_background | 파견 방식 | 옆에서 지켜보기(false) vs 보내놓고 다른 일(true) |
| isolation | 작업 공간 | 같은 사무실(기본) vs 별도 사무실(worktree) |
- "가장 중요한 건 prompt — 지시를 명확하게 써야 직원이 잘 일합니다!"
- "나머지는 상황에 따라 조절하는 옵션입니다"
-
Built-in Agent 유형 3가지를 소개한다:
- Explore = 탐정 🔍 — 빠르고 저렴(haiku 모델), 파일을 읽기만 가능, 코드베이스 조사에 적합
- Plan = 기획자 📝 — 읽기만 가능, 계획 수립에 적합
- general-purpose = 만능 직원 🛠️ — 모든 도구 사용 가능, 복잡한 작업에 적합
-
Custom Agent 정의 방법 — 두 가지 방법을 소개한다:
- 방법 1 (추천):
/agent 명령어 — Claude가 인터뷰해서 자동으로 Agent 파일을 생성
- 방법 2 (직접):
.claude/agents/ 폴더에 마크다운 파일을 직접 작성
- "오늘은 직접 파일을 만들어서 Agent 구조를 이해해봅니다. 나중에는
/agent로 더 편하게 만들 수 있어요."
- 비유: "채용 공고를 미리 작성해두고, 필요할 때 바로 셰프를 부르는 것"
AskUserQuestion으로 "여기까지 Agent의 기본 개념이 이해되셨나요?"를 확인한다.
실습: Custom Agent 만들고 실행하기 (13분)
이 실습에서 만든 channel-analyst Agent를 섹션 3, 섹션 4에서 계속 활용합니다.
실습 시작 전에 my-first-project 폴더에서 Claude Code를 실행해주세요라고 안내한다.
(OS 감지 결과에 따라 아래 명령어를 안내한다)
cd ~/my-first-project
claude
# Windows (PowerShell)
cd $HOME\my-first-project
claude
AskUserQuestion으로 실습 난이도를 선택하게 한다:
- 가이드 모드: 템플릿을 따라 단계별로 진행합니다
- 도전 모드: 목표만 보고 직접 작성해봅니다
Agent 정의 파일 만들기
"셰프를 고용하려면 먼저 **채용 공고(Agent 정의 파일)**를 만들어야 합니다. .claude/agents/ 폴더에 마크다운 파일로 정의합니다."
[Slack 트랙 — 가이드 모드]
Claude Code에 아래를 입력하라고 안내한다:
.claude/agents/channel-analyst.md 파일을 만들어줘. 내용은 이렇게:
---
name: channel-analyst
description: Slack 채널의 최근 대화를 분석해서 Q&A를 추출하는 Agent
tools: Slack MCP (slack_read_channel, slack_read_thread)
model: sonnet
---
# Channel Analyst Agent
Slack 채널의 최근 대화를 읽고, 질문-답변 패턴을 찾아 정리합니다.
## 작업 절차
1. 지정된 Slack 채널의 최근 대화를 slack_read_channel로 읽는다
2. 대화 중 질문(?)과 그에 대한 답변을 식별한다
3. 스레드가 있으면 slack_read_thread로 전체 맥락을 파악한다
4. Q&A 쌍을 표 형식으로 정리한다
## 출력 형식
| # | 질문 | 답변 요약 | 답변자 |
|---|------|----------|--------|
[Slack 트랙 — 도전 모드]
"Slack 채널을 분석해서 Q&A를 추출하는 Agent를 .claude/agents/channel-analyst.md에 정의해보세요. Agent가 어떤 도구를 쓰고, 어떤 절차로 작업하고, 어떤 형식으로 결과를 내야 하는지를 마크다운으로 작성하세요."
[WebSearch 트랙 — 가이드 모드]
Claude Code에 아래를 입력하라고 안내한다:
.claude/agents/topic-researcher.md 파일을 만들어줘. 내용은 이렇게:
---
name: topic-researcher
description: 특정 주제에 대해 웹에서 조사하여 Q&A를 정리하는 Agent
tools: WebSearch, WebFetch
model: sonnet
---
# Topic Researcher Agent
특정 주제에 대해 웹 검색을 수행하고, 자주 묻는 질문과 답변을 정리합니다.
## 작업 절차
1. 지정된 주제로 WebSearch를 실행한다
2. 상위 검색 결과에서 FAQ 패턴을 식별한다
3. 필요시 WebFetch로 상세 내용을 확인한다
4. Q&A 쌍을 표 형식으로 정리한다
## 출력 형식
| # | 질문 | 답변 요약 | 출처 |
|---|------|----------|------|
[WebSearch 트랙 — 도전 모드]
"특정 주제의 Q&A를 웹에서 조사하는 Agent를 .claude/agents/topic-researcher.md에 정의해보세요."
- 파일이 생성되면 함께 내용을 확인한다
- "이것이 '채용 공고'입니다! 이 파일 하나로 Agent의 역할, 도구, 작업 절차가 모두 정의됩니다."
Agent 실행하기
"이제 방금 만든 셰프(Agent)에게 실제로 일을 시켜봅시다!"
[Slack 트랙]
Claude Code에 입력하라고 안내:
@channel-analyst dev-support 채널의 최근 대화를 분석해서 Q&A를 정리해줘
[WebSearch 트랙]
@topic-researcher "AI 여행 서비스 트렌드"에 대해 조사해서 Q&A를 정리해줘
- Agent가 실행되어 결과를 반환하는 것을 확인하게 한다
- "셰프(Agent)가 지시대로 일을 하고 결과를 가져왔습니다! 이것이 단일 Agent 실행입니다."
- (개발자에게) "Agent가 별도 컨텍스트에서 실행되었기 때문에, 메인 대화의 컨텍스트는 깨끗하게 유지됩니다."
- (비개발자에게) "셰프가 다른 방에서 요리하고, 완성된 요리만 가져온 거예요."
실습 결과 검증:
- "
.claude/agents/channel-analyst.md (또는 topic-researcher.md) 파일이 생성되었는지 확인해보세요"
- AskUserQuestion: "Agent 파일이 만들어지고, 실행 결과도 잘 나왔나요?"
- 선택지: ["네, 잘 됐어요!", "파일은 만들어졌는데 실행이 안 돼요", "파일이 안 보여요"]
- 문제 시:
.claude/agents/ 경로와 파일명을 확인하고, 필요시 템플릿을 직접 제공한다
퀴즈 (2분)
use camp-quiz 패턴으로 퀴즈를 출제한다:
Q. Agent의 model 파라미터를 haiku로 설정하면 어떤 효과가 있나요?
- A) Agent가 더 똑똑해진다
- B) Agent가 더 빠르고 저렴하게 동작한다
- C) Agent가 파일을 수정할 수 없게 된다
- 정답: B — haiku는 가장 빠르고 저렴한 모델입니다. Explore agent가 기본으로 haiku를 쓰는 이유도 이것입니다. 모델 선택은 속도/비용/능력의 트레이드오프입니다.
사용자에게 Claude Code를 종료(/exit)하라고 안내한다.
use camp-section-transition
섹션 3: 병렬 작업 — 여러 Agent 동시 실행 (20분)
목표: 여러 Agent를 동시에 실행하는 병렬 패턴을 이해하고 직접 체험한다.
진행 순서:
병렬 실행 개념 설명 (7분)
-
병렬 실행이란?
- 비유: 식당 주방
- 셰프 1명이 파스타 끓이고 → 샐러드 만들고 → 수프 데우면 느리다
- 셰프 3명이 동시에 하면 빠르다!
- "Agent도 마찬가지 — 하나씩 시키면 순차, 여럿을 한번에 시키면 병렬"
-
병렬 실행 패턴 2가지:
| 패턴 | 비유 | 사용 시점 |
|---|
| 여러 Agent 동시 호출 | 셰프 3명에게 동시에 주문 | 결과를 모아서 써야 할 때 |
run_in_background | 셰프를 보내놓고 다른 일 | 결과가 나중에 와도 될 때 |
-
병렬 vs 순차 판단 기준 — 가장 중요한 질문: "이 작업들이 서로 독립적인가?"
- 독립적 → 병렬 (각 채널 분석은 서로 관련 없음 → 동시에 가능)
- 의존적 → 순차 (분석 결과가 있어야 보고서를 쓸 수 있음 → 순서대로)
[Independent Tasks ==> Parallel] [Dependent Tasks ==> Sequential]
+----------+ +----------+ +----------+ +----------+
| Channel | | Channel | | Collect | => | Report |
| A | | B | | Data | | Write |
+----------+ +----------+ +----------+ +----------+
Run at the same time Must wait for previous step
-
Agent Teams 간단 언급 (실습 없음):
"더 복잡한 협업이 필요하면 Agent Teams라는 기능도 있습니다. 직원들끼리 직접 대화하며 협업하는 것인데, 아직 실험적 기능이라 오늘은 개념만 소개합니다."
AskUserQuestion으로 "병렬 개념이 이해되셨나요?"를 확인한다.
실습: 같은 Agent를 여러 개 동시에 실행하기 (11분)
프로그레시브 빌딩: 섹션 2에서 만든 channel-analyst (또는 topic-researcher) Agent를 여러 개 동시에 실행합니다.
Claude Code를 실행하라고 안내한다:
cd ~/my-first-project
claude
# Windows (PowerShell)
cd $HOME\my-first-project
claude
AskUserQuestion으로 실습 난이도를 선택하게 한다:
- 가이드 모드: 2개를 동시에 분석합니다
- 도전 모드: 4개를 동시에 분석합니다
[Slack 트랙 — 가이드 모드]
Claude Code에 아래를 입력하라고 안내한다:
@channel-analyst 에이전트를 2개 동시에 실행해서,
dev-support 채널과 product-qa 채널을 각각 병렬로 분석해줘.
두 결과가 다 나오면 채널별로 Q&A를 정리해서 보여줘.
[Slack 트랙 — 도전 모드]
"섹션 2에서 만든 channel-analyst 에이전트를 4개 채널(dev-support, product-qa, infra-help, design-feedback)에 대해 동시에 실행해보세요. 프롬프트를 직접 작성해보세요."
[WebSearch 트랙 — 가이드 모드]
Claude Code에 아래를 입력하라고 안내한다:
@topic-researcher 에이전트를 2개 동시에 실행해서,
"AI 여행 서비스 트렌드"와 "원격 근무 도구 추천"을 각각 병렬로 조사해줘.
두 결과가 다 나오면 주제별로 Q&A를 정리해서 보여줘.
[WebSearch 트랙 — 도전 모드]
"topic-researcher 에이전트를 4개 주제에 대해 동시에 실행해보세요."
- 실행 중 관찰 포인트를 안내한다:
- "터미널을 보세요 — 여러 Agent가 동시에 돌아가고 있는 게 보이시죠?"
- "하나씩 순서대로 분석하는 것보다 훨씬 빠릅니다. 이것이 병렬의 힘입니다!"
- (개발자에게) "각 Agent가 별도 컨텍스트에서 실행되므로, 서로 간섭하지 않습니다."
- (비개발자에게) "셰프 여러 명이 각자 다른 요리를 동시에 하는 것과 같아요."
실습 결과 검증:
- AskUserQuestion: "여러 Agent가 동시에 실행되는 것을 확인했나요?"
- 선택지: ["네, 동시에 돌았어요!", "하나씩 순서대로 돌았어요", "에러가 났어요"]
- 순차 실행 시: "프롬프트에 '동시에', '병렬로'라는 키워드를 명시하면 Claude가 Agent를 병렬로 실행합니다. 다시 시도해보세요."
- 에러 시: Agent 파일 경로(
.claude/agents/)를 확인하고 디버깅 안내
퀴즈 (2분)
use camp-quiz 패턴으로 퀴즈를 출제한다:
Q. 다음 중 병렬로 실행해야 하는 상황은?
- A) 데이터를 수집한 후 → 분석 보고서를 작성
- B) 4개 부서의 주간 보고서를 각각 수집
- C) 보고서를 작성한 후 → 팀장에게 전송
- 정답: B — 4개 부서의 보고서 수집은 서로 독립적이므로 병렬로 실행할 수 있습니다. A와 C는 앞의 결과가 있어야 다음을 할 수 있는 순차 작업입니다. 핵심 질문을 기억하세요: "이 작업들이 서로 독립적인가?"
사용자에게 Claude Code를 종료(/exit)하라고 안내한다.
use camp-section-transition
섹션 4: Skill로 오케스트레이션 — 병렬 + 순차 워크플로 (25분)
목표: 병렬 Agent 실행과 순차 후속작업을 하나의 Skill로 묶어 완전한 워크플로를 구현한다.
진행 순서:
워크플로 개념 설명 (8분)
-
Task Topology(작업 흐름)란?
- 비유: 요리 레시피의 순서
- 재료 손질 (양파, 당근, 고기) → 병렬 가능 (동시에 써는 게 빠름)
- 재료를 볶다 → 순차 (손질이 끝나야 볶을 수 있음)
- 접시에 담다 → 순차 (볶아야 담을 수 있음)
- "병렬과 순차를 섞어서 최적의 흐름을 만드는 것이 Task Topology입니다"
-
우리가 만들 워크플로 다이어그램:
[Collect Phase -- Parallel] [Analyze Phase] [Generate Phase]
+----------------+
| Agent(channel1) |--+
+----------------+ | +------------------+ +-------------------+
| Agent(channel2) |--+--> | Pattern-Analysis |===>| FAQ Doc Generator |
+----------------+ | | Agent | | Agent |
| Agent(channel3) |--+ +------------------+ +-------------------+
+----------------+
Parallel collection Merge and analyze Create final docs
-
왜 필요한가?:
"섹션 3에서 병렬로 수집만 했는데, 수집한 데이터를 분석하고 → 문서를 만드는 과정까지 자동화하고 싶다면? 바로 이 워크플로가 필요합니다!"
-
실생활 예시:
- 회의 준비: 여러 부서 자료 수집(병렬) → 요약 정리(순차) → 보고서 작성(순차)
- 분기 보고: 매출+고객+마케팅 데이터 수집(병렬) → 통합 분석(순차) → 경영진 보고서(순차)
AskUserQuestion으로 "워크플로 개념이 이해되셨나요?"를 확인한다.
실습: Skill로 병렬 Agent + 위키 FAQ 작성 (15분)
프로그레시브 빌딩: 섹션 2에서 만든 Agent를 섹션 3처럼 병렬로 돌리되, 결과를 모아서 위키에 FAQ를 작성하는 완전한 워크플로를 하나의 Skill로 만듭니다.
Claude Code를 실행하라고 안내한다:
cd ~/my-first-project
claude
# Windows (PowerShell)
cd $HOME\my-first-project
claude
AskUserQuestion으로 실습 난이도를 선택하게 한다:
- 가이드 모드: 2단계 워크플로(수집→위키 작성)를 템플릿으로 따라합니다
- 가이드 챌린지 모드: 3단계 구조(수집→분석→위키 작성)는 주어지되, 프롬프트는 직접 작성합니다
- 도전 모드: 전체 워크플로를 자유롭게 설계합니다
[Slack 트랙 — 가이드 모드]
/skill-creator를 입력하라고 안내한다:
/skill-creator
Claude가 인터뷰를 시작하면 아래처럼 답하라고 안내한다:
여러 Slack 채널의 Q&A를 병렬로 수집하고, 결과를 모아서 위키(Confluence)에 FAQ 페이지를 작성하는 Skill을 만들어줘. 스킬 이름은 channel-faq.
Step 1 - 수집 (병렬):
- AskUserQuestion으로 분석할 Slack 채널 목록을 물어봄 (기본값: dev-support, product-qa)
- 각 채널마다 channel-analyst Agent를 병렬로 실행 (@channel-analyst 사용)
- 각 Agent는 해당 채널의 Q&A를 추출하여 반환
Step 2 - FAQ 위키 작성 (순차):
- Step 1의 결과를 모아서, 채널별로 정리
- faq-{채널이름}.md 파일을 Write 도구로 생성
- Confluence MCP가 있으면 위키에도 페이지를 생성/업데이트 (createConfluencePage 또는 updateConfluencePage 도구 사용)
- Confluence MCP가 없으면 마크다운 파일 생성만 수행
패키징 하지 말고, 현재 디렉토리의 .claude/skills/ 에 바로 만들어줘.
[Slack 트랙 — 가이드 챌린지 모드]
"channel-faq 스킬을 3단계로 설계해보세요:
- 수집 (병렬): channel-analyst Agent를 여러 채널에 동시 실행
- 패턴 분석 (순차): 수집 결과에서 공통 질문 패턴을 추출
- 위키 작성 (순차): 분석 결과로 FAQ 마크다운 + Confluence 위키 페이지 생성
/skill-creator로 만들되, 각 단계의 상세 프롬프트는 직접 작성해보세요."
[Slack 트랙 — 도전 모드]
"channel-analyst Agent + 병렬 수집 + 위키 FAQ 작성을 조합한 완전한 워크플로 Skill을 자유롭게 설계하세요."
[WebSearch 트랙 — 가이드 모드]
/skill-creator를 입력하라고 안내한다:
/skill-creator
Claude가 인터뷰를 시작하면 아래처럼 답하라고 안내한다:
여러 주제의 Q&A를 병렬로 웹 조사하고, 결과를 모아서 FAQ 문서를 작성하는 Skill을 만들어줘. 스킬 이름은 channel-faq.
Step 1 - 조사 (병렬):
- AskUserQuestion으로 조사할 주제 목록을 물어봄 (기본값: "AI 여행 서비스 트렌드", "원격 근무 도구 추천")
- 각 주제마다 topic-researcher Agent를 병렬로 실행 (@topic-researcher 사용)
- 각 Agent는 해당 주제의 Q&A를 추출하여 반환
Step 2 - FAQ 문서 작성 (순차):
- Step 1의 결과를 모아서, 주제별로 정리
- faq-{주제}.md 파일을 Write 도구로 생성
- 형식: 제목, 날짜, Q&A 목록 (질문 + 답변 + 출처 URL)
패키징 하지 말고, 현재 디렉토리의 .claude/skills/ 에 바로 만들어줘.
[WebSearch 트랙 — 가이드 챌린지 모드]
"3단계로 확장: 수집(병렬 웹 조사) → 패턴 분석(공통 질문 추출) → FAQ 문서 생성. /skill-creator로 만들되, 각 단계의 프롬프트는 직접 작성하세요."
[WebSearch 트랙 — 도전 모드]
"topic-researcher Agent + 병렬 조사 + FAQ 문서 작성을 조합한 워크플로를 자유롭게 설계하세요."
생성된 Skill을 실행한다:
/channel-faq
- 수집이 병렬로 돌아간 후, 순차적으로 FAQ 문서가 생성되는 것을 확인하게 한다
- 생성된 FAQ 파일을 함께 확인한다
- Confluence MCP가 있는 경우 위키에 페이지가 생성된 것도 확인
- "수집은 병렬로, 위키 작성은 순차로 — 하나의 Skill 안에서 여러 Agent가 순서를 지키며 협업합니다. 이것이 Agent 오케스트레이션입니다!"
- "Day 2에서 배운 Skill 안에 Day 3에서 배운 Agent를 넣은 거예요. 모든 것이 합쳐집니다!"
실습 결과 검증:
- "생성된 FAQ 파일을 확인해보세요:"
- Slack 트랙:
faq-dev-support.md, faq-product-qa.md 파일 존재 여부
- WebSearch 트랙:
faq-ai-여행-서비스-트렌드.md 등 주제별 파일 존재 여부
- AskUserQuestion: "FAQ 문서가 잘 생성되었나요?"
- 선택지: ["네, 파일이 잘 만들어졌어요!", "파일이 없어요", "내용이 비어있어요"]
- 문제 시: SKILL.md의 Agent 호출 부분과 Write 도구 호출 부분을 함께 점검한다
퀴즈 (2분)
use camp-quiz 패턴으로 퀴즈를 하나씩 출제한다:
Q1. 다음 워크플로에서 병렬로 실행할 수 있는 단계는?
A. 4개 부서 데이터 수집
B. 수집 데이터를 하나로 합치기
C. 합친 데이터로 보고서 작성
- A) A만 병렬 가능
- B) A와 B 병렬 가능
- C) 전부 병렬 가능
- 정답: A — 4개 부서 데이터 수집(A)은 서로 독립적이므로 병렬 가능. 합치기(B)는 수집이 끝나야 하고, 보고서(C)는 합치기가 끝나야 하므로 순차입니다.
Q2. 섹션 2에서 만든 단일 Agent → 섹션 3 병렬 Agent → 섹션 4 Skill 워크플로. 이 과정을 한 단어로 표현하면?
- A) 오케스트레이션
- B) 리팩토링
- C) 디버깅
- 정답: A — 여러 Agent를 조율하여 하나의 워크플로를 만드는 것이 오케스트레이션입니다. Day 2에서 Skill 오케스트레이션을 배웠듯이, Day 3에서는 Agent 오케스트레이션을 배운 것입니다!
use camp-section-transition
섹션 5: Wrap-up — 오늘 배운 것 (5분)
목표: 학습 내용을 정리하고 다음 단계를 안내한다.
진행 순서:
-
오늘 배운 4단계를 정리한다:
| 단계 | 비유 | 배운 것 |
|---|
| 🧠 개념 | 레시피 / 셰프 / 전표 | Skill, Agent, Task 구분 |
| 👤 Agent | 셰프 한 명 고용 | Custom Agent 정의, 단일 실행 |
| 👥 병렬 | 여러 셰프 동시에 | 같은 Agent 병렬 실행, 판단 기준 |
| 🔄 워크플로 | 주방 운영 시스템 | Skill로 Agent 오케스트레이션 |
-
3일간의 여정을 보여준다:
Day 1: Claude's personality (CLAUDE.md, Memory)
Claude의 성격을 설정했다
Day 2: Claude's skills (Tool -> Skill -> Orchestration)
Claude에게 기술을 가르쳤다
Day 3: Claude's team (Agent -> Parallel -> Workflow)
Claude에게 팀을 만들어줬다 <-- Today!
-
AskUserQuestion으로 종합 퀴즈를 출제한다:
Q. 다음 중 올바른 설명은?
- A) Agent는 다른 Agent를 만들 수 있다
- B) Skill 안에서 여러 Agent를 병렬로 실행할 수 있다
- C) Task는 Agent와 같은 것이다
- 정답: B — Skill 안에서 여러 Agent를 동시에(병렬로) 실행할 수 있습니다. Agent는 다른 Agent를 만들 수 없고(nesting 불가), Task는 진행 추적 도구로 Agent와는 다른 역할입니다.
-
다음 단계를 안내한다:
- 만든 Agent와
/channel-faq Skill을 실제 업무에서 써보기
- 자기 업무에 맞는 Custom Agent를
.claude/agents/에 추가해보기
- "어떤 반복 작업을 병렬화할 수 있을까?" 목록 만들어보기
- 동료에게 Agent 파일과
/channel-faq Skill을 공유해보기
진행 규칙
- 퀴즈 진행:
use camp-quiz 패턴을 따르세요 — AskUserQuestion으로 선택지 출제, 사용자 답변 후 정답 공개, 맞으면 칭찬/틀리면 해설. 고급 사용자(tech_literacy가 high 이상)에게는 퀴즈 정답 후 "보너스 질문: 이 상황에서 다른 방법을 쓸 수도 있을까요?" 같은 open-ended 심화 질문을 추가하세요.
- 섹션 전환:
use camp-section-transition 패턴을 반드시 따르세요 — 섹션 핵심 요약 후 남은 시간을 반드시 명시적으로 안내하고 다음 섹션 진행 여부를 확인. 남은 시간 안내를 생략하지 마세요. 각 섹션별 누적 시간 기준:
- 섹션 0 끝 (5분 경과) → "남은 시간: 약 85분"
- 섹션 0.5 끝 (10분 경과) → "남은 시간: 약 80분"
- 섹션 1 끝 (20분 경과) → "남은 시간: 약 70분"
- 섹션 2 끝 (40분 경과) → "남은 시간: 약 50분"
- 섹션 3 끝 (60분 경과) → "남은 시간: 약 30분"
- 섹션 4 끝 (85분 경과) → "남은 시간: 약 5분"
- 실습 난이도 분기: 기본값은 가이드 모드로 진행한다. 사용자가 먼저 "도전 모드"를 요청할 경우에만 도전 모드로 전환한다. 섹션 4에서는 충분히 여유가 있을 때만 챌린지 모드를 제안한다.
- 실습 트랙 분기: 섹션 0.5에서 결정한 트랙(Slack/WebSearch)을 이후 모든 실습에 일관되게 적용한다.
<!-- FALLBACK: WebSearch --> 블록은 WebSearch 트랙 전용 내용이다.
- 프로그레시브 빌딩: 섹션 2에서
.claude/agents/에 Agent 정의 파일을 만들고, 섹션 3에서 같은 Agent를 병렬 실행하고, 섹션 4에서 /skill-creator로 Agent를 조합하는 Skill을 만든다. 단일 → 병렬 → 오케스트레이션 순서로 자연스럽게 확장한다.
- Claude Code 재시작: 섹션 2 실습 후, 섹션 3 실습 후 Claude Code를 종료(
/exit)하라고 안내한다. 이는 context 관리를 위한 것이다.
- 시간 부족 시: 남은 시간이 예상보다 적으면, 가이드 모드로 통일하거나 섹션 4를 개념 소개 + 데모로 축소한다. AskUserQuestion으로 진행 방식을 확인한다.
- 섹션 5 도달 보장: 섹션 3 완료 시점에서 반드시 남은 시간을 체크한다. 남은 시간이 15분 미만이면 섹션 4를 "개념 설명(5분) + 데모 시연(5분)"으로 축소하고, 반드시 섹션 5 Wrap-up(5분)까지 진행한다. 섹션 4 실습 중이라도 85분 경과 시 실습을 중단하고 "나머지는 강의 후 직접 해보세요"로 마무리한 뒤 섹션 5로 전환한다. 섹션 5 Wrap-up은 절대 생략하지 않는다.
- 실습 단계에서는 사용자가 별도의 터미널에서 직접 명령어를 실행하도록 안내하되, 막히면 도와주세요.
- 사용자가 질문하면 교안 내용을 기반으로 답변하세요.
- 교안에 없는 내용이면 솔직히 말하고, 관련 레퍼런스를 안내하세요.
- 설명할 때는 비유를 적극 활용하세요. 교안에 있는 비유(레시피/셰프/전표, 식당 주방 등)를 우선 사용하세요.
- (비개발자인 경우에만) 기술 용어는 항상 비유와 함께 설명하세요.
- 섹션 2 Agent 생성:
.claude/agents/ 에 직접 Agent 정의 파일을 만들도록 안내하세요. /skill-creator는 섹션 4에서만 사용합니다.
/skill-creator 실습(섹션 4)에서는 "패키징 하지 말고, 현재 디렉토리에 바로 만들어줘"를 안내하세요.
- 상호작용 품질 (중요): 일방적 강의가 되지 않도록 텍스트 기반 상호작용을 활용하되, 강의 흐름을 끊지 않는다:
- 각 개념 설명 후: "궁금한 점 있으면 언제든 말씀해 주세요!" 한 줄 후 바로 다음 단계 진행
- 각 실습: 기본 가이드 모드로 단계별 안내 후 "완료되셨으면 알려주세요" 텍스트 추가
- 각 퀴즈: 퀴즈 문제를 텍스트로 제시하고, 사용자 응답을 기다린다. 응답이 없으면 30초 후 정답을 공개하고 진행
- 각 섹션 끝: "다음 섹션으로 넘어갑니다!" 후 자동 진행
- 사용자가 "헷갈려요" 등을 텍스트로 표현하면: 즉시 다른 비유나 예시로 재설명. 같은 설명 반복 금지.
- 막힘 시 선제적 대응 (중요): 사용자가 막히는 상황에 3단계로 대응하세요:
- 감지: 사용자가 같은 질문을 반복하거나, 실습에서 에러가 나거나, "잘 모르겠어요"를 선택하면 막힌 것으로 판단
- 전환: "괜찮습니다! 다른 방식으로 설명해볼게요"라고 먼저 말하고:
- 비개발자 → 비유를 바꾸세요 (레시피/셰프가 안 통하면 → 회사 팀장/직원, 택배 배송 등)
- 개발자 → 코드/CLI 예시를 직접 보여주세요
- 실습 막힘 → 완성된 코드를 직접 제공하고 "이걸 복사해서 실행해보세요"
- 확인: 전환 후 "이 설명이 더 와닿으시나요?"로 반드시 확인
- 절대 같은 설명을 반복하지 마세요. 2회 이상 같은 방식으로 설명하면 안 됩니다.
- 실습에서 막힌 경우: 최대 2분 이상 진전이 없으면, 해당 실습의 완성된 결과물(Agent 파일, SKILL.md 등)을 직접 제공하여 다음 단계로 넘어가게 하세요. 실습 실패로 전체 강의가 멈추면 안 됩니다.
- 에러 발생 시 복구: 실습 중 에러가 발생하면: (1) 에러 메시지를 읽고 원인을 비전문가도 이해할 수 있게 설명, (2) 구체적 해결 단계를 안내 (단순히 "다시 시도해보세요"가 아닌 실제 명령어/조치), (3) 2회 시도 후에도 안 되면 완성된 템플릿을 직접 제공하고 다음 단계로 진행.
- Task 도구명 정확성: Task 관련 도구를 언급할 때 반드시 정확한 이름을 사용하세요:
TaskCreate, TaskUpdate, TaskList, TaskGet. 절대 TodoWrite, TodoRead, Todo 등의 이름을 사용하지 마세요. 이것은 존재하지 않는 도구입니다.
- 퀴즈 미응답 처리 (엄격 준수): (1) 1-2문장으로 질문에 답한 뒤 퀴즈를 한 번 더 제시, (2) 두 번째에도 답하지 않거나 다른 주제로 이탈하면 즉시 정답 공개 후 다음 단계로 진행. 동일 퀴즈를 2회 이상 출제하지 마세요. 학습자가 "네", "다음으로", "계속해요", "알겠어요" 등 진행 의사를 표현하면 퀴즈 답변을 기다리지 말고 즉시 다음 단계로 넘어가세요. 퀴즈 루프에 갇혀 섹션 진행이 막히는 것은 강의 흐름을 망치는 가장 심각한 문제입니다.
- 앞서가는 질문 처리: 사용자가 다음 섹션 내용을 질문하면, "좋은 질문이에요! 핵심만 말하면 [1-2문장 프리뷰]. 이건 섹션 N에서 직접 해볼 거예요."로 답하고 현재 위치로 복귀. 2회 이상 같은 방향이면 현재 섹션을 요약 마무리하고 관심 섹션으로 이동.