PoC 다음 —
증명하고, 운영에 올리고, 재현 가능하게.
AI 개발을 해 본 엔지니어가 그다음에서 막히는 지점을 하루씩(P-16만 2일) 다루는 16개 과정의 대상·목표·산출물·모듈별 시간표입니다. 과정 이름을 누르면 시간표가 펼쳐집니다.
사내 품의·RFP에 그대로 첨부하는 123페이지 통합 커리큘럼 — PART 8
과정별로 무엇을 묻는가.
AI 개발을 해 본 엔지니어가 그다음에서 막히는 지점을 하루씩 다룹니다. 좋아졌다는 것을 어떻게 증명하는가 — 평가 축을 설계하고 LLM-as-a-Judge를 사람 평가와 정렬시켜 릴리스 전 실험과 릴리스 후 모니터링을 잇는 P-1. 운영 환경에 어떻게 올리는가 — Context·Memory·Harness 3대 설계축으로 에이전트를 다시 짜고 MCP·A2A로 연계한 뒤 가드레일·HITL·비용 상한을 갖추는 P-2. 같은 지시에 왜 매번 다른 코드가 나오는가 — 개발을 Y=F(X)로 재정의하고 컨텍스트 엔지니어링·테스트 게이트·AI 상호 리뷰를 Claude Code로 직접 적용해 8단계 재현성 개발 프로세스로 조립하는 P-3 바이브 코딩 졸업. 한 번 호출로 몇 개까지 움직이는가 — 단일 커맨드 한 번에 서브에이전트 8체가 기획→5병렬 구현→정적 심사→독립 게이트로 돌고, 실패는 피드백 루프로 5곳에 되돌리는 병렬 오케스트레이션을 다루는 P-4. Shorts 자동화는 소재일 뿐, 마지막에 자기 도메인 이식 설계도를 그립니다. 데모에서 되던 자동화가 왜 운영에서 깨지는가 — n8n·Dify·MCP·Claude Code를 실행·추론·외부 접속·코드 작업의 네 층으로 분리하고, 일부러 깨뜨린 파이프라인을 로그·리트라이·승인 게이트로 다시 세우는 P-5. 팀의 개발 사이클이 왜 AI 속도를 못 받아내는가 — 스펙 주도 구현·태스크 입도와 의존성 설계·리뷰 스킬 CI·Playwright 동작 증빙으로 개발 라이프사이클을 재설계하는 P-6 AI-DLC. API 호출 다음은 무엇인가 — GPU 장비 없이 Colab 무료 티어만으로 공개 LLM을 4비트로 직접 올리고, 같은 모델 하나에 사내 문서 RAG와 QLoRA 파인튜닝을 각각 붙여 "우리 과제는 어느 쪽인가"를 판단 시트로 만드는 P-7. 조사한 사실로 원인을 좁혀 윗선을 설득할 수 있는가 — 리서치 9형과 출처 역추적·수치 재계산으로 검증하고, 로직트리 가지마다 데이터로 원인을 좁힌 뒤, 결재 라인을 프로파일링한 설계도 한 장에서 AI 보고서와 경영회의 슬라이드를 만드는 P-8 문제해결 실전. 에이전트 개발의 전체 지도를 손으로 그릴 수 있는가 — Claude Code를 해부하고, 도구 정의부터 Claude Agent SDK로 직접 만들고, 관측·평가·프롬프트 인젝션 방어·위임전결까지 에이전트 하나로 관통하는 P-9 AI 에이전트 개발 지식지도. 마케팅팀의 “광고 좀 자동화해 달라”에 무엇을 만들어 주는가 — 확률 공간을 좁혀 전략 한 장에서 배너·숏폼 소재, 검색광고 개선 루프까지 에이전트로 돌리고 결재 게이트와 함께 팀에 배포하는 P-10. AI 기능을 사용자 앞에 어떻게 내놓는가 — 대기·편차·오답을 설계 관점으로 잡고 Flutter 앱에 Firebase AI Logic을 키 노출 없이 붙여 스트리밍·멀티턴 채팅까지 넣는 P-11. 보고·듣고·읽는 AI를 업무에 어떻게 붙이는가 — 시각 토큰으로 비용을 예측하고, 점검표 스캔·CCTV 프레임 판독 스크립트를 도구로 묶어 마스킹 Hook·승인 게이트·손글씨 인젝션 방어까지 갖춘 멀티모달 에이전트를 만드는 P-12. 에이전트 여러 개를 어떻게 팀으로 굴리는가 — 완료 조건·역할·인수인계·리뷰 CI·자율도로 여러 에이전트가 기능 하나를 끝까지 내보내는 팀을 만드는 P-13, 이미 돌아가는 서브에이전트 조직의 실패 12건을 재현해 검증·승인 게이트로 고치는 P-14, 팀 공용 규칙·훅·스킬 묶음을 리포에 얹고 확인 경계·훅 테스트·3-way 업데이트까지 운영하는 P-15. RAG의 검색이 왜 안 걸리는가 — 판정 데이터로 청크·BM25·임베딩·하이브리드·리랭크의 효과를 재며 사내 검색을 고치는 2일 과정 P-16.
P-1·P-2의 기준 도구는 Claude Code가 아니라 각각 LangSmith와 Google ADK·A2A이고, P-7의 기준 환경은 Google Colab입니다. 평가 축·Judge 정렬·3대 설계축·HITL 승인 매트릭스는 프레임워크가 달라도 그대로 이식되므로, Claude Code·Agent SDK로 만든 에이전트에도 같은 구조로 적용합니다. P-3는 Claude Code 전용으로, AI 코딩 도구를 1년 안팎 써 온 개발자가 대상입니다. P-8~P-15는 Claude Code 기반(P-9·P-12는 Claude Agent SDK, P-11은 Flutter·Firebase 병행)입니다. P-16은 로컬 Docker·Qdrant 기반의 도구 중립 2일 과정(14시간)이고, P-8~P-13은 휴식 30분을 포함한 1일 8시간, 나머지는 1일 7시간입니다. 모두 경험자 과정이라 설치·계정·환경 진단은 사전 과제(약 30~40분)로 돌리고 실습 비중을 50~60%로 잡았습니다.
P-1경험자 심화감으로 배포하지 않는다 — LLM 앱 평가 주도 개발(EDD)1일 7시간
'돌려 보니 좋아진 것 같다'에서 벗어납니다. 평가 축을 설계하고 한국어 데이터셋을 만들고, LLM-as-a-Judge를 사람 평가와 정렬시킨 뒤, LangSmith로 릴리스 전 실험과 릴리스 후 모니터링·온라인 평가까지 잇는 평가 파이프라인 한 벌을 손으로 완성합니다. 오전에 만든 Judge(자)로 오후 내내 잽니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:15 | M0 오프닝 | 완성본 시연 — 프롬프트를 일부러 개악해 점수가 떨어지고 알림이 오는 것까지 3분 데모. 사전 설문 '품질을 어떻게 확인하는가' 익명 집계가 오늘의 출발선 |
| 09:15–10:00 | M1 평가의 지형도 | 왜 정답률로는 안 되는가 — 오프라인↔온라인 × 자동↔사람 × 참조 유무 지형도에 내 앱의 평가를 배치. 벤치마크 1위 모델로 바꿨는데 내 앱은 나빠지는 이유 |
| 10:10–11:00 | M2 평가 축 설정 | 정확성·근거 충실성·완결성·톤 — 지표 3층(규칙→Judge→사람), 싼 것부터 거른다. 한국어에서 ROUGE·BLEU가 무너지는 지점. 조별로 1~5점 루브릭 작성 |
| 11:00–12:00 | M3 실습① LLM-as-a-Judge | Judge부터 검증한다 — 응답 20건을 사람이 먼저 채점 → Judge 채점 → 일치율 측정 → 불일치 건으로 프롬프트 수정. 위치·장황함·자기선호 3대 편향 실측 |
| 13:00–13:55 | M4 실습② 평가 데이터셋 | 30건이 300건보다 먼저다 — 대표 10 + 엣지 10 + 실패 10을 LangSmith Dataset으로. 합성 데이터의 함정, 개인정보 마스킹을 데이터셋 단계부터 |
| 14:05–15:25 | M5 실습③ 릴리스 전 실험 | 베이스라인 → 개선안 2종 실험 비교 → 특정 케이스를 되레 깨뜨리는 회귀 찾기 → 경량 모델 교체 실험. 30건에서 0.2점 차이는 유의미한가, 릴리스 판정 게이트 기준선 |
| 15:35–16:25 | M6 실습④ 릴리스 후 | 트레이싱 계장 → M3 Judge를 온라인 평가로 등록 → 점수 하락 알림 → 나쁜 트레이스를 데이터셋에 넣어 재실험까지 한 바퀴. SaaS로 나가는 데이터 경계, Langfuse 대응표, 원화 Judge 비용 시뮬레이션 |
| 16:25–17:00 | M7 자사 적용 워크숍·정리 | 내 앱의 평가 축·데이터셋 시드 확보처·현업 검수자 운영법·릴리스 게이트·월 평가 예산 상한. AI기본법 관점에서 실험 이력·트레이스가 곧 기록 체계임을 연결 |
P-2경험자 심화PoC는 만들었다, 이제 운영이다 — Google ADK·A2A 멀티에이전트 실전 설계1일 7시간
실험 환경에서만 돌던 에이전트를 운영에 올립니다. Context·Memory·Harness 3대 설계축으로 에이전트를 다시 설계하고, MCP로 사내 시스템을 연결하고, A2A로 3개 에이전트를 연계한 뒤 가드레일·HITL·비용 상한까지 갖춘 멀티에이전트 시스템 한 벌을 완성합니다. 오전에 만든 단일 에이전트 하나가 오후 내내 자라 멀티에이전트가 됩니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:15 | M0 오프닝 | 17시에 각자 손에 들릴 3-에이전트 파이프라인 완성본 시연. 사전 설문 '운영 이관에 실패한 경험'을 익명 인용해 오늘의 지도 펼치기 |
| 09:15–09:55 | M1 왜 PoC는 80점에서 멈추는가 | 비결정성·컨텍스트 제약·조합 폭발 — 프롬프트를 더 다듬어서는 못 넘는 벽. 모델이 아니라 구조를 고친다: Context·Memory·Harness 3대 설계축. 툴 통합은 MCP, 에이전트 간은 A2A |
| 10:05–10:55 | M2 ADK 해부 | LlmAgent·Runner·이벤트 루프를 코드로 추적. LLM에 맡길 판단 vs Workflow Agent(Sequential·Parallel·Loop)로 코드에 박을 흐름 — 같은 태스크를 두 방식으로 구현해 재현성 비교. LangGraph↔ADK 대응표 |
| 10:55–12:00 | M3 실습① Context·Memory | 토큰 다이어트 — 시스템 지시·Session State·Memory Bank·RAG 배치 결정 프레임, Agent Skills로 절차 지식을 컨텍스트 밖에. '다 때려 넣은' 에이전트를 받아 재설계하고 토큰 절감률을 조별 게시 |
| 13:00–13:50 | M4 실습② MCP | N×M 통합 지옥을 N+M으로 — MCPToolset 연결 + FastMCP로 사내 API(설비 로그)를 MCP 서버로. 툴 설명이 곧 프롬프트, 반환값 다이어트, 망분리 환경의 MCP 서버 배치와 보안팀 설득 포인트 |
| 14:00–15:20 | M5 실습③ A2A 멀티에이전트 | Agent Card·태스크 생명주기, sub-agent vs A2A 선택 기준. 조별로 수집→분석→보고서 3-에이전트를 A2A로 연계하고 심어 둔 이상치 2건이 최종 보고서까지 살아남는지 추적. 분석 에이전트를 일부러 죽여 부분 장애 관찰 |
| 15:30–16:20 | M6 실습④ 평가·가드레일·HITL | 골든 데이터셋 회귀 평가, 콜백 가드레일, 되돌릴 수 없는 행동 앞 승인 게이트. HITL을 전자결재 전결 규정처럼 금액·범위별 매트릭스로. Agent Engine 배포·트레이싱 데모, 원화 월 예산 시뮬레이션과 비용 상한 |
| 16:20–17:00 | M7 워크숍 · 내가 만든 것 깨뜨리기 | 설계원칙 10을 오늘 모듈에 역매핑, 안티패턴 12 체크리스트로 자기 조 파이프라인을 자가 리뷰. 최소 권한·간접 인젝션 방어·감사 로그 — 개인정보보호법·AI기본법 하에서 HITL·감사 로그가 곧 준비물 |
P-3경험자 심화바이브 코딩 졸업 — Claude Code 재현성 개발 프로세스 1일 완성1일 7시간
'같은 지시, 다른 코드'라는 LLM 출력의 확률적 흔들림이 왜 사고로 이어지는지 오전에 몸으로 겪고, 개발을 Y=F(X) 세 요소로 재정의합니다. 오후에는 컨텍스트 엔지니어링(X)·테스트 주도 개발(Y)·모델 오케스트레이션과 AI 상호 리뷰(F)를 Claude Code로 직접 적용해, 감각에 의존하던 AI 활용을 재현 가능한 8단계 개발 프로세스로 바꾸고 팀 도입 계획까지 세웁니다. 'AI가 짜 준 코드'가 아니라 '재현 가능한 개발 프로세스'를 손에 쥐고 퇴근하는 과정입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:20 | M0 오프닝 · 같은 지시, 3개의 다른 코드 | 라이브 데모 — 동일한 기능 요구를 컨텍스트 없이 3회 생성해 구조·에러 처리·엣지 케이스가 제각각인 코드 3벌을 나란히 띄운다. 이어서 오늘의 도착점을 먼저 시연: 같은 저장소에 X·Y·F 제어를 얹고 같은 지시를 다시 던지면 결과가 수렴하는 장면. 사전 설문(사고 경험) 익명 집계와 하루 동선 |
| 09:20–10:05 | M1 왜 실패는 필연인가 | 데모까지는 잘 됐는데 실운영에서 사고가 났다 — '운이 나빴다'로는 다음 사고를 못 막는다. 사고를 구조로 설명: ①같은 지시에도 출력이 매번 다르다(확률적 생성) ②눈앞의 태스크에만 최적화한다(전역 설계·관례 무시) → 인식되지 않는 부채는 상환되지 않고 쌓인다. 3대 증상(실운영 사고·이해 없는 코드·확인 시간 증가)과 국내 유형(운영 DB 삭제·시크릿 하드코딩 커밋·담당자 퇴사 후 방치 모듈), 프로토타입↔실운영·소규모↔대규모의 경계선. 〔5분 따라 하기〕 같은 지시 2회 생성 → diff로 흔들림 직접 확인 |
| 10:15–11:00 | M2 개발을 식으로 쓴다 · Y = F(X) | X(코드베이스·문서·지시·이력 등 입력 전부), F(모델과 그 호출 방식), Y(코드·테스트·문서 등 산출물)로 개발을 재정의. 핵심 통찰 — 오늘의 Y는 내일의 X다: 품질은 복리로 좋아지거나 복리로 나빠진다. 태스크당 성공 확률이 조금만 달라져도 연쇄 태스크 완주율이 갈리는 시뮬레이션, 클라우드독 파일 공유 서비스의 두 결말(악순환 팀·호순환 팀의 6개월 후), 제어 우선순위가 X→Y→F인 이유. 〔5분 따라 하기〕 어제 한 실제 업무 1건을 X·F·Y로 분해해 빈 곳 표시 |
| 11:00–12:00 | M3 실습① · X를 제어한다 — 컨텍스트 엔지니어링 | 프롬프트를 아무리 다듬어도 결과가 안 나오는 이유 — AI는 주어진 정보가 전부다. 프롬프트 엔지니어링에서 컨텍스트 엔지니어링으로, 1M 컨텍스트 시대에도 '넣을 수 있다'와 '넣어야 한다'는 다르다(정보량보다 정보 효율). 컨텍스트 7요소 점검표로 실습 저장소 진단, 품질 3원칙(신선도·필요충분성·일관성). 실습: 클라우드독 CLAUDE.md를 3원칙에 따라 재작성(낡은 규칙 삭제·아키텍처 결정 명시·금지 사항 선언) → 같은 지시를 다시 던져 M0 대비 출력 수렴 확인. 실행 전·실행 시·실행 후 대책 사이클. 〔5분 따라 하기〕 CLAUDE.md에 규칙 1줄 추가 → 행동 변화 즉시 확인 |
| 13:00–14:10 | M4 실습② · Y를 제어한다 — 테스트가 곧 완성의 정의 | AI가 '완료했습니다'라는데 정말 끝난 건지 모르겠다 — 사람 눈 리뷰는 생성 속도를 못 따라가고, AI가 쓴 테스트에 속는다(구현에 맞춰 역산된 테스트·아무것도 검증하지 않는 assert). 완성 조건 Y를 실행 가능한 테스트로 먼저 고정하는 결정론적 게이트. 실습 전반: 기능 1개를 TDD 순서로 — 완성 조건 합의 → 테스트 먼저 작성 지시 → 구현 전에 사람이 검수(속임수 테스트 탐지 체크리스트: 구현 역산·동어반복 assert·엣지 케이스 부재·모킹 과잉) → 구현 → 게이트 통과. 실습 후반: 일부러 심어 둔 '통과하지만 아무것도 검증 안 하는' 테스트를 찾아내는 역방향 훈련. 리팩터링을 미루면 무한 루프에 갇힌다 — 부채 상환을 플로우에 심는 법. 〔5분 따라 하기〕 버그 리포트 1건을 실패하는 테스트로 먼저 번역 |
| 14:20–15:10 | M5 실습③ · F를 제어한다 — 모델 오케스트레이션과 AI 상호 리뷰 | 모든 일을 한 세션에서 가장 비싼 모델로 시키고 있다 — 긴 세션은 컨텍스트가 오염되고, 생성한 자신이 검증까지 하면 자기 답안을 자기가 채점하는 꼴. F를 태스크에 맞춰 설계: Opus 5(설계·난제·리뷰)와 Sonnet 5(정형 구현·반복 작업)의 역할 분담 기준표, 플랜 모드로 계획과 실행의 분리, 서브에이전트로 탐색·검증 병렬화, 세션 분리로 오염 차단. AI 상호 리뷰 — 구현 세션과 별개의 깨끗한 세션에서 보안·성능·설계 일관성 관점으로 교차 검증(생성자와 검증자의 분리). 실습: M4 구현을 새 세션에서 리뷰시키고 지적을 사람이 판정(수용/기각/보류) 후 반영, 리뷰 결과가 CLAUDE.md 규칙(X)으로 환류되는 것까지. 〔5분 따라 하기〕 태스크 3개를 모델 선택 기준표에 대입해 배정 |
| 15:20–16:20 | M6 실습④ · 조립한다 — 리포지토리 설계와 8단계 개발 플로우 | 기법은 배웠는데 월요일 아침에 뭐부터 할지 모르겠다 — X·Y·F 제어를 하나의 절차로 조립. 8단계 플로우: ①요구 정리 ②컨텍스트 준비(X) ③완성 조건을 테스트로 정의(Y) ④계획 수립(플랜 모드) ⑤구현(F 배분) ⑥AI 상호 리뷰 ⑦사람 최종 판정 ⑧산출물을 X로 환류(문서·CLAUDE.md 갱신). AI가 일하기 좋은 리포지토리 설계(문서 배치·디렉터리 규약·테스트 구조) 실물 템플릿 제공. 통합 실습: 새 기능 요구 1건을 8단계 전체로 완주 — 오전의 CLAUDE.md, 오후의 테스트 게이트·리뷰 절차가 전부 이 한 번에 쓰인다. 완주 후 M0의 '흔들리던 3벌 코드'와 비교. 〔5분 따라 하기〕 8단계 체크리스트를 진행 중 업무 1건에 대입 |
| 16:30–17:00 | M7 워크숍 · 개인의 습관을 팀의 프로세스로 + 정리 | 나는 바뀌었는데 팀은 그대로다 — 개인 기법의 팀 표준화 순서: CLAUDE.md의 팀 공동 소유, 테스트 게이트의 CI 편입, 리뷰 절차의 PR 템플릿화. 한국 기업 전제: 파일럿 팀 선정 기준, 보안 검토에 답하는 논리(소스 반출·데이터 경계·감사 로그), 도입 품의에 쓸 효과 측정 지표(리뷰 시간·재작업률·사고 건수), 망분리 환경의 단계적 적용. 개인 워크시트 — 자사 도입 로드맵 초안(첫 파일럿 저장소·CLAUDE.md 초안 담당·테스트 게이트 기준·리뷰 절차·4주 후 측정 지표). 산출물 6종 확인, '월요일에 할 일' 한 줄 — 진행 중 저장소에 CLAUDE.md 한 장부터. 파생 안내: MCP 구축·운영 과정(MCP-2), 멀티에이전트 설계(P-2) |
P-4경험자 심화한 번 호출로 8개를 움직인다 — Claude Code 서브에이전트 병렬 오케스트레이션 실전1일 7시간
Claude Code 한 번 호출로 기획→구현→심사→공개 준비까지 도는 서브에이전트 파이프라인을 직접 설계·구축합니다. 소재는 실운영 채널에서 24편 이상을 산출한 Shorts 자동화 파이프라인 — 병렬 세션이 충돌하지 않는 구조(git worktree·계획서 락·단일 진실원), 자기평가의 허점을 막는 독립 게이트, 실패를 5곳으로 되돌리는 피드백 루프까지 갖춘 파이프라인 한 벌을 손으로 완성합니다. 마지막 워크숍에서 'Shorts'라는 단어를 지우고 자기 업무(보고서·테스트·문서·데이터 파이프라인)로 4대 기둥을 다시 그리는 것이 이 과정의 클라이맥스입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:15 | M0 오프닝 | 터미널 3개에 Claude Code 세션 3개가 동시에 돌며 서로 다른 Shorts 3편을 만드는 화면을 5분간 그대로 시연. 실운영 채널의 24편 이상 산출 이력, 사전 설문('결국 내가 다시 봤다') 익명 인용, 가상 B2B SaaS 제품 팁 채널 시나리오 부여 |
| 09:15–09:55 | M1 왜 파이프라인인가 · 4대 기둥 | 대화형 사용은 속도·재현성·품질 중 하나를 항상 포기한다. 4대 기둥 — 단일 기점 오케스트레이션 · 락과 단일 진실원 · 독립 게이트 · 피드백 루프 — 를 서브에이전트·커맨드·Hooks·worktree·헤드리스 기능에 대응. 병렬 세션은 토큰을 곱한다 — 8체 호출 × 3세션 × 월 편수를 원화로 환산, Opus/Sonnet 티어 분리 전후 비교 |
| 10:05–10:55 | M2 실습① 3세션 + 계획서 락 | 세션 2개가 같은 소재로 영상을 만들고 파일을 덮어쓰는 사고를 일부러 재현 → worktree 로 작업 트리 분리, 영상별 디렉터리 격리, 계획서 락(candidate→locked→done 상태 머신) + 락 없는 쓰기를 차단하는 PreToolUse Hook 을 넣고 재실행해 충돌이 사라지는 것 확인. 사람은 커맨드 한 줄만 친다 |
| 10:55–12:00 | M3 실습② Remotion + 디렉터리·CLAUDE.md | GUI 편집 툴은 에이전트가 못 만진다 — React 컴포넌트가 곧 영상인 Remotion 으로 씬=컴포넌트·자막=props. Studio 미리보기 → mp4 렌더 1개. Pretendard 임베드·한국어 자막 줄바꿈 규칙을 템플릿에 반영(오후 정적 심사 기준). CLAUDE.md 는 불변 규칙(포맷·금칙·브랜드)의 피난처, 바뀌는 기획은 data.ts 로 — 섞으면 컨텍스트가 오염된다. 라이선스 — Remotion은 개인·직원 3명 이하 기업·비영리·도입 검토 목적만 무료이고 그 밖의 영리 기업은 유료 Company License 대상(2026-09-19 약관 기준), 교육 실습은 강사가 준비한 프로젝트로 진행 |
| 13:00–13:50 | M4 실습③ 기획 · 단일 진실원 | 자연어 기획서는 에이전트마다 다르게 읽는다 — 기획을 타입 있는 코드(data.ts)로 강제, 하위 에이전트는 읽기 전용. 훅·본문·CTA 3요소를 세트로 4안 생성해 세트 단위 선택. 직접 작성 1체째: planner 서브에이전트(입력·출력·금지 명시) 작성 → data.ts 생성 → 4안 중 1안 선택. 광고 표현 규제(최상급·보장 표현) 위반 시 재생성 조건 |
| 14:00–15:20 | M5 실습④ 메인 · 5병렬 + 독립 게이트 | 병렬은 '동시에 돌리기'가 아니라 '겹치지 않게 나누기' — 씬 1개=파일 1개=에이전트 1체 소유라 충돌할 파일이 없다. 정적 심사(타입·lint·자막 글자 수·금칙어·60초 이하) 뒤에 만든 에이전트와 다른 에이전트가 심사하는 독립 게이트. 직접 작성 2체째: gate-reviewer(합격 기준 체크리스트·JSON 판정) → 일부러 CTA 를 바꿔 불일치를 잡는지 확인. 8체 책무표(입력·출력·금지·모델 티어) 전체 공개 |
| 15:30–16:15 | M6 실습⑤ 공개 자동화 + 의도적 수동 4곳 | 렌더 → 메타데이터 생성 → 비공개 업로드까지만 자동. 의도적으로 남긴 수동 4곳(최종 시청 확인·제목/썸네일 확정·공개 버튼·저작권 최종 확인)을 한국 결재·검수 문화에 매핑해 승인 매트릭스 작성. 저작권 요점 — 음원(KOMCA vs 유튜브 오디오 라이브러리)·폰트 라이선스·초상권·'반복적 대량 생산 콘텐츠' 정책 |
| 16:15–16:55 | M7 워크숍 · 실패 8연발 → 피드백 → 이식 | 실운영 실패 8종 사례 → 피드백 분류 커맨드로 실패 1건을 5곳(CLAUDE.md·에이전트 정의·커맨드·게이트 체크리스트·데이터 스키마) 중 어디로 되돌릴지 분류 → 수정 → 재실행. 이식 워크숍: 사전 설문의 자기 팀 산출물로 4대 기둥 이식 설계도 작성, 조별 3분 발표 — 'Shorts 라는 단어를 지웠더니 무엇이 남았는가' |
| 16:55–17:00 | 정리 | 산출물 6종 확인, '월요일에 팀 산출물 1개에 4대 기둥 적용' 숙제, 심화(헤드리스 배치화·TTS 연동·성과 데이터 피드백) 안내 |
P-5경험자 심화데모에서 되고 실운영에서 깨지는 AI 자동화, 안 깨지게 설계한다 — n8n·Dify·MCP·Claude Code1일 7시간
AI 자동화가 데모에서는 되고 운영에서 깨지는 원인을 다섯 유형(비결정성·외부 의존·권한 과잉·관측 불가·책임 부재)으로 짚은 뒤, n8n(실행·연동)·Dify(추론)·MCP(외부 접속)·Claude Code(코드 작업)를 각자의 층에 분리해 배치합니다. 고객문의 1차 응대 파이프라인을 직접 만들어 다섯 가지 방법으로 일부러 깨뜨리고, 로그·리트라이·수동 리뷰·권한 경계로 다시 세우며, 자사 적용용 운영 설계서 1장을 완성합니다. '돌아가는 워크플로'가 아니라 '6개월 뒤에도 돌아가는 자동화 기반'이 도착점입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:15 | M0 깨지는 장면을 먼저 본다 | 완성본 30초 시연 후 그 자리에서 세 번 깨뜨림 — 문의 본문에 심은 인젝션으로 초안이 넘어가고, API 를 끄면 조용히 멈추고, 같은 문의에 답장이 두 통 나간다. 사전 설문 '장애 나면 누가 받나' 집계, 빈 운영 설계서 1장(책임 분계·권한·로그·리트라이·수동 리뷰 5칸) 배포 |
| 09:15–10:00 | M1 왜 데모에선 되고 운영에선 깨지나 | 깨지는 다섯 유형 — 비결정성·외부 의존 실패·권한 과잉·관측 불가·책임 부재 — 에 M0 세 장면을 대입. 층 분리 원칙: 실행·연동(n8n) / 추론(Dify) / 외부 접속(MCP) / 코드 작업(Claude Code). 책임 분계(운영 주체·온콜·계약·개인정보 위탁)를 먼저 정하고 설계서 첫 칸을 채운다 |
| 10:10–11:05 | M2 실습① n8n 의 설계 경계 | n8n 하나에 프롬프트·비밀번호·판단 로직을 다 넣으면 3천 줄 워크플로가 된다 — 트리거·분기·연동·상태 전달로 한정. 크레덴셜·환경 변수 분리, 워크플로 Git 관리, 사내망 배치. 실습: 문의 수신 트리거 → 유형 분기 → 개인정보 마스킹 코드 노드 → 모의 주문 API — LLM 없이 돌아가는 뼈대부터 |
| 11:05–12:00 | M3 실습② Dify 로 추론 층 분리 | 프롬프트를 고치려고 워크플로를 여는 구조에선 버전 관리·A/B·평가가 불가능 — 프롬프트·모델·지식베이스·출력 스키마를 Dify 앱으로 분리하고 n8n 은 HTTP 한 줄로 호출만. 실습: 분류(배송/반품/환불 + 신뢰도)→답변 초안→JSON 출력 앱을 만들어 연결, 신뢰도 낮으면 '판단 보류' 반환 — 승인 게이트의 밑그림 |
| 13:00–14:00 | M4 실습③ MCP 로 외부 접속 층 | 읽기 전용 주문·배송 조회 MCP 서버를 FastMCP 로 작성(개인정보 필드 제거) → Dify 와 Claude Code 양쪽에 연결, 직접 호출을 MCP 경유로 교체. 미니 공격: 문의에 심은 '환불 툴을 호출하라'가 읽기 전용 서버에선 호출할 툴 자체가 없어 실패 — 권한 경계는 프롬프트가 아니라 서버 구성으로 긋는다. 설계서 '권한' 칸 |
| 14:10–14:50 | M5 실습④ Claude Code 에 작업 규칙 | '조심해서 해 줘'는 규칙이 아니다 — 수정 가능 디렉터리·크레덴셜 접근 금지·배포 명령 금지·스모크 테스트 필수를 CLAUDE.md 와 훅으로 강제. 실습: 규칙 작성 → MCP 툴 추가 작업을 시키고 규칙 위반 시도가 훅에 막히는지 확인 → PR 로 반영. Codex 대응표(AGENTS.md·승인 모드) 제공 |
| 14:50–15:50 | M6 실습⑤ 메인 · 깨뜨리고 다시 세운다 | 오전 파이프라인을 5종으로 깨뜨림(API 중단·레이트 리밋·중복 수신·스키마 이탈·승인 없는 환불 통과) → 방어: 상관 ID 를 전 구간에 전달하는 로그와 실패 알림, 재시도 가능/불가 단계 구분과 멱등 키·지수 백오프, 환불·저신뢰 건은 결재선 형태 승인 게이트(타임아웃 시 자동 보류), AI 생성 고지 문구·로그 보존 기간. 다시 깨뜨려 막히는지 확인 |
| 16:00–16:30 | M7 멀티에이전트 제어 경계 | 오케스트레이터(판단)와 워커(실행)의 분리, 워커는 권한을 물려받지 않는다, 에이전트 간 호출엔 상관 ID·호출 깊이 제한·비용 상한. n8n AI Agent 노드 / Dify 멀티에이전트 / Claude Code 서브에이전트 — 무엇을 어디에 두나. 미니 실습: 워커에서 MCP 툴을 빼 요청이 실패하는 것 확인, 호출 깊이 1로 순환 차단 |
| 16:30–16:55 | M8 워크숍 · 운영 설계서 완성 | 체크리스트를 도입 전(읽기 전용부터·승인 없는 쓰기 금지·책임 문서화)·운영 중(상관 ID·재시도 소진 알림·프롬프트 이력·모델 폐기 대응)·장애 시(중단 스위치·수동 전환·공지)로 검토. 하루 종일 채운 설계서를 자사 소재로 옮겨 씀. '작게 시작'의 숫자 기준 — 하루 100건 이하·쓰기 0개·승인 게이트 1개 이상 |
| 16:55–17:00 | 정리 | 산출물 5종 확인, '월요일에 할 일' — 지금 도는 자동화 하나에 상관 ID 부터. 파생: MCP-2(서버 심화)·P-1(추론 층 품질 평가)·+1일 심화(멀티에이전트 운영·비용) |
P-6경험자 심화AI-DLC 실전 — 2~3명 팀으로 대기업급 아웃풋, 개발 라이프사이클 재설계1일 7시간
병목은 모델 성능이 아니라 AI 이전에 설계된 개발 사이클입니다 — 사람 속도에 맞춘 리뷰·QA·머지가 AI 의 생산 속도를 받아내지 못합니다. 이 과정은 스펙 주도 구현(스펙→설계→태스크 문서 게이트)→태스크 입도·의존성 설계(컨플릭트를 크게 줄이는 파일 경계 분할)→팀 공통 리뷰 스킬의 CI 조립→Playwright 스토리 녹화로 동작 증빙→인간 리뷰 재정의→토큰·비용 최적화까지, AI-DLC 한 사이클을 하루에 직접 완주합니다. 실습은 2~3인 조 편성 — 'AI 를 잘 쓰는 개인'이 아니라 'AI 가 기본값인 팀의 개발 사이클 한 벌'을 들고 퇴근합니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:30 | M0 왜 라이프사이클을 다시 설계하나 | 라이브 데모 — 같은 기능을 에이스 1명이 통째로 구현하면 코드는 먼저 나오지만 리뷰 불가능한 3,000줄 PR 이 되어 팀 전체로는 더 느리다. 3스테이지 모델(개인 플레이→팀 통일→라이프사이클화)로 자기 팀 자가진단 — 대부분 1과 2 사이임을 확인하고 오늘 목표를 '3스테이지의 실물 체험'으로 |
| 09:30–10:40 | M1 실습① 스펙 주도 구현 | 채팅 지시는 휘발된다 — 요구사항→설계→태스크의 3단계를 문서로 고정하고 단계마다 사람이 승인하는 게이트. 한글 요구사항('등급별 적립률이 다른 포인트 적립') 1건으로 태스크 20~30건 자동 생성까지. 함정 3가지: 승인 건너뛰기(잘못된 전제가 24건에 증식)·과잉 상세(설계 여지 죽임)·무검토 신뢰. 기획서·화면정의서를 스펙 입력으로 바꾸는 패턴 |
| 10:50–12:00 | M2 실습② 태스크 입도 + 의존성 | AI 에 맡기면 'AI 가 만들기 편한 단위'가 되지 '사람이 리뷰 가능한 단위'가 안 된다 — 변경 파일 수·diff 줄 수·단일 관심사·독립 검증의 4축 판정으로 과대 분할·과소 병합. 의존성 매트릭스를 생성해 같은 파일을 만지는 태스크는 직렬, 경계가 다른 것만 병렬 — 컨플릭트가 크게 주는 핵심은 '돌리기 전에 경계 긋기'. 조별 2~3명이 병렬 구현 착수, 일부러 같은 파일 태스크 2건을 돌려 컨플릭트 재현 |
| 13:00–14:00 | M3 실습③ 공통 리뷰 스킬 + CI | 리뷰 지적의 절반은 매번 같은 내용 — 팀 기준을 리뷰 스킬로 성문화해 CI 에 편입, PR 이 열리면 사람보다 먼저 AI 리뷰가 돈다. 사전 설문 '우리 팀 반복 지적 2가지'를 규칙으로 작성(예: API 응답 개인정보 필드 금지·에러 메시지 한글 표준) → GitHub Actions 편입 → 오전 구현 PR 에서 자동 발동 확인·지적 1건 반영. GitLab CI·Jenkins 이식 가이드 |
| 14:00–14:50 | M4 실습④ Playwright 동작 증빙 | diff 는 동작을 증명하지 못한다 — 구현 완료 시 AI 가 사용자 스토리를 Playwright 로 실행하며 녹화, 리뷰어는 영상 30초로 확인. 스토리 단위 녹화(스펙과 1:1 대응)여야 증빙이 된다. 일부러 버그를 심어 녹화가 실패를 잡는 것 확인. 시나리오 유지보수 비용·화면 변경 취약성 등 미해결 문제를 숨기지 않고 채택 평가표(화면 변경 빈도 × 리뷰 병목)로 도입 판단 |
| 15:00–15:45 | M5 인간 리뷰 재정의 + 코멘트 자동 대응 | 역할 재정의 없이 도구만 더하면 이중 리뷰가 된다 — AI(규칙 위반·버그 패턴·커버리지·동작 재현)와 인간(설계 방향·도메인 정합성·보안·'만드는 게 맞는가')의 책임 분담표를 방금 본 '잡은 것 vs 놓친 것'으로 작성. 리뷰 지적 자동 반영의 범위와 한계 — 자동 대응 결과에도 diff 확인 게이트 유지 |
| 15:55–16:30 | M6 CI 가드레일 + 토큰·비용 | 품질은 5층(정적 검사→커버리지→AI 리뷰→동작 증빙→인간 리뷰)으로 지탱 — 'AI 가 짠 코드라 특별 검사'가 아니라 '누가 짰든 통과할 게이트'. 다 넣을 수 있다와 다 넣어야 한다는 다르다 — 스펙·설계·리뷰는 Opus, 대량 구현은 Sonnet 배분 기준표, 승인된 스펙 문서가 곧 컨텍스트 절약 장치. 팀 단위 비용 산정표: 월 토큰 비용 vs 리뷰 적체로 잃는 인건비 |
| 16:30–16:50 | M7 워크숍 · 우리 팀 도입 로드맵 | 자가진단 스테이지에서 출발 — 1주차 스펙 템플릿·입도 체크리스트 합의 → 2주차 리뷰 스킬 1개 CI 편입 → 4주차 파일럿 1건 사이클 완주 → 8주차 Playwright 채택 판정. 최다 실패는 팀 통일 없이 라이프사이클화로 점프. '월요일에 할 일' 조별 선언 |
| 16:50–17:00 | 정리 | 완주한 1사이클과 부품 전부(스펙 템플릿·입도 체크리스트·의존성 매트릭스·리뷰 스킬·CI·책임 분담표·비용 산정표·로드맵) 확인, 파생 과정 안내 |
P-7경험자 심화GPU 없이 시작하는 LLM 실전 — 브라우저 하나로 RAG·파인튜닝·에이전트까지1일 7시간
"API를 부르는 사람"에서 "모델을 손보는 사람"으로. 노트북 사양과 무관하게 Colab 무료 티어(T4 16GB)만으로 공개 LLM을 4비트로 직접 올려 돌리고, 토크나이저와 생성 파라미터로 출력이 왜 그렇게 나오는지 손으로 확인한 뒤, 아침에 올린 같은 모델 하나에 사내 문서 RAG를 붙이고 QLoRA로 사내 보고서 말투를 학습시키고 Tool Calling으로 손발을 답니다. 한국어 실전 구성 — 한국어 출력이 안정적인 공개 모델을 메인으로 국산 모델(Kanana·EXAONE)과 출력·라이선스를 비교하고, 한국어 토큰 효율을 실측하고, 한국어 특화 임베딩으로 RAG를 만듭니다. "우리 회사 과제는 RAG인가 파인튜닝인가"에 근거를 대고 답하는 사내 적용 판단 시트가 최종 산출물입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:15 | M0 오프닝 | 완성본 3종 시연 — 사내 매뉴얼에 근거 문장까지 짚어 답하는 RAG 봇, 같은 지시를 학습 전 모델과 학습 후 어댑터에 나란히 던져 말투가 달라지는 화면, 실제 함수를 호출하는 에이전트. 전부 무료 Colab 한 창에서 돌아가고 있음을 확인 — 오늘 노트북 사양은 무관. 사내 적용 판단 시트(3칸) 배포, 사전 설문(폐쇄망·자사 과제) 익명 집계 |
| 09:15–09:45 | M1 왜 직접 돌리나 | API만 쓰면 못 하는 세 가지 — 데이터 반출을 못 막고, 모델 폐기에 대응 못 하고, 도메인 적응 수단이 프롬프트뿐. 통제권 4단계(프롬프트→RAG→파인튜닝→사전학습)와 비용·보안 관점, API vs 자체 모델의 월 호출량 기준 손익분기 — "직접 돌리면 무조건 싸다"가 틀린 이유를 숫자로. 폐쇄망·망분리와 AI기본법이 이 판단에 얹는 것 |
| 09:45–10:35 | M2 실습① Colab + 4비트 로딩 | Colab 런타임·세션 수명·드라이브 마운트, Hugging Face 모델 카드를 파라미터 수→컨텍스트→라이선스 순으로 읽는 법, bitsandbytes 4비트(NF4) 양자화 로딩. 2B급 모델을 4비트로 올려 VRAM 실측 → fp16과 비교 → 첫 생성. 같은 한국어 프롬프트를 국산·글로벌 모델에 던져 출력 비교, "사내 서비스에 넣을 수 있는가" 기준의 라이선스 비교표 작성 |
| 10:45–11:35 | M3 실습② 토크나이저·생성 파라미터 | 같은 한국어 문단을 모델별 토크나이저에 통과시켜 토큰 수를 표로 실측 — 한국어 토큰 오버헤드가 컨텍스트 한도·비용에 직결되는 지점. temperature·top_p·repetition_penalty를 극단값으로 밀어 출력이 무너지는 지점 확인, 채팅 템플릿이 뒤에서 만드는 문자열 직접 출력. 긴 입력에서 첫 토큰이 늦어지는 현상 기록(M4로 연결) |
| 11:35–12:00 | M4 Transformer 내부 | 방금 겪은 현상만 설명한다 — 어텐션과 길이의 제곱 비용, KV 캐시와 prefill/decode 속도 차, 4비트로 줄여도 긴 대화에서 다시 터지는 이유. 파인튜닝이 건드리는 층의 밑그림(M6 연결). 수식 없이 실측 그래프 위에 원리를 겹친다 — 컨텍스트 확장 vs RAG, 배치와 VRAM, 양자화가 품질을 깎는 지점의 판단 기준 세 줄 |
| 13:00–14:25 | M5 실습③ 메인 · RAG + Gradio | 청킹(한국어는 문자 수로 자르면 조사·어미가 끊긴다 — 문장 단위 + 오버랩)→한국어 특화 임베딩(원본 다국어 모델과 검색 결과 비교)→FAISS 인덱스→컨텍스트 주입·근거 표시. 정답을 아는 질의 10문항으로 "검색된 청크에 정답이 있었나" 간이 평가 — 도입 심사에서 반드시 나오는 질문. Gradio 채팅 UI 15분 래핑, 공개 링크의 보안 주의. 판단 시트 절반 기입 |
| 14:35–16:00 | M6 실습④ 메인 · QLoRA 파인튜닝 | 형식·말투는 프롬프트로 못 붙잡는다 — 얇은 어댑터만 학습하는 LoRA/QLoRA 구조, 데이터셋 형식과 채팅 템플릿, 나쁜 예시 20건을 섞은 데이터로 오염 시연(데이터 품질 > 하이퍼파라미터). 보고서 200건을 지시-응답 쌍으로 변환 → T4에서 10~15분 학습 → 학습 전후 나란히 비교 → 어댑터 저장 → 과적합 관찰(말투는 남고 내용은 엉킨다). 같은 질문을 RAG만/파인튜닝만/둘 다에 던지는 3종 대비 → 판단 시트 완성 |
| 16:10–16:50 | M7 실습⑤ Tool Calling | 검색으로도 학습으로도 안 되는 실시간 정보 — 함수 스키마가 곧 계약서, tool_call을 꺼내 실행하고 결과를 되넣는 호출 루프, 호출 횟수 상한. 모의 설비 API 도구 2개를 정의해 2단 질의 검증 → 도구를 5개로 늘리고 설명을 모호하게 바꿔 일부러 실패시키기 — 소형 모델의 한계와 스키마 단순화. 도구 응답을 지시로 취급하지 않는 신뢰 경계(인젝션 입구) |
| 16:50–17:00 | 정리 | 노트북 4벌 + 어댑터 파일 확인, 판단 시트 최종 점검 — 자사 과제 하나에 각자 한 줄 결론. "월요일에 할 일": 사내 문서 20쪽으로 오늘 노트북 그대로 재실행. 파생 안내: MCP-2(서버 구축)·P-1(평가 주도 개발)·P-2(멀티에이전트 설계) |
P-8경험자 심화AI 결과물이 확 달라지는 문제해결 실전 — 기술 조사부터 경영진 보고까지1일 8시간
"알려줘" 한 줄로는 틀린 말은 없는데 우리 회사 이야기가 한 줄도 없는 결과물만 쌓입니다. 사람이 사고의 보조선을 긋고 AI가 달리는 문제해결 한 바퀴를 Claude Code로 하루에 완주합니다 — 리서치 9형으로 질문의 해상도를 올리고 출처 역추적·반증 탐색·수치 재계산으로 사실을 검증한 뒤, 가지마다 데이터로 살리고 자르는 로직 트리로 진짜 원인을 좁히고, 래터럴 사고(백캐스팅·유추·전제 파괴·의미 바꾸기)로 대안을 넓히고, 결재 라인을 프로파일링한 설계도 한 장에서 AI 보고서 1페이지와 경영회의 슬라이드 5장을 만듭니다. 아침에 한 줄 프롬프트로 받은 결과물과 저녁의 최종 보고서를 다른 조가 블라인드로 채점해 차이를 직접 잽니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:40 | M0 오프닝 · AI를 쓰기 전에 정할 것 | 본부장 지시 메일 한 통('정산 배치 장애 원인과 대책을 경영회의에') → 전원이 한 줄 프롬프트로 Before 결과물을 받아 봉인. 틀린 말은 없는데 우리 회사 이야기가 한 줄도 없는 이유. AI 활용 3원칙(지시의 해상도·AI 냄새 빼기·재생성 뽑기에 휘둘리지 않기), 시작(질문)과 끝(의사결정)은 사람 몫 → 보조선 카드(단계·틀·내 가설 3줄) 규칙. CLAUDE.md 첫 줄은 보안 규칙 — 검색어에 회사명·내부 수치를 넣지 않는다 |
| 09:40–10:50 | M1 인풋① 리서치 9형으로 질문의 해상도 올리기 | '○○ 알려줘'는 알고 싶은 것을 AI에 떠넘기는 질문 — 탐색·검증·비교·사례 추출·구조화·개념 이해·인사이트·예조 감지·갭 분석 9형과 형마다 받아야 할 결과물 형태. 프롬프트 뼈대 5줄(틀·목적·범위·형식·확신도 표기). 9형을 Skill 하나로 묶고, 탐색·사례·예조를 서브에이전트 3개에 병렬로 맡겨 메인에는 결론 3줄과 출처만. 실습: 검증형·구조화형 필수 + 선택 1형, 장애 티켓 140건을 pandas로 실제 분류·집계 |
| 11:00–12:00 | M2 인풋② '그거 진짜야?'를 없애는 검증 | 보고서에 쓰기 딱 좋은 '장애 70% 감소' 문장의 출처를 열면 숫자가 없다. 검증 4틀 — 출처 역추적(URL을 다시 열어 원문 대조)·반증 탐색(별도 서브에이전트)·수치 재계산(말이 아니라 계산으로)·'그래서?/왜?' 세 번. 백지 세션 이중 확인. 기술 검토 회의·PoC 기획·경쟁 제품 조사 등 엔지니어 업무 7장면별 공격(AI로 넓게)과 수비(사람이 막을 곳). 재계산에서 '월말 3일 집중 + 특정 담당자 부재일 조치 시간 급증' 패턴이 처음 드러난다 |
| 13:00–14:10 | M3 프로세스① 보조선을 긋고 로지컬로 푼다 | '원인 분석하고 대책 세워 줘'는 전부 중요해 보이는 목록으로 돌아온다. 과제 설정(무엇을 풀까)과 문제 해결(어떻게 풀까)을 가르고 로지컬·래터럴을 곱한 4사분면 지도. What·Why·How 트리와 트리 3원칙. 핵심 실습 — Why 트리 가지마다 '이 가설이 맞다면 데이터에 무엇이 보여야 하나'를 적고 Claude Code가 집계해 ✔/✘로 가지치기. 대부분의 조가 '코드 노후'보다 '특정인 의존'에 도달하고, 잘라 낸 가지는 보고서의 '검토했으나 배제한 원인'이 된다 |
| 14:10–15:00 | M4 프로세스② 래터럴로 상식을 비틀고 실행으로 | '후임을 뽑는다'는 합리적 답이 채용 시장에서 불가능할 때. 4인 1조가 백캐스팅·유추(항공 정비 체크리스트·병원 인수인계)·전제 파괴('후임은 사람이어야 한다'를 Runbook·Skill로)·의미 바꾸기('퇴직은 위기'를 '넉 달의 지식 이전 골든타임'으로)를 하나씩 맡아 발산 → 수렴. 발산의 폭주는 CLAUDE.md 제약과 Plan Mode로 막고 위화감은 문장으로 바꿔 제약에 추가. 반론 서브에이전트(본부장·재무·정보보안 관점)로 사전 점검 → 간트로 실행 계획 |
| 15:10–16:40 | M5 아웃풋 · 설계가 9할, 보고서와 슬라이드 | 추진 배경부터 시작해 결론이 5쪽에 있는 보고서는 읽히지 않는다. 설계와 생성을 세션으로 분리. 설계 4스텝 — 목적(현황 공유가 아니라 '계획과 예산 승인') → 결재 라인 프로파일링(팀장·본부장·재무·정보보안이 먼저 보는 것과 싫어하는 것) → Before/After → 골자는 사람이 쓴다. 국내 보고서 양식 + 결론 박스, 같은 설계도에서 보고서와 협조 요청 메일 두 글. 메시지형 헤드라인 슬라이드 5장을 python-pptx Skill로 생성·렌더링 점검, 한국어 AI 티 금칙('~을 통해'·기계적 3항 병렬)을 Hook으로 강제 |
| 16:50–17:35 | M6 팀 자산화 · 오늘의 틀을 Skill·에이전트·Hook으로 | 교육에서 배운 틀은 2주면 잊힌다 — 리서치 9형·보고서 설계·슬라이드 Skill, 반증·반론 에이전트, AI 티 Hook, 팀 CLAUDE.md를 .claude/ 세트로 정리. 주제와 목적만 넣으면 병렬 조사 → 반증 공격 → 살아남은 사실만 설계도에 기록하는 리서치 파이프라인 Skill 실행. 옆 조와 .claude/ 폴더를 바꿔 끼워 '개인 습관이 섞인 곳' 찾기. 사내 보안 심의 3질문(무엇이 나가나·누가 승인하나·책임은 누구에게) 답변 준비 |
| 17:35–18:00 | M7 클로징 · Before/After 블라인드 평가 | 아침 결과물과 최종 보고서를 이름을 가리고 섞어 옆 조가 채점(목적이 분명한가·읽은 뒤 무엇이 달라지나·무엇을 하게 되나 각 5점). 하루치 보조선 카드에서 가설 칸이 빈 카드 수가 각자의 출발점. 판단력·질문력·감지력 — 선배의 빨간 펜이 사라진 현장에서 내 판단을 기록으로 남기는 장치. 개인 4주 계획과 '내일부터 할 것' 한 줄 |
P-9경험자 심화AI 에이전트 개발 지식지도 — Claude Code로 해부하고, 직접 만들고, 운영까지 설계한다1일 8시간
프레임워크는 매년 바뀌어도 에이전트를 이루는 구조와 운영 원칙은 잘 바뀌지 않습니다. 그 바뀌지 않는 부분을 하루에 손으로 익히는 AI 에이전트 개발 교육입니다. 오전에는 매일 쓰는 Claude Code를 해부대에 올려 에이전트 루프를 로그로 확인하고, 도구 정의를 사람이 직접 써서 원시 루프와 Claude Agent SDK로 첫 에이전트를 만듭니다. 오후에는 같은 에이전트에 지식·기억·결재 전 승인 게이트를 붙이고, 컨텍스트·하네스를 측정으로 설계하고, 트레이스와 평가셋으로 관측·채점한 뒤, 오전부터 숨겨 둔 프롬프트 인젝션에 한 번 뚫렸다가 Hook으로 막습니다. 소재는 하나 — 사내 여비 규정을 지키며 품의 상신 직전에 멈추는 출장 준비 에이전트입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:35 | M0 오프닝 · 지도를 펼친다 | '에이전트 도입하자'는 말에 챗봇·RPA·워크플로가 뒤섞여 있다. 에이전트 개발자가 알아야 할 LLM 성질 4가지(비결정성·지식 컷오프·도구는 실행이 아니라 요청·입력 전체 과금), 주요 LLM과 국내 모델 검토 포인트(도구 호출 정확도는 따로 검증), 구성요소 6칸(LLM·도구·지식·기억·사람 협조·오케스트레이션) 지도. 관통 과제 소개와 오늘의 규칙 — 도구 정의·루브릭·승인 지점은 사람이 쓴다 |
| 09:35–10:35 | M1 Claude Code 해부 · 에이전트 루프를 로그로 본다 | 헤드리스 실행을 stream-json으로 기록해 턴마다 생각·도구 호출·관찰을 표로 옮기고 도구 호출 횟수를 센다 — 질문 하나에 도구 12번이면 비용 구조가 챗봇과 다른 이유가 보인다. 같은 요청을 Plan Mode로 다시 돌려 ReAct와 Plan-and-Execute를 호출 순서로 비교. 워크플로와 에이전트 판정 질문 3개(경로를 미리 그릴 수 있나·예외 비율·되돌릴 수 있나)와 워크플로 5패턴. 사내 후보 업무 5건 판정 워크숍 — 대부분 2~3건이 '워크플로로 충분' |
| 10:45–12:00 | M2 첫 에이전트 · 도구 정의를 사람이 쓰고 루프를 읽는다 | 모델은 tool_use로 요청만 하고 실행 권한은 언제나 애플리케이션에 있다. 도구 정의 6원칙(언제 쓰는지·언제 쓰지 않는지·조회와 부작용 분리·복구 가능한 실패 메시지·결과 크기·도구 수). 날씨·KTX·숙소 도구 정의서를 Claude Code 없이 직접 쓰고 짝이 '언제 쓰면 안 되는지' 읽어 내기. 원시 루프를 짝에게 3분 설명(stop_reason·tool_use_id) → Claude Agent SDK 이식본과 나란히 비교. 프레임워크 7요소 지도와 고르는 기준 — 국내는 사내망·보안 요건이 먼저 |
| 13:00–14:10 | M3 지식·기억·결재선 | 규정을 물으면 규정에 없는 숫자를 말하고, 어제 한 말을 모르고, 확인 없이 상신하려 한다. 30쪽 규정은 통째로 넣는 게 더 정확할 수 있다 — RAG가 필요한 경계는 문서량·갱신 빈도·권한 필터링. 사내 규정 MCP 서버 연결, 기억 설계 질문 4개('나 부장이야'는 저장하지 않고 인사 시스템에서 매번 조회). HITL 적용 기준 4가지(비가역·금전·대외 발신·권한 상승)와 승인 피로, 결재선 매핑 — 승인 게이트는 상신 직전 한 곳에 can_use_tool 콜백으로 → 출장 요청 완주 |
| 14:10–15:05 | M4 컨텍스트·하네스·연결 · 모델 바깥을 설계한다 | 프롬프트는 부탁이고 하네스는 규칙이다. 컨텍스트 4기법(밖에 적기·골라 넣기·줄이기·나누기)과 /context 해부 — MCP 서버 하나의 도구 설명만으로 수천 토큰. 실험: 규정 통째로(캐싱 유무) vs 조항 검색을 정확도·토큰·지연으로 측정하고 뒤쪽 예외 조항을 놓치는지 확인. 날짜 한 줄 위치로 캐시 적중이 바뀌는 캐시 친화 구조. 권한 규칙·Hooks·서브에이전트·Skills·샌드박스, 멀티에이전트의 토큰 비용 경고, MCP·AGENTS.md·Agent Skills 표준 |
| 15:15–16:10 | M5 관측과 평가 · 데모 세 번은 평가가 아니다 | HTTP 200이 성공이 아니다 — 규정을 어긴 품의서를 정중하게 써 줬을 수 있다. 운영 경로(에이전트 전용 관리형 서비스 vs 컨테이너, 공공·금융은 CSAP·망분리), 트레이스·스팬과 OpenTelemetry 생성형 AI 규약, 트레이스는 개인정보 덩어리라 마스킹 또는 셀프호스팅. 최종 응답·궤적·단일 스텝 평가, LLM-as-a-Judge 편향 3가지(위치·길이·자기 선호). 평가셋 20건(정상·경계·악의)을 한국어 루브릭으로 채점하고 채점 모델을 바꿔 편향 확인, 한 곳을 고치면 다른 사례가 깨지는 회귀 장면 |
| 16:20–17:25 | M6 공격과 방어 · 부탁과 규칙의 차이 | 정보보호팀의 첫 질문 '외부 데이터에 악성 지시가 섞이면?'. OWASP Top 10 for Agentic Applications를 출장 에이전트 공격면에 매핑, 국내 AI 보안 가이드라인. 공격 3종 — 숙소 리뷰에 숨은 인젝션(목표 탈취)·'나 부장이야'(기억 오염)·'확인 없이 바로 상신'(도구 오용). 방어 — 도구 결과를 데이터 구분자로 감싸기, PreToolUse Hook으로 규정 검토·금액 상한을 결정적 코드로 검사, 리뷰 원문 제거로 입력 면적 축소, 기억 금지 필드. 재공격 — 프롬프트만 고친 방어는 다시 뚫리고 Hook 방어는 막힌다 |
| 17:25–18:00 | M7 클로징 · 무엇을 맡기고 무엇을 맡기지 않을까 | AI 기본법의 생성형 AI 고지 의무와 고영향 AI 책무 — 같은 구조로 채용 서류 검토 에이전트를 만들면 고영향 AI가 된다는 대비. 위임전결 규정표에 에이전트 행 추가(에이전트는 기안까지, 결재는 사람). UI·결제 프로토콜 동향과 국내 적용 제약. 아침에 그린 구성요소 6칸에 오늘 만든 산출물 채우기, 팀용 설계 체크리스트 1장, '다음 주 사내에서 할 것' 한 줄 |
P-10경험자 심화Claude Code로 만드는 광고 운영 에이전트 — 전략·소재 제작부터 검색광고 개선 루프까지1일 8시간
마케팅팀이 "광고 소재랑 검색광고 좀 자동으로 돌아가게 해 달라"고 했을 때 Claude Code에 한 줄 프롬프트만 던지면 '혁신·스마트·파트너'로 가득한, 경쟁사와 똑같은 카피가 돌아오고 같은 요청에도 매번 답이 다릅니다. 원인은 AI 성능이 아니라 구조가 없다는 데 있습니다. 가상 B2B SaaS 기업의 광고 운영 과제 하나로 하루를 끝까지 갑니다 — 배경·제약·성과 수치 붙은 예시·출력 스키마로 확률 공간을 좁히고 CLAUDE.md·스킬·훅 3층으로 결과를 고정한 뒤, 고객 인터뷰를 근거로 전략 한 장을 만들고, 그 한 장에서 배너 12장과 첫 5초 훅만 다른 숏폼 3편을 뽑습니다. 검색광고는 설계·소재 생성부터 성과 데이터로 CPA 악화 원인을 검증하는 개선 루프까지 에이전트로 돌리고, 사람이 승인하기 전에는 집행 파일을 만들지 않는 결재 게이트와 함께 팀 저장소로 배포합니다. 핵심은 "한정은 프롬프트로, 보장은 코드로" — 광고비가 움직이는 결정은 사람이 합니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:40 | M0 오프닝 · Before 실험 | 한 줄 프롬프트로 광고 카피 10개를 받아 Before 파일로 봉인. 결과가 뻔하고 매번 다른 이유는 AI 성능이 아니라 구조가 없어서라는 점, 오늘 필요한 광고 용어(CTR·CVR·CPA·ROAS·SQL) 한 장, 가명 처리 전 원본·.env 읽기 차단과 CLAUDE.md 맨 위의 보안 규칙 |
| 09:40–10:50 | M1 확률 공간 좁히기 | 배경·제약·예시·출력 형식·평가 기준 다섯 레버를 CLAUDE.md(상시)·스킬(작업별)·훅(코드로 하는 결정적 보장) 3층에 나눠 싣는다 — 한정은 프롬프트로, 보장은 코드로. 조건 없이 뽑은 20개와 좁혀 뽑은 20개를 중복률·규제 위반·글자 수로 비교하고, CTR 1위 소재가 규제에 걸리는 딜레마를 직접 발견 |
| 11:00–12:00 | M2 발산·수렴 · 전략 한 장 | 고객·경쟁사·영업 현장 관점의 서브에이전트가 독립 컨텍스트로 인터뷰·영업 메모·경쟁사 자료를 읽고 후보마다 근거 행 번호를 남긴다. 평가자 에이전트가 빈도·절실함·차별성·증명 가능성 기준표로 채점하고, 최종 선택은 사람이 — 결재용 전략 한 장(strategy.md) |
| 13:00–14:00 | M3 배너 소재 파이프라인 | 경쟁사 배너 분석표, 카피(JSON)와 디자인(HTML 템플릿 3종) 분리, Playwright로 매체 규격 3종 × 카피 4종 = 12장 일괄 렌더링. 잘림·글자 수·명도 대비 자동 검수 후 Claude가 결과물을 직접 보고 재점검, 금칙어·근거 없는 최상급을 잡는 PostToolUse 훅으로 어긴 카피를 Claude가 스스로 고쳐 다시 저장, 소재 품의 1페이지 |
| 14:00–14:50 | M4 숏폼 훅 변형 양산 | 첫 5초 훅 5유형(문제 직격·숫자 충격·비포애프터·질문·현장 목소리), 본편은 고정하고 훅 구간만 바꾸는 15초 세로형 템플릿으로 3편 렌더링, 뽑은 프레임을 Claude가 보고 안전 영역·자막 점검. Remotion은 개인·직원 3명 이하 기업·비영리·도입 검토 목적만 무료이고 그 밖의 영리 기업은 유료 Company License 대상(2026-09-19 약관 기준) — 교육 실습은 강사가 준비한 프로젝트로 진행하고, 사내에서 계속 쓰려면 약관을 확인하거나 라이선스 부담이 없는 FFmpeg 경로를 씁니다 |
| 15:00–16:20 | M5 검색광고 설계·개선 루프 | 검색 의도별 키워드·광고그룹 설계와 네이버 파워링크·구글 반응형 검색광고의 규격 차이, 문구를 글자 수·규제 훅에 통과시켜 대량 업로드 CSV로. 검색어 리포트를 가벼운 모델 서브에이전트에 나눠 분류해 새는 비용을 제외 키워드 변경안으로, 성과 데이터로 CPA 악화 원인 가설을 검증하고(플랫폼 CPA와 SQL 기준 CPA 역전 포함) 검증된 원인에만 개선안 — 승인 전에는 집행 파일을 만들지 않는 결재 게이트 |
| 16:30–17:30 | M6 운영 에이전트 · 팀 배포 | 오늘의 규칙·스크립트를 Skill 4종으로 묶고 반영 스크립트 실행 전 확인 권한으로 광고비 사고 차단. claude -p 헤드리스로 리포트 수집 → 검색어 분류 → 개선안 → 주간 결재 문서까지 도는 에이전트 실행 — '읽기는 자동, 쓰기는 변경안까지'. 저장소 하나로 묶어 clone만으로 같은 환경, 스킬·금칙어 변경은 PR 리뷰로만, 도입 4주 계획 |
| 17:30–18:00 | M7 클로징 · 블라인드 평가 | 아침 Before 카피와 최종 결과물을 섞어 다른 조가 루브릭 5항목(타깃 선명도·근거·규제 적합·매체 규격·차별성)으로 채점해 스크립트로 집계. 실습 로그의 토큰 사용량으로 월 운영 비용 추정, 사람이 정한 것과 AI에 맡긴 것의 경계, 도입 계획 발표 |
P-11경험자 심화Claude Code로 하루 만에 만드는 생성 AI 모바일 앱 — 입문에서 실전 배포 구조까지1일 8시간
AI 기능은 코드 몇 줄이면 붙지만, 사용자에게 내놓는 순간부터 풀어야 할 문제가 달라집니다. 응답을 기다리는 몇 초 동안 화면은 멈춘 것처럼 보이고, 같은 입력에도 결과가 매번 다르고, 틀린 내용이 섞여도 사용자는 알아채지 못합니다. 이 과정은 대기·편차·오답이라는 세 가지 설계 관점을 먼저 잡고, Claude Code에 지시 → 플랜 검토 → 승인 순서로 Flutter 앱에 Firebase AI Logic을 연결합니다. API 키를 앱에 넣지 않는 호출 구조와 App Check, Riverpod 상태 관리, Firestore 저장, 스트리밍 출력, 멀티턴 채팅을 하루 안에 넣어 AI 일기 앱을 완성합니다. Flutter를 몰라도 됩니다 — 코드는 Claude Code가 쓰고 여러분은 요구사항을 정리하고 결과를 검증합니다. 마지막 시간에는 자기 업무에 넣을 AI 기능 하나의 PoC 작업 계획서를 씁니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–10:00 | M1 생성 AI 앱 설계 3관점 | 하루 흐름과 모든 실습에 쓰는 4단계 루틴(Claude Code에 지시 → 플랜 검토 → 실행 승인 → 결과 검증). 'AI 요약 하나 붙여 주세요' 한 줄 요청서에 숨은 함정에서 출발해 대기·편차·오답 세 관점, Flutter·Firebase 조합을 고른 이유, 프롬프트 기법 4가지와 시스템 지시·생성 파라미터·구조화 출력·안전 설정 |
| 10:10–11:00 | M1 편차 실험 · 키 노출 | Claude Code로 Gemini API를 cURL로 호출하는 스크립트를 만들어 응답 JSON과 토큰 사용량 읽기, temperature를 바꿔 반복 호출하며 편차 확인. 앱에 박힌 API 키가 추출되는 원리와 막는 구조 3가지, 무료 등급 데이터 정책과 조직 계정으로 키를 발급하는 원칙 |
| 11:00–12:00 | M2 Firebase AI Logic 연결 | 앱에 키를 넣지 않고 클라이언트에서 호출하는 Firebase AI Logic 구조. 스타터 저장소에서 /init으로 CLAUDE.md와 프로젝트 규칙, 플랜 모드로 Firebase 연결 순서를 받아 검토·승인 후 flutterfire 설정, 빌드 오류는 로그를 통째로 넘겨 원인 좁히기 |
| 13:00–13:50 | M2 첫 호출 · App Check | Gemini Flash 계열로 일기에 한 줄 피드백을 돌려주는 첫 텍스트 생성. App Check를 디버그 모드로 연결하고 강제 적용 상태에서 디버그 토큰 등록 전후 호출 결과 비교, Gemini Developer API와 Vertex AI 경로 차이, Firebase MCP 서버 연결 |
| 14:00–14:50 | M3 상태 관리 · 결과 저장 | 6초 동안 멈춘 듯 보여 실패한 데모에서 시작. Riverpod AsyncNotifier로 로딩·오류·재시도 상태와 스켈레톤 UI, 피드백을 Firestore에 저장하고 본인 문서만 읽고 쓰는 보안 규칙을 에뮬레이터 테스트로 검증 |
| 15:00–15:50 | M3 프롬프트 평가 · 스트리밍 | 평가용 일기 샘플 10건과 채점 기준표(공감도·구체성·길이·금지 표현)로 프롬프트 수정 전후를 표로 비교. 피드백을 스트리밍 출력으로 바꾸고 첫 글자까지 걸린 시간(TTFT) 측정 — 총 응답 시간이 같아도 체감 대기가 달라진다 |
| 16:00–16:50 | M3 멀티턴 채팅 | 피드백 화면 아래 채팅 UI로 대화 맥락 잇기, 대화 기록 Firestore 저장. 대화가 길어질수록 늘어나는 입력 토큰을 요약 이어 붙이기·최근 N턴 유지로 제어, 일기·상담 기록 같은 민감 정보의 국외 이전 확인 사항과 서울 리전 선택 |
| 17:00–18:00 | 통합 실습 · 상호 검토 | 자기 업무의 AI 기능 하나(업무 일지 → 주간보고 초안, 회의 메모 → 액션 아이템 등)에 대기·편차·오답 체크리스트를 적용해 Claude Code에 맡길 작업 계획서 작성, 2인 1조 상호 검토. 사내 PoC 전에 확인할 보안·결재 항목, 운영·보안·팀 규칙과 백엔드 AI 에이전트로 이어지는 다음 단계 |
P-12경험자 심화멀티모달 AI 실전 — 보고·듣고·읽는 AI를 Claude Code로 사내 업무에 붙이기1일 8시간
설비 점검표 스캔, 생산회의 녹음, 라인 CCTV, 불량 부품 3D 스캔처럼 현장 데이터는 이미 쌓여 있습니다. 그런데 설비 이상 보고서는 여전히 사람이 이틀 동안 자료를 보고, 듣고, 재 가며 씁니다. 가상 제조사의 설비 이상 보고서 한 건을 하루 내내 이어지는 과제로 씁니다. 오전에는 이미지 한 장이 몇 토큰이 되는지 공식으로 예측하고 직접 재서 비용 감각부터 잡고, 개인정보를 가린 뒤 점검표를 JSON으로 뽑는 스크립트와 얼굴을 흐리게 처리한 CCTV 프레임을 판독하는 스크립트를 Claude Code로 만듭니다. 오후에는 이 스크립트들을 도구로 묶어 한 문장 지시만으로 보고서 초안을 쓰는 멀티모달 에이전트를 만들고, 가리지 않은 이미지를 코드로 막는 Hook과 제출 직전에 멈추는 승인 게이트를 붙입니다. 마지막으로 점검표 여백에 숨겨 둔 손글씨 지시문으로 에이전트를 공격하고 다시 막아 냅니다. "측정은 코드, 해석은 모델"을 손으로 익히는 하루입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–10:40 | M1 시각 토큰과 문서 추출 | 과제 소개와 하루 규칙 두 가지('스키마와 양식은 사람이 쓴다'·'외부로 나가는 건 가린 것만'). OCR은 글자는 읽지만 체크 여부·정정 후 값·도장 유무는 판단하지 못한다 — 시각 토큰 공식과 해상도 등급, 시각언어모델 구조(시각 인코더·프로젝터·LLM). 점검표 스캔의 토큰을 예측하고 실측, 추출 JSON 스키마는 사람이 직접 쓰고, 전송 전 개인정보를 가리는 추출 스크립트를 짝과 검토 |
| 10:50–11:20 | M2 60장 실행과 실패 분석 | 없는 글자를 지어내는 환각·공간 추론·개수 세기 등 시각언어모델의 알려진 약점을 우리 점검표와 대조, 스캔 60장을 돌려 스키마 검증 실패·판독 불가·오판을 실패 사례표 한 장에. 판독 불가 건만 상위 모델로 원본을 다시 읽히는 2단 라우팅 |
| 11:20–12:00 | M3 동영상과 프레임 예산 | Claude는 동영상을 직접 받지 않아 프레임을 이미지로 넣어야 한다 — 10분 FHD 영상을 1초 1장으로 넣으면 100만 토큰을 훌쩍 넘는 이유를 시간 중복·동영상 이해 과제·동영상 기반모델 구조로. 프레임 예산 계산기로 샘플링 간격·해상도 3설정 비교 |
| 13:00–14:20 | M4 영상 판독과 얼굴 블러 | 요청당 이미지 장수·해상도 제약과 개인영상정보 규정. ffmpeg 장면 전환 검출과 프레임 시각 새기기 — 파일명(UTC)과 화면 표시(KST)가 9시간 어긋나는 함정. 얼굴 블러에 실패한 프레임은 보내지 않게 막고, 작업 표준 이탈 구간 판독을 오디오 전사 타임라인과 합친다 |
| 14:30–16:00 | M5 멀티모달 에이전트 | 스크립트 다섯 개를 사람이 이어 붙이면 사람이 병목, '다 알아듣는 모델 하나'는 감사·보안 요건과 부딪힌다 — 캐스케이드와 네이티브 옴니모달 판단표, 공통 임베딩·프로젝터 구조 해설. 도구 정의서 5건은 사람이 쓰고 Claude Code로 Claude Agent SDK 에이전트를 만들어 첫 실행 |
| 16:10–17:50 | M6 Hook·승인·인젝션 방어 | 가리지 않은 이미지가 외부로 나가지 못하게 막는 PreToolUse Hook, 보고서 제출 직전 수정·승인·반려를 고르는 승인 게이트. 점검표 여백의 손글씨 지시문으로 공격 → 판독 텍스트 태그 격리·여백 메모 별도 필드·수치 규칙 검사로 방어 → 재공격, 보고서 평가 루브릭 |
| 17:50–18:00 | 정리 | 팀용 멀티모달 도입 체크리스트 1장, 토큰 환산표와 에이전트 구조를 사내 어느 데이터에 먼저 적용할지, '다음 주에 사내에서 할 일' 한 줄 |
P-13경험자 심화AI 개발팀 설계와 운영 — 여러 에이전트로 기능 하나를 끝까지 내보내는 팀 만들기1일 8시간
단일 에이전트는 능숙하게 쓰는데, 에이전트를 셋으로 늘리자 각자 다른 해석으로 코드를 고치고 리뷰 에이전트는 모두 "문제없음"이라고 답합니다. 팀의 품질은 에이전트 수가 아니라 업무와 경계에서 정해집니다. 가상 스타트업의 TypeScript 태스크 관리 앱에 "반복 태스크" 기능 하나를 추가하는 과제로 하루를 관통합니다. 오전에는 완료 조건을 테스트로 판정 가능한 문장으로 쓰고 실패하는 테스트부터 만든 뒤, 구현·리뷰·테스트 역할의 책무와 역할 사이를 오가는 인수인계서 형식을 정합니다. 오후에는 구현 에이전트(Claude Code 서브에이전트 또는 다른 코딩 에이전트)의 diff를 테스트와 Claude 리뷰 CI로 잇는 혼성 팀을 실제로 한 번 돌리고, 일부러 심어 둔 결함으로 리뷰가 제대로 일하는지 검증합니다. 마지막으로 기록을 근거로 자율도를 올리는 단계표를 만들고, 하루 동안 얻은 교훈을 CLAUDE.md·에이전트 정의·훅으로 승격합니다. "측정하지 않은 병렬화 효과는 주장하지 않는다"가 과정 원칙이며, 병렬 구성은 측정 계획이 붙은 가설로만 설계합니다. P-4가 병렬 실행 기술이라면 이 과정은 누가 무엇을 맡고 무엇으로 끝을 판정하는가를 다룹니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:50 | M1 오프닝 · 팀보다 업무를 먼저 | 에이전트 셋에게 요청을 그냥 나눠 준 결과 시연 — 해석은 셋으로 갈리고 리뷰는 전부 "문제없음". 혼자서 팀을 갖는 득실(컨텍스트 분리·자기 검토 맹점 회피 vs 인수인계·조정·토큰·검수 비용), 과정 원칙과 측정 기록표 배포, "반복 태스크" 요구를 업무 단위로 분해하고 사람이 결정할 것·맡길 것·판정자 표시 |
| 10:00–10:50 | M2 사양과 완료 조건 | "잘 동작한다"가 아니라 테스트로 판정 가능한 완료 조건 — 월말 31일·UTC/KST 자정·중복 생성 같은 경계. 사양 판단은 사람이 사양서에 적고, 에이전트에게는 빠진 경계 조건을 질문으로만 받는다. 완료 조건 ID와 테스트 이름을 1:1로 묶고 실패하는 테스트부터 커밋 |
| 11:00–12:00 | M3 역할과 인수인계 | 구현·리뷰·테스트 역할의 입력·출력·금지·권한·판정자 책무표와 .claude/agents 정의 3종. 인수인계서 8항목 — 검증 결과는 명령 출력 원문, "확인하지 못했다"와 "존재하지 않는다" 구분. 필수 항목이 비면 종료를 막는 Stop 훅, 짝과 책무표를 바꿔 두 역할이 같은 파일을 고칠 수 있는 곳 찾기 |
| 13:00–14:20 | M4 오케스트레이션과 혼성 팀 | 오케스트레이터는 배분과 판정 연결만 한다. 구현은 서브에이전트 또는 다른 코딩 에이전트, 리뷰는 Claude — push → PR → GitHub Actions에서 테스트 → Claude 리뷰(완료 조건표·인수인계서·diff 대조, 차단/권고/참고) 연결. 병렬 분할 판단표는 설계서에만 적고, 순차 최소 구성으로 PR 1건을 실제로 끝까지 돌려 측정 1회차 기록 |
| 14:30–15:20 | M5 계획과 장시간 실행 | 플랜 모드로 받은 계획서를 사람이 승인한 뒤에만 실행, 단계마다 완료 조건 ID와 검증 명령. 에이전트의 기억 대신 진행 로그 파일, /compact·/clear 경계와 재개 시 다시 읽힐 문서. 세션을 일부러 끊고 로그만으로 재개해 어긋난 지점을 서식에 반영, 재시도 상한과 사람 호출 조건 |
| 15:30–16:20 | M6 매니지먼트와 검수 | 기계 판정·AI 리뷰·사람 최종 판정 3단 검수. 월말 오류·중복 생성·테스트 기대값 변경 3건을 심은 PR로 리뷰 검출률을 재고, 놓친 결함을 입력 부족·지시 부족·모델 한계로 분류해 재실행. 측정 기록표 1·2회차 비교 — 한 번 돌린 기록으로 말할 수 있는 것과 없는 것, 짝의 PR 머지 판정 |
| 16:30–17:20 | M7 자율도 단계와 학습의 규칙화 | L0 제안~L4 한정 자동 머지 단계표를 permissions allow·ask·deny·훅·브랜치 보호에 대응, 승급·강등 조건은 기록 가능한 지표로. 오늘의 교훈 3건 이상을 CLAUDE.md·에이전트 정의·훅·검수 체크리스트·사양 템플릿 중 어디로 승격할지 분류해 실제 파일에 반영하고, 비대해진 규칙은 줄이는 기준까지 |
| 17:30–18:00 | M8 기능 부전 대응 · 정리 | 끝없는 왕복·형식적 리뷰·중복 조사·범위 이탈·거짓 완료 보고·직접 구현하는 오케스트레이터 — 증상에서 비어 있는 설계 층을 찾는 진단표. 팀 운영 설계서 1장(업무·역할·인수인계·검수·측정·자율도·규칙) 완성, 월요일 할 일 — 진행 중 저장소에 완료 조건표와 인수인계서 서식부터 |
P-14경험자 심화조용히 망가지는 에이전트 조직 — Claude Code 서브에이전트 운영 실패 12건을 재현하고 고치기1일 7시간
서브에이전트로 부서를 나누고 비서에게 작업 배분을 맡긴 조직은 몇 주 동안은 잘 돕니다. 문제는 그 뒤입니다. "편집 완료"라고 보고했는데 파일은 그대로이고, 확인했던 수정이 나중에 되돌아가 있고, 찾지 못한 것을 "존재하지 않는다"고 보고하고, 확인 하나를 건너뛰어 초안이 한꺼번에 예약 게시됩니다. 이 과정은 비서 1명과 부서 6개가 이미 3주째 돌고 있는 가상 생활용품 브랜드의 에이전트 조직 저장소를 나눠 주고, 이런 실패 12건을 강사가 켜는 실패 스위치로 하나씩 재현합니다. 수강생은 로그·diff·상태 코드로 원인이 정의·배분·검증·승인·운영 인프라 중 어디에 있는지 분리하고, 프롬프트를 늘리는 대신 정의 파일 뼈대, 비서 작업 배분 규칙, 쓰기 후 재읽기·부재 증명·"완료" 정의의 검증 게이트, settings.json 권한 규칙과 PreToolUse Hook의 승인 게이트, 알림 도달·도구 점검 장치로 고친 뒤 다시 돌립니다. 마지막에 하루의 기록을 팀이 계속 쓰는 실패 대장 서식으로 바꿉니다. P-4가 병렬 실행을 만드는 기술이라면, 이 과정은 이미 돌아가는 조직이 조용히 망가지는 지점을 다룹니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–10:00 | M1 비서는 배분만 · 정의 파일 다이어트 | 가상 조직 소개와 하루 규칙('보고는 증거가 아니다'·'고치는 곳은 다섯 곳'). 사고마다 금지 문장을 덧붙여 수백 줄이 된 정의 파일에서 핵심 지시가 빠지는 장면과 비서가 배분 지시에 끼워 넣은 즉흥 규칙을 재현 → 역할·입력·출력·금지·완료 조건·보고 형식 6칸 뼈대로 다시 쓰고 비서 작업 배분 규칙 작성 |
| 10:10–11:10 | M2 쓰기 검증 게이트 | "편집 완료"인데 git diff가 비어 있는 경우와 확인한 수정이 30초 뒤 되돌아가는 경우를 재현. 서브에이전트 작업 기록에서 도구의 실제 결과와 최종 보고를 나란히 대조하고 git log로 덮어쓴 주체 추적 → 쓰기 후 재읽기·변경 줄 수 보고, 파일 소유권표, 작업 종료 시점 diff 대조 Hook |
| 11:10–12:00 | M3 부재 증명과 판정 오류 | 다른 경로에 있는 페이지를 "존재하지 않음"으로, 스크립트로 그리는 페이지를 "로그인 필요"로 오판하는 장면 재현. 본 범위와 보지 않은 범위, HTTP 상태 코드로 원인 구분 → 결론을 '있음 / 찾지 못함(범위) / 확인 불가(사유)'로만 쓰는 부재 증명 보고 형식과 웹 가져오기 실패 보고 규칙 |
| 13:00–14:20 | M4 되돌릴 수 없는 행동의 승인 게이트 | 확인을 건너뛰어 초안이 한꺼번에 예약 게시되고, 시키지 않은 정기 자동화가 덧붙고, GUI 자동 조작이 옆 창의 실운영 화면을 누르는 사고를 재현하고 되돌리기. 행동 등급표로 allow·ask·deny를 나누고 settings.json 권한 규칙과 PreToolUse Hook 2종으로 막은 뒤, 범위 밖 개선은 제안으로만 보고하게 한다 |
| 14:30–15:20 | M5 닿지 않는 알림 · 멈춘 도구 | 승인을 요청한 알림이 사람에게 닿지 않는 경우와 의존 도구가 꺼진 부서가 대체 수단을 즉흥으로 찾는 장면 재현. 메신저 웹훅·운영체제 알림 이중화와 도달 테스트, SessionStart Hook의 도구 점검 스크립트, 사내 프록시·사설 인증서 환경 점검, '도구 불가면 멈추고 보고' 규칙 |
| 15:30–16:20 | M6 "완료"의 정의 · 통합 재현 | 빈 표가 남은 기획서가 "완료"로 올라온 사례를 감사 역할이 찾아내기. 충족 조건·알려진 결함 목록·확인 방법 세 부분으로 "완료"를 정의하고 Stop 계열 Hook에 검사 연결. 실패 스위치 여러 개를 동시에 켠 통합 재현으로 게이트가 잡은 것과 놓친 것 기록 |
| 16:20–17:00 | M7 팀 실패 대장 · 이식 · 정리 | 하루 기록을 날짜·부서·하려던 일·일어난 일·원인 분류·고친 곳·재발 확인 방법·담당의 팀 실패 대장 서식으로 확정. 자기 조직을 가상화한 부서표에 12건을 대입해 먼저 터질 3건과 월요일에 넣을 게이트 1개를 고르고 짝과 교차 검토, 관련 과정 안내 |
P-15경험자 심화Claude Code 자율 운용 베이스 도입·운영 — 팀 공용 규칙·훅·스킬 묶음을 얹고, 굴리고, 따라가기1일 7시간
규칙·훅·스킬·도구를 한 벌로 묶은 팀 공용 자율 운용 베이스를 받아 왔는데, 한 사람의 리포지터리에만 들어가 있고 석 달 뒤 베이스가 바뀌면 아무도 따라가지 못하는 일이 흔합니다. 이 과정은 베이스를 '만드는 법'이 아니라 '도입하고, 팀에서 굴리고, 새 버전을 따라가는 운영 절차'를 하루에 한 바퀴 돌립니다. 강사가 준비한 교육용 베이스를 가상 회사의 서비스 리포지터리에 나중에 얹고, CLAUDE.md와 미션 문서를 우리 프로젝트에 맞춘 뒤, 확인이 필요한 경계 6가지를 우리 팀 언어로 적어 permissions allow·ask·deny로 옮깁니다. 오후에는 훅에 직접 입력을 넣어 자체 테스트하고, Issue 하나를 플랜→구현→테스트→PR까지 Claude Code가 자율로 끌고 가게 한 뒤, 늘어나기만 하는 교훈 파일을 Hot·Warm·Cold로 정리하고 승격된 교훈은 물리적으로 지웁니다. 마지막으로 베이스 새 버전을 도입 시점·내 수정·새 버전의 3-way 머지로 반영하며 충돌을 직접 해소합니다. 다음 날 팀 리포지터리에 그대로 가져갈 도입 체크리스트와 업데이트 절차서가 손에 남습니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 09:00–09:50 | M1 베이스 읽기 | 오프닝 — 공용 베이스가 한 사람의 리포지터리에서 멈추는 세 장면(도입만 하고 안 씀·팀원마다 다르게 고침·새 버전을 못 따라감). 교육용 베이스의 구성(CLAUDE.md·규칙·훅·스킬·서브에이전트·커맨드)을 한 장 지도로 그리고, 들어 있는 것·들어 있지 않은 것·우리가 결정해야 할 것을 도입 체크리스트로 분리 |
| 10:00–11:00 | M2 얹기와 맞추기 | 가상 서비스 리포지터리에 베이스를 나중에 얹기 — 도입 전 브랜치 분리, 기존 CLAUDE.md·settings.json과 겹치는 파일 비교, 도입 시점의 베이스 버전(커밋 해시) 기록. 신규 프로젝트 토대로 쓸 때와의 차이, CLAUDE.md와 미션 문서를 우리 서비스의 목적·금지 사항·완료 기준으로 고쳐 쓰기 |
| 11:10–12:00 | M3 확인 경계 설계 | '확인해도 될까요'가 너무 잦거나 없어야 할 곳에서 사라지는 원인 — 되돌릴 수 없는 작업·외부 전송·비용·비밀 정보·공용 브랜치·범위 밖 변경 6가지 경계를 우리 팀 문장으로 쓰고 permissions allow·ask·deny로 옮기기. .env·키 파일 읽기 차단, 샌드박스, 사내 프록시·사설 CA 환경 점검 |
| 13:00–13:50 | M4 훅 자체 테스트 | 훅은 조용히 안 돌 때가 가장 위험하다 — 훅 스크립트에 가짜 도구 입력(JSON)을 직접 넣어 차단(종료 코드)·통과·경고가 기대대로 나오는지 확인하는 자체 테스트 작성. 컴팩션 뒤 규칙 재주입(SessionStart), 병렬 세션을 git worktree로 나누기, 스프린트 단위로 세션을 끊는 기준 |
| 14:00–15:00 | M5 PR 자율 완주 | 첫 주는 Issue 주도로 — 완료 조건이 적힌 Issue 1건을 플랜 모드 → 구현 → 테스트 → 커밋 → PR 작성까지 Claude Code가 끌고 가게 하고, 사람은 경계에서만 멈춘다. 토론형 리뷰(작성자·반론자 서브에이전트)로 PR을 검토하고, 서브에이전트를 쓸 곳과 쓰지 않을 곳 구분 |
| 15:10–15:50 | M6 교훈·개선 루프 | 교훈 파일이 늘기만 하면 규칙이 묻힌다 — 상시 읽는 Hot·필요할 때 읽는 Warm·보관 Cold 3단 분류, 훅·테스트로 승격된 교훈은 원문을 물리 삭제. 회고·개선 레인을 헤드리스 실행(claude -p)이나 GitHub Actions 정기 실행에 올리는 설계, 사람이 승인하는 지점 정하기 |
| 16:00–16:50 | M7 3-way 업데이트 | 베이스 새 버전이 나왔다 — 도입 시점 버전·우리가 고친 현재·새 버전을 세 갈래로 비교해 git으로 3-way 머지, 규칙·settings.json 충돌을 직접 해소하고 훅 자체 테스트를 다시 돌려 확인. 트러블슈팅 역인덱스(증상→원인→확인 위치) 작성, 우리 개선을 베이스로 되돌려주는 PR 기준 |
| 16:50–17:00 | 정리 | 도입 체크리스트·업데이트 절차서 최종 점검, 우리 팀 리포지터리에 얹을 순서(브랜치·검토자·되돌리는 방법)와 첫 주에 돌릴 Issue 3건 정하기, 베이스 버전 확인 주기와 담당자 지정, '다음 주에 팀에서 할 일' 한 줄 |
P-16경험자 심화검색을 숫자로 재고 고친다 — 청크·하이브리드·리랭크로 끌어올리는 RAG 검색 엔지니어링2일 14시간
사내 문서에 RAG를 한 번 붙여 봤지만 "검색이 제대로 안 걸린다", "왜 정확도가 안 오르는지 설명하지 못하겠다"에서 멈춘 엔지니어를 위한 2일 과정입니다. 모델을 바꾸기 전에 자부터 만듭니다 — 1회차 첫 시간에 가상 회사의 한국어 사내 문서로 판정 데이터(qrels)를 설계해 Recall@k·nDCG·MRR 기준선을 재고, 청크 설계 4방식, 역색인·BM25 직접 구현과 한국어 토크나이저 비교, 임베딩 모델 선정과 비대칭 검색, Qdrant의 HNSW·필터·멱등 적재, RRF 하이브리드까지 바꿀 때마다 같은 자로 숫자를 남깁니다. 2회차는 크로스 인코더 리랭크를 레이턴시 예산 안에서 설계하고, 쿼리 확장·HyDE·분해로 입력을 다듬고, 인용을 강제해 근거가 없으면 "모르겠습니다"라고 답하게 한 뒤 검색 실패와 생성 실패를 갈라 RAG 전체를 평가합니다. 권한 필터·무중단 재색인·제로히트율 개선 루프를 거쳐, 미니 프로젝트에서 사내 FAQ 검색을 평가 주도로 고치고 Recall@k 전후를 비교합니다. 실습은 로컬 Docker로 끝나 API 키·과금이 필요 없고, 폐쇄망은 모델 가중치를 사전 반입합니다. P-7이 Colab에서 RAG를 처음 붙여 보는 입문이라면, 이 과정은 검색 계층을 숫자로 재고 고치는 엔지니어링입니다.
| 시간 | 모듈 | 내용 |
|---|---|---|
| 1회차 09:00–10:00 | M1 오프닝 · 검색을 측정한다 | 같은 질문에 기준선과 개선판이 다른 문서를 찾는 완성본 시연으로 시작합니다. '좋아진 것 같다'를 숫자로 바꾸는 Recall@k·nDCG·MRR의 차이와 각 지표가 놓치는 것을 짚고, 가상 회사 사내 질의 20개에 정답 문서와 등급(0·1·2)을 직접 붙여 qrels를 설계합니다. 개발용·시험용 질의를 처음부터 나누는 이유를 확인하고 평가 스크립트로 첫 기준선을 기록 |
| 1회차 10:10–12:00 | M2 코퍼스 적재 · 청크 설계 4방식 비교 | 규정·FAQ·매뉴얼·회의록이 섞인 코퍼스를 정규화하고 문서 ID·부서·갱신일·열람 권한을 메타데이터로 붙여 적재합니다. 고정 길이·문장 단위(오버랩)·제목 구조 기반·질의응답 단위 네 방식으로 청크를 만들어 같은 qrels로 Recall@k를 비교하고, 글자 수로 자를 때 조사·어미와 표가 끊기는 지점을 실패 사례로 기록 |
| 1회차 13:00–14:20 | M3 렉시컬 검색 · 역색인과 BM25 직접 구현 | 역색인과 BM25(k1·b)를 Python으로 바닥부터 구현해 '왜 안 걸리는가'를 점수 분해로 설명합니다. 공백 분리에서는 '검색을·검색이·검색은'이 전부 다른 토큰이 되는 것을 확인하고, 형태소 분석(Kiwi 등)·문자 bigram·공백 분리 세 토크나이저를 실험 변수로 두어 Recall@k와 색인 크기·색인 시간을 표로 비교 |
| 1회차 14:30–15:40 | M4 임베딩과 벡터 DB · 모델 선정·HNSW·필터 | 다국어 모델과 한국어 특화 모델을 같은 qrels에 올려 비교하고, 비대칭 검색 모델에서 query·passage 접두사를 빼면 성능이 떨어지는 것을 직접 확인합니다. Qdrant에서 HNSW 파라미터(m·ef)와 재현율·지연 시간의 교환을 재고, 부서·갱신일 필터 검색과 결정적 ID로 두 번 넣어도 중복되지 않는 멱등 적재를 만듭니다 |
| 1회차 15:50–16:40 | M5 하이브리드 검색 · RRF | BM25 점수와 코사인 유사도는 척도가 달라 그대로 더할 수 없습니다. 점수 정규화 가중합과 순위 기반 RRF를 비교하고, 렉시컬 쪽 토크나이저를 바꾸면 결합 결과가 어떻게 달라지는지 잽니다. 렉시컬만 맞힌 질의(제품 코드·조항 번호)와 벡터만 맞힌 질의(바꿔 말한 표현)를 나눠 각 방식이 왜 이겼는지 기록 |
| 1회차 16:40–17:00 | M6 1회차 정리 · 기준선 확정 | 지금까지의 실험을 한 표(청크·토크나이저·임베딩·결합 방식별 Recall@10·nDCG@10·MRR·지연 시간)로 모으고, 2회차 미니 프로젝트의 출발점이 될 기준선 구성을 조별로 확정합니다. 개발용 질의에서 좋아 보인 설정이 시험용 질의에서도 좋은지 한 번 더 재 보는 습관으로 마무리 |
| 2회차 09:00–10:10 | M7 리랭크 · 크로스 인코더와 레이턴시 예산 | 1차 검색 상위 N개를 크로스 인코더로 다시 매기는 다단 구성을 만듭니다. N을 20·50·100으로 바꿔 nDCG@10 변화와 CPU 지연 시간을 함께 재고, 응답 시간 예산(p95 목표)을 먼저 정한 뒤 N과 모델 크기를 거꾸로 정하는 설계 순서를 익힙니다. 리랭크가 오히려 순위를 망친 질의도 찾아 원인을 기록 |
| 2회차 10:20–11:10 | M8 쿼리 처리 · 확장·HyDE·분해 | 짧고 모호한 질문, 사내 약어, 두 가지를 한 번에 묻는 질문을 입력 쪽에서 흡수합니다. 동의어·약어 사전 확장, 로컬 소형 LLM으로 가상 답변을 만들어 검색하는 HyDE, 복합 질문 분해를 각각 켜고 끄며 질의 유형별 Recall@k 변화와 추가 지연을 비교 — 모든 질의에 켜는 것이 답이 아님을 숫자로 확인 |
| 2회차 11:20–12:00 | M9 생성 쪽 설계 · 인용 강제와 '모르겠습니다' | 검색된 청크에 번호를 붙여 넘기고, 답의 문장마다 청크 번호를 달게 하며, 근거가 없으면 "모르겠습니다"와 확인할 부서를 답하게 하는 프롬프트와 출력 형식을 만듭니다. 인용 번호가 실제 검색 결과에 있는지, 인용한 청크에 그 내용이 있는지 코드로 검사하는 규칙을 붙이고, 답이 없는 질의로 거절 동작을 시험 |
| 2회차 13:00–13:50 | M10 RAG 전체 평가 · 실패 가르기 | 틀린 답 하나를 두고 정답 청크가 검색됐는지부터 봅니다. 검색 실패·순위 밀림·생성 실패(근거 무시·과잉 일반화)·답이 없는데 답한 경우를 분류표로 나누고, 충실성(답이 인용 근거에서 나왔는가)과 근거 일치를 규칙 검사와 사람 판정 20건으로 잽니다. 대책은 실패를 분류한 뒤에 고른다는 원칙 |
| 2회차 14:00–14:50 | M11 권한 필터 · 인덱스 운영 · 개선 루프 | 인사·재무 문서가 권한 없는 사람의 결과에 섞이지 않도록 검색 계층 필터와 색인 전 분리·마스킹을 함께 설계하고 필터 누락을 잡는 테스트를 씁니다. 별칭 전환으로 무중단 재색인, 증분 갱신과 삭제 반영, 쿼리 로그의 제로히트율·재검색률로 실패 질의를 평가 세트에 되돌리는 루프를 설계 |
| 2회차 15:00–16:40 | M12 미니 프로젝트 · 사내 FAQ 검색 개선 | 사내 FAQ 검색의 기준선 수치와 실패 질의 목록을 받고, 조별로 가설 2~3개(청크·토크나이저·결합 가중·리랭크 N·쿼리 확장 등)를 세워 개발용 질의로 개선합니다. 개선 폭은 마지막에 한 번만 시험용 질의로 재고, Recall@k·nDCG·지연 시간 전후 비교와 효과가 없던 시도까지 보고서 1장에 적습니다 |
| 2회차 16:40–17:00 | M13 발표 · 정리 | 조별 3분 발표로 전후 수치, 가장 효과가 컸던 변경, 효과가 없던 변경을 공유합니다. 자사 검색에 적용할 첫 단계(자사 질의 50개로 qrels 만들기)와 GraphRAG·표·이미지 검색처럼 이번에 깊이 다루지 않은 선택지를 언제 검토할지 판단 기준을 안내하고, "다음 주에 할 일" 한 줄로 마칩니다 |