한 문장으로
지금 AI 생태계는 '대화하는 상대(Chatbot)'를 만드는 단계에서 '일하는 시스템(Agent System)'을 만드는 단계로 넘어가는 중이다. 용어가 갑자기 늘어난 게 아니라, 계층이 하나 더 생긴 것이다.
엔지니어링 4층 구조
아래로 갈수록 오래된 개념. 위로 갈수록 2026년에 새로 생긴 층. 아래층이 없어진 게 아니라 위층에 흡수됐다.
바깥이 안을 감싼다. 아래층은 사라진 게 아니라 위층 안으로 들어갔다.
2024 vs 2026
| 구분 | 2024년 (과거) | 2026년 (현재) |
|---|---|---|
| 주체 | 사람 (Human-in-the-loop) 사람이 루프 안에서 매번 개입 | 시스템/AI (Agent-in-the-loop) 사람은 루프 밖에서 설계·검수 |
| 행동 | 사람이 매번 프롬프트를 고쳐서 입력 | 시스템(Loop)이 상황에 맞춰 프롬프트를 자동 생성 |
| 핵심 질문 | "어떻게 질문해야 잘 대답할까?" | "어떻게 반복시켜야 스스로 고칠까?" |
| 성공 기준 | 답변의 퀄리티 | 작업의 완수 여부 |
| 단위 | 대화 1턴 | 작업 1건 (수십~수백 턴) |
| 실패 원인 | 프롬프트가 부실 | 종료 조건이 없음 / 검증자가 없음 |
| 비용 감각 | 토큰 몇천 개 | 작업 1건에 $10~$200 (하네스 사례) |
용어가 늘어난 게 아니라 사람의 자리가 옮겨간 것이다. 안에서 밖으로.
이 강의의 목표
- 키워드 5개를 남에게 한 줄로 설명할 수 있게 된다.
- AI 뉴스·문서에 나오는 주변 용어 24개가 어느 층에 속하는지 안다.
- 내 손으로 종료 조건 하나를 써 본다. (실습 4-2 — 오늘의 핵심)
- 루프가 돈과 이해력을 어떻게 태우는지 알고 방어선을 친다.
관통하는 관점 하나: "AI에게 정답을 한 번에 묻지 말고, 정답을 찾을 때까지 고치게 시켜라." 아래 5개는 전부 이 문장의 부품이다.
"AI가 일을 끝낼 때까지 뺑뺑이 돌리는 규칙 만들기"
- 예전
- 사람이 질문 → AI가 답변 → 끝. 마음에 안 들면 사람이 또 질문.
- 지금
- "목표를 달성할 때까지 계획 → 실행 → 검토 → 수정을 반복해"라고 시스템을 짜 둔다.
- 핵심
- AI가 한 번에 완벽한 답을 못 낸다는 걸 인정하고, 스스로 고칠 기회를 구조로 만들어 주는 기술.
사람은 목표와 종료 조건만 넣는다. 가운데 네 칸은 시스템이 돌린다.
업계 인용 두 개면 분위기가 잡힌다. Peter Steinberger: "이제 코딩 에이전트에게 프롬프트를 쓰면 안 된다. 에이전트에게 프롬프트를 던지는 루프를 설계해야 한다." Boris Cherny(Anthropic, Claude Code 총괄): "나는 더 이상 Claude에게 프롬프트를 쓰지 않는다. Claude에게 프롬프트를 던지고 다음 할 일을 판단하는 루프를 돌린다. 내 일은 루프를 짜는 것이다."
"AI가 딴 길로 새지 않게 채워두는 안전벨트와 작업복"
하네스(Harness)의 원뜻은 마구(馬具) — 말을 제어하는 장비다. AI를 루프에 태우면 반드시 엉뚱한 짓을 한다. 이를 막기 위해 쓸 수 있는 도구(Tool)를 제한하고, 결과물을 특정 형식(JSON 등)으로만 뱉게 강제하고, 검사하는 별도 AI를 붙이는 기술이다.
- 비유
- 요리사(AI)에게 아무 칼이나 주는 게 아니라, 이 요리에 필요한 채소 다지기용 칼만 쥐여주는 것.
- 구성물
- 도구 권한 / 출력 스키마 / 프로젝트 규칙 파일(
CLAUDE.md,AGENTS.md) / 훅(Hook) / 평가자 - 가장 센 것
- 생성자와 평가자 분리. LLM은 자기가 쓴 결과물에 비정상적으로 관대하다. "이 정도면 훌륭하다"며 스스로를 설득한다.
회의적 평가자 (Skeptical Evaluator)
모델은 남의 작업을 비판할 때 훨씬 날카롭다. 그래서 평가자에게 일부러 "의심 많은 성격"을 부여하고, 통과 기준을 하드 임계값으로 못 박는다. GAN(생성적 적대 신경망)의 생성자–판별자 구조에서 따온 발상이다.
하네스가 만드는 차이 — 레트로 게임 메이커 사례
| 구분 | Solo 실행 (하네스 없음) | Full Harness |
|---|---|---|
| 소요 시간 | 20분 | 6시간 |
| 비용 | $9 | $200 |
| 결과 | 기본 UI만, 실제 작동 불가 | 16개 기능 구현, 실제 플레이 가능 |
| 주요 결함 | 런타임 오류, 캐릭터 이동 불가 | 일부 물리 엔진 오차 외 정상 작동 |
"AI끼리 서로 일을 토스하며 협업하는 구조"
한 명의 천재 AI가 다 하는 게 아니다. 기획하는 AI · 코드 짜는 AI · 검수하는 AI를 따로 두고 결과물을 주고받게 만든다. 프롬프트 한 줄을 잘 쓰는 것보다 이 팀워크를 어떻게 짜느냐가 더 중요해졌다.
| 역할 | 하는 일 | 흔한 실패 |
|---|---|---|
| Planner 기획자 |
모호한 요청을 상세 명세(Spec)로 확장. 제품 맥락과 기능 범위에 집중. | 기술 세부사항을 너무 일찍 못 박아 연쇄 오류 유발 |
| Generator 생성자 |
명세를 작업 단위로 나눠 구현. 단계마다 Git 커밋으로 되돌아갈 지점 확보. | 자기 결과에 관대함 — 스스로 "완료" 선언 |
| Evaluator 평가자 |
시작 전 "무엇이 완료인가"를 생성자와 협상하고, 끝나면 사용자 관점에서 공격하듯 테스트. | 기준이 물러서 전부 통과시킴 |
실습 4-3이 이 그림을 직접 재현하는 순서다.
"AI야, 이 정도면 됐으니까 그만해"
루프 엔지니어링의 진짜 핵심. "완벽할 때까지 해"라고 하면 토큰만 태우고 영원히 안 끝난다. 명확한 멈춤 신호가 필요하다. 그리고 멈춤 신호는 세 종류를 다 써야 한다.
| 유형 | 내용 | 예시 |
|---|---|---|
| 성공 종료 | 목표 달성 시 정지 | test/auth 전체 통과 && lint 오류 0 |
| 실패 종료 | 더 해봐야 소용없을 때 정지 | 같은 테스트 3회 연속 실패 시 중단 |
| 에스컬레이션 | 사람 호출 | 5회 시도해도 안 되면 사람 부르기 / 파일 삭제는 승인 요청 |
초보자는 맨 위 한 줄만 쓴다. 아래 두 줄이 없어서 요금이 터진다.
- "완벽해질 때까지"
- "괜찮아 보이면 멈춰"
- "충분히 좋아지면"
AI가 스스로 판정 = 자기 채점. 무한 루프 또는 조기 종료.
- 기계가 판정 가능 (테스트·린트·빌드 종료코드)
- 상한선 있음 (최대 N회, 최대 $X)
- 판정 주체가 생성자와 다름
"done"이 주장이 아니라 증명이 된다.
/goal은 조건이 참이 될 때까지 계속 돌면서, 매 턴 별도의 작은 모델이 완료 여부를 판정한다.
코드를 쓴 모델이 채점하지 않는다는 뜻이다. /loop는 주기적으로 다시 실행하는 쪽. OpenAI Codex 앱에도 같은 이름의 /goal이 있다.
"지금 당장 필요한 기억만 골라서 머리에 넣어주기"
컨텍스트 엔지니어링은 사라진 게 아니라 시스템 안으로 들어갔다. 사람이 매번 문서를 붙여넣던 일을, 이제 AI가 루프를 돌면서 현재 단계에 필요한 정보만 검색(RAG)해 와서 스스로 컨텍스트를 갈아끼운다.
왜 갈아끼워야 하나 — 문맥 불안 (Context Anxiety)
컨텍스트 윈도우가 차오르면 모델이 작업을 성급히 마무리하거나 지시사항을 누락한다. 이걸 '문맥 불안'이라 부른다. 대응은 모델 세대에 따라 갈린다.
| 전략 | 내용 | 언제 |
|---|---|---|
| 리셋 | 컨텍스트를 완전히 비우고, 구조화된 산출물(파일)로만 상태를 전달 | 문맥 불안이 강한 구세대 모델 |
| 압축 | 대화를 요약해 눌러 담으며 연속성 유지 | 긴 문맥 유지력이 좋아진 최신 모델 |
| 외부 메모리 | 진행 상황을 디스크의 마크다운 파일에 기록 | 항상. 루프의 척추. |
세로축은 컨텍스트 사용량. 위 두 줄은 서로 대안이고, 세 번째 줄은 항상 같이 쓴다.
위 다이어그램이 추상이라, 실제 숫자가 붙은 화면이 하나 있으면 초보자가 바로 이해한다.
/context 출력루프 = 5개 부품 + 기억 1개
2025년까지는 루프를 만들려면 bash 스크립트 더미를 직접 짜고 평생 관리해야 했다. 지금은 부품이 제품 안에 그냥 들어 있다. 그래서 "어느 도구를 쓸까"를 싸울 필요가 없다 — 어느 쪽에 앉아도 같은 모양의 루프를 설계하면 된다.
왼쪽 점선 = 다음 실행이 상태 파일에서 이어받는 경로. 여기가 끊기면 매번 처음부터 시작한다.
| 부품 | 루프에서의 역할 | Claude Code | OpenAI Codex 앱 |
|---|---|---|---|
| ① 오토메이션 | 정해진 주기로 할 일을 발굴·분류 (루프의 심장박동) | 스케줄 작업·cron, /loop, /goal, 훅, GitHub Actions |
Automations 탭, Triage 인박스, /goal |
| ② 워크트리 | 병렬 작업 충돌 방지 | git worktree, --worktree, isolation: worktree |
스레드마다 워크트리 내장 |
| ③ 스킬 | 프로젝트 지식을 글로 박제 | Agent Skills (SKILL.md) |
Agent Skills (SKILL.md), $name 호출 |
| ④ 플러그인 커넥터 |
내가 실제로 쓰는 도구에 연결 | MCP 서버 + 플러그인 | Connectors(MCP) + 플러그인 |
| ⑤ 서브에이전트 | 한 놈이 제안, 다른 놈이 검사 | .claude/agents/, 에이전트 팀 |
.codex/agents/ TOML |
| ⑥ 상태(기억) | 뭘 했고 뭐가 남았는지 — 대화 밖에 사는 파일 | 마크다운(CLAUDE.md, progress) 또는 Linear(MCP) |
마크다운(AGENTS.md) 또는 Linear |
부품별 해설
① 오토메이션 — 루프를 '루프'로 만드는 것
이게 없으면 그냥 한 번 돌린 실행이지 루프가 아니다. 주기를 정해 두면 AI가 어제의 CI 실패, 열린 이슈, 최근 커밋을 스스로 훑어서 할 일을 트리아지 인박스에 쌓아둔다. 찾은 게 없는 실행은 알아서 사라진다.
/loop와 /goal의 차이 — 시험에 나온다:
정해진 간격으로 다시 실행한다. "5분마다 배포 상태 확인해."
끝이 정해져 있지 않음.
조건이 참이 될 때까지 계속 간다. "test/auth 전부 통과하고 lint 깨끗해질 때까지."
매 턴 별도 모델이 완료 판정 → 자기 채점 방지.
/loop은 주기가 있고, /goal은 끝이 있다. 초보자가 가장 많이 헷갈리는 한 쌍.
#3 /goal 실행 후 완료 판정이 뜨는 순간 — 이게 "다른 모델이 채점한다"의 증거라 제일 중요하다.
② 워크트리 — 병렬이 아수라장이 되지 않게
에이전트를 두 대 이상 돌리는 순간 파일이 충돌한다. 두 사람이 같은 줄을 서로 말없이 고치는 것과 정확히 같은 문제다. git worktree는 같은 저장소 히스토리를 공유하면서 별도 작업 디렉터리 + 별도 브랜치를 주기 때문에, 한쪽 에이전트의 수정이 다른 쪽 체크아웃을 물리적으로 건드릴 수 없다.
③ 스킬 — 매번 프로젝트를 다시 설명하지 않으려고
에이전트는 모든 세션을 차가운 상태로 시작하고, 의도에 구멍이 있으면 자신 있게 추측으로 메운다. 이게 의도 부채(Intent Debt)다. 스킬은 그 의도를 바깥에 한 번 적어 두는 것 — 관례, 빌드 절차, "그 사건 때문에 우리는 이렇게 안 한다" 같은 것. 스킬이 없으면 루프는 매 사이클마다 프로젝트를 맨바닥에서 재추론한다. 있으면 누적된다.
스킬 vs 플러그인: 스킬은 작성 형식, 플러그인은 배포 방법. 저장소 여러 곳에 나눠주고 싶으면 스킬을 플러그인으로 묶는다.
④ 플러그인·커넥터 — 루프가 실제 세계를 만진다
파일 시스템밖에 못 보는 루프는 작은 루프다. MCP 위에 세워진 커넥터가 이슈트래커를 읽고, DB에 질의하고, 스테이징 API를 치고, 슬랙에 메시지를 남긴다. "여기 고치는 법입니다"라고 말하는 에이전트와 PR을 열고 티켓을 연결하고 CI 초록불 뜨면 채널에 알리는 루프의 차이가 여기서 갈린다.
⑤ 서브에이전트 — 만든 놈과 검사하는 놈 떼어놓기
루프에서 구조적으로 가장 쓸모 있는 한 수. 루프는 당신이 안 보는 동안 돈다. 그래서 자리를 뜰 수 있는 유일한 근거는 믿을 만한 검증자다. 서브에이전트는 각자 모델과 도구를 돌리므로 토큰을 더 태운다 — 두 번째 의견이 값어치 있는 곳에만 쓴다.
⑥ 상태 — 루프의 척추
마크다운 파일 하나, 또는 이슈 보드. 대화 밖에 살면서 뭐가 끝났고 뭐가 남았는지 붙잡고 있는 것. 이게 있어야 내일 아침 실행이 오늘 멈춘 자리에서 이어진다.
루프 하나의 실제 모양
매일 아침 09:00 [오토메이션 발동]
└─ 트리아지 스킬 호출
├─ 어제 CI 실패 읽기
├─ 열린 이슈 읽기
└─ 최근 커밋 읽기
└─ 발견 사항을 progress.md 에 기록 ← ⑥ 상태
각 항목마다:
├─ 격리된 워크트리 생성 ← ② 충돌 방지
├─ 서브에이전트 A: 수정안 작성 ← ⑤ 생성자
└─ 서브에이전트 B: 프로젝트 스킬 + 기존 테스트 기준으로 검수 ← ⑤ 평가자
통과 시 → 커넥터가 PR 생성 + 티켓 갱신 + 슬랙 알림 ← ④
실패 시 → 트리아지 인박스에 남겨 사람에게 ← 에스컬레이션
[종료] 내일 아침 실행이 progress.md 부터 이어받음
여기서 당신이 프롬프트를 친 단계가 하나도 없다. 한 번 설계했을 뿐이다. 그게 루프 엔지니어링이다.
0. 지도 먼저 — AI · 머신러닝 · LLM의 관계
초보자가 가장 먼저 헷갈리는 것은 새 용어가 아니라 낡은 용어들끼리의 관계다. 포함 관계 하나면 정리된다.
"AI가 발전했다"는 말의 99%는 맨 안쪽 칸 이야기다.
1강. LLM은 무엇인가 — "다음 단어를 맞히는 기계"
"오늘 날씨가 참 ___" 다음에 뭐가 올까? '좋다'가 높은 확률, '자동차'는 낮은 확률. 이걸 한 단어씩 반복하면 문장이 되고 문서가 된다. 이 한 줄을 이해하면 아래 세 가지 문제가 전부 자동으로 설명된다.
학습(Training) vs 추론(Inference) — 초보자가 가장 많이 섞는 둘
"제가 AI를 학습시켰어요"라고 말하는 사람의 99%는 추론 단계에서 프롬프트를 잘 준 것이다.
여기서 파생되는 3가지 — 전부 같은 뿌리
| 현상 | 왜 생기나 | 대응 |
|---|---|---|
| 할루시네이션 환각 |
모르는 걸 모른다고 표시하는 기능이 없다. 그냥 "그럴듯한 다음 단어"를 계속 이어 쓴다. 거짓말이 아니라 구조상 그렇게 생겨먹은 것이다. | 근거·출처를 같이 요구 / 검색 붙이기(RAG) / 기계로 검증 |
| 지식 컷오프 knowledge cutoff |
학습이 끝난 시점 이후의 일은 존재 자체를 모른다. 학습은 한 번뿐이니까. | 최신 정보는 검색 도구를 붙이거나 직접 붙여넣기 |
| 계산·세기 실수 | 계산기가 아니라 글자 예측기다. 숫자도 "그럴듯한 다음 글자"로 뱉는다. | 계산은 코드 실행 도구에 시킨다 |
2강. 토큰과 컨텍스트 윈도우 — 기억력이자 요금
토큰 (Token)
AI가 글을 세는 단위. 글자도 단어도 아닌 그 중간이다. 영어는 대략 4글자 ≈ 1토큰, 한글은 1글자 ≈ 1~2토큰이라 같은 내용이라도 한글이 더 많이 든다. 요금은 글자 수가 아니라 토큰 수로 계산된다.
컨텍스트 윈도우 (Context Window)
한 번에 책상 위에 펼칠 수 있는 종이의 양. 이걸 넘으면 오래된 종이부터 책상에서 밀려난다. "아까 말했잖아"가 안 통하는 순간이 바로 이때다. AI가 까먹은 게 아니라 애초에 안 보이는 상태가 된 것이다.
대화가 길어질수록 같은 질문도 요금이 비싸진다. 파란 칸(새 질문)은 그대로인데 회색 칸이 계속 자라기 때문.
초보자가 오늘 바로 쓸 규칙 3개
- 주제가 바뀌면 새 대화를 연다. 긴 대화를 이어가는 게 미덕이 아니다. 요금과 정확도 둘 다 나빠진다.
- 필요한 부분만 붙여넣는다. 파일 전체를 넣으면 중간 내용이 무시되기 쉽다(Lost in the Middle).
- 넘어갈 땐 요약을 들고 간다. "지금까지 결정된 것만 5줄로 정리해줘" → 그걸 새 대화에 붙인다.
3강. 프롬프트 — 말 거는 법의 기본
| 종류 | 누가 쓰나 | 언제 적용되나 |
|---|---|---|
| 시스템 프롬프트 | 서비스 만든 쪽 (또는 나, 설정에서) | 대화 전체에 계속 적용. "너는 ~다" 류의 성격·규칙 |
| 유저 프롬프트 | 나 | 이번 한 턴. 지금 시키는 일 |
좋은 프롬프트 4요소
| 요소 | 질문 | 예 |
|---|---|---|
| 역할 | 누구처럼 답하나 | 너는 10년차 회계사다 |
| 목표 | 무엇을 얻고 싶나 | 이 거래 내역에서 이상 항목을 찾아라 |
| 제약 | 하지 말아야 할 것 | 추측 금지. 근거 행 번호를 반드시 인용 |
| 출력 형식 | 어떤 모양으로 | 표로. 열은 행번호·금액·의심 사유 |
"엑셀 분석해줘"
역할·목표·제약·형식 전부 없음. AI는 빈칸을 자신 있는 추측으로 메운다.
"너는 10년차 회계사다. 붙여넣은 거래 내역에서 이상 항목을 찾아라. 추측 금지, 근거 행 번호 인용. 표로 출력하고 열은 행번호·금액·의심 사유."
# 프롬프트 기본 틀
역할: 너는 ______________ 다.
목표: ______________ 를 해라.
제약: ______________ 는 하지 마라. 모르면 모른다고 해라.
형식: ______________ 형태로 출력해라.
[자료 붙여넣기]4강. 모델 이름 읽는 법
모델 이름은 대체로 [제품군] + [등급] + [세대] 구조다. Claude의 Opus·Sonnet·Haiku, 다른 회사의 Pro·Flash·mini 같은 이름이 등급이고, 붙은 숫자가 세대다.
| 축 | 뜻 | 고르는 기준 |
|---|---|---|
| 등급 | 큰 모델일수록 어려운 추론에 강하고, 느리고, 비싸다 | 어려운 설계·긴 코드 → 상위 등급 / 요약·분류·번역 → 하위 등급 |
| 세대 | 숫자가 클수록 최신. 같은 등급이면 신세대가 대체로 더 낫다 | 특별한 이유 없으면 최신 세대 |
| 추론 모드 thinking | 답하기 전에 스스로 길게 생각하는 단계를 거친다. 느리고 비싸지만 정확도가 오른다 | 수학·디버깅·다단계 계획 → 켠다 / 잡담·요약 → 끈다 |
| 멀티모달 | 글 말고 이미지·소리·영상도 입력으로 받는다 | 스크린샷·도면·사진을 다룰 일이 있으면 필수 |
| 공개 방식 | 오픈웨이트 = 모델 파일을 받아 내 컴퓨터에서 돌릴 수 있음 / 비공개 = API로만 | 보안·오프라인 요구 → 오픈웨이트 / 성능 우선 → 비공개 상위 모델 |
5강. 내 정보를 AI에 넣는 3가지 방법
초보자 질문 1순위: "우리 회사 문서를 AI가 알게 하려면요?" 답은 셋 중 하나다.
①②는 컨텍스트에 들어간다(임시). ③만 가중치를 건드린다(영구). 대부분의 문제는 ①②로 끝난다.
| 방법 | 이럴 때 | 비용·난이도 | 주의 |
|---|---|---|---|
| ① 붙여넣기 | 문서 몇 개, 지금 한 번만 | 공짜에 가까움 / 즉시 | 컨텍스트 윈도우를 넘으면 못 넣는다 |
| ② RAG | 문서 수백~수만 개. 대부분 여기 | 중간 / 며칠 | 검색이 엉뚱한 걸 물어오면 답도 엉뚱해진다 |
| ③ 파인튜닝 | 말투·형식을 모델 자체에 새겨야 할 때 | 높음 / 몇 주 | 지식 주입 용도로는 대개 잘못된 선택. 최신 정보를 넣으려면 매번 다시 학습해야 한다 |
6강. 챗봇에서 에이전트로 — 앞 탭과 이어지는 지점
여기까지가 "AI와 대화하기"다. 그런데 2026년의 주제는 "AI에게 일 시키기"다. 둘을 가르는 선은 딱 하나 — 도구를 쓸 수 있는가.
도구를 쥐여준 순간 AI는 말하는 존재에서 행동하는 존재가 된다. 하네스와 루프가 필요해진 이유가 정확히 이것이다 — 행동에는 안전벨트와 정지 버튼이 필요하니까.
기초 용어 30 — 한 줄 사전
위 6강에 나온 것들의 요약. 수강생 배포용으로 이 표만 잘라 써도 된다.
모델·구조
동작·한계
쓰는 법
pip install anthropic 같은 것.심화 용어 24 — 앞 탭에서 쓰는 말들
여기서부터는 「핵심 키워드 5」 탭을 들은 뒤 읽는다. 층별로 묶었다.
루프 층
progress.md, AGENTS.md 등. 루프의 척추./goal이 이것.하네스 층
컨텍스트 층
사람 쪽 용어 — 사실 이게 제일 중요하다
실습 설계 원칙
이 강좌의 실습은 코드 작성이 아니다. 루프를 글로 정의하는 연습이다. 루프 엔지니어링에서 실제로 사람이 하는 일이 그것이기 때문이다.
개발자비개발자 트랙을 나눠 표기했다. 실습 4-2는 공통 필수.
변수 — 여기부터 채운다
실습 전체가 변수 치환식이다. 아래 5개를 정하면 나머지 프롬프트는 복사만 하면 된다. 주제를 바꿔 다시 돌릴 때도 이 표만 갈아끼운다.
| 변수 | 뜻 | 예시 |
|---|---|---|
| {주제} | 반복하려는 작업 한 줄 | raw/ 자료를 wiki 페이지로 컴파일 |
| {산출물} | 끝났을 때 손에 남는 물건 | wiki/sources/*.md + index 한 줄 |
| {검증도구} | 기계가 판정하는 수단 | 코드블록·표·헤딩 개수 일치 |
| {상한} | 최대 횟수 / 금액 / 시간 | 1회 10건, 3회 실패 시 중단 |
| {도구} | 실제로 돌릴 환경 | Claude Code / n8n / Dify |
채운 예시: 2026-08_실습-샘플_vault흡수루프.md
복사 → {주제} 전체 치환 → STEP 4까지 채우면 그대로 강의 자료가 된다.
실습 4-1 · 루프 6부품 채우기 개발자비개발자
내가 반복하는 업무 하나를 {주제}에 넣고 빈칸을 채운다. 도구는 아직 안 건드린다.
# {주제} 루프 설계서
목표(Goal): {주제}
발동 주기: □ 매일 __:__ □ 커밋할 때마다 □ 수동 실행
{도구}: ______________________________________
① 오토메이션: 무엇을 스스로 찾아오게 할 것인가?
→ ____________________________________________
② 격리: 동시에 돌 작업이 서로 충돌하는가? (Y/N)
→ ____________________________________________
③ 스킬(지식): 매번 다시 설명하기 싫은 프로젝트 규칙 3개
1. __________ 2. __________ 3. __________
④ 연결(도구): 루프가 만져야 하는 외부 시스템
→ ____________________________________________
⑤ 검증자: 누가 "잘 됐다"를 판정하는가? (생성자와 달라야 함)
→ ____________________________________________
⑥ 기억: 진행 상황을 어디에 적을 것인가?
→ ____________________________________________실습 4-2 · 종료 조건 쓰기 개발자비개발자 ★ 핵심
같은 목표를 나쁜 종료 조건과 좋은 종료 조건 두 벌로 쓴다.
"블로그 글이 좋아질 때까지 고쳐줘"
"버그가 다 없어질 때까지 수정해"
"제목 2개 이상 대안 제시 + 문단당 3문장 이하 + 맞춤법 검사 통과. 3회 수정 후 무조건 정지."
"pytest 전체 통과 && ruff 오류 0. 같은 테스트 3회 연속 실패 시 중단하고 보고."
템플릿:
[{주제}] 종료 조건
성공 시 정지: {검증도구} 가 ______________ 이면
실패 시 정지: ______________ 를 ___회 반복해도 안 되면
사람 호출: ______________ 상황이 오면
비용 상한: {상한} — 토큰 ______ / 금액 $______ / 시간 ______분 / 건수 ______자가 검사:
- 성공 조건을 사람 눈 없이 판정할 수 있는가?
- 실패 종료가 따로 있는가? (성공 조건만 있으면 무한 루프)
- 사람 호출 조건이 있는가?
- 상한이 최소 하나 숫자로 적혔는가?
실습 4-3 · 생성자 / 평가자 갈라보기 개발자비개발자
같은 AI에게 세 번 시킨다. B와 C의 차이가 오늘의 결론이다.
프롬프트 A — 생성자 (1차)
{주제} 를 수행해줘.
산출물: {산출물}
제약: (있으면 여기 적기)프롬프트 B — 자기평가 (2차, 같은 대화창)
방금 네가 만든 결과물 어때? 문제 있어?십중팔구 "잘 만들어졌습니다"가 나온다. 이 답을 그대로 복사해 둔다. 비교 대상이다.
프롬프트 C — 회의적 평가자 (3차, 반드시 새 대화창)
너는 깐깐한 리뷰어다.
아래는 "{주제}" 작업의 결과물이다.
[결과물 붙여넣기]
이 결과물이 실패할 이유 3가지를 찾아라.
- 판정 기준: {검증도구}
- "문제가 없다"고 답하는 것은 허용되지 않는다.
- 추측 금지. 결과물 안의 구체적 위치를 인용해라.| 자기평가 (B) | 회의적 평가자 (C) | |
|---|---|---|
| 지적 개수 | ||
| 실제로 맞는 지적 | ||
| 놓친 것 |
본인이 직접 돌린 화면이어야 한다 — 남의 데모로는 이 실습의 의미가 안 산다.
실습 4-4 · 실행 기록 개발자비개발자 ★ 강의 자료가 되는 곳
실제로 적용해 본 것만 강의한다면, 이 칸이 실습의 본체다. 4-1~4-3은 안 채우면 그냥 설계도이지 강의 자료가 아니다.
# {주제} 실행 기록
| 회차 | 날짜 | 입력 | 결과 | 정지 이유 | 비용 |
|---|---|---|---|---|---|
| 1 | | | | | |
| 2 | | | | | |
| 3 | | | | | |
## 실제로 부딪힌 것
- 예상과 달랐던 것:
- 종료 조건이 안 먹힌 순간:
- 비용이 튄 지점:
- 평가자가 잡아낸 것 중 나도 못 본 것:
## 한 줄 결론
> {주제} 에서 루프는 ______________ 였다.도구 실습 — 개발자 트랙 개발자
| 해볼 것 | 방법 |
|---|---|
| 루프 돌리기 | Claude Code에서 /loop — 주기 반복. 인자 없이 쓰면 모델이 간격을 스스로 정한다. |
| 조건까지 돌리기 | /goal — 검증 가능한 정지 조건을 주고 자리를 뜬다. 매 턴 별도 모델이 완료 판정. |
| 서브에이전트 정의 | .claude/agents/에 마크다운 하나. 이름·설명·지시문·모델·도구 목록. |
| 격리 실행 | 서브에이전트에 isolation: worktree — 각자 새 체크아웃, 끝나면 자동 정리. |
| 지식 박제 | CLAUDE.md 작성 → 매 세션 자동 로드. 반복 설명이 사라진다. |
| 자동 실행 지점 | 훅(Hook) 설정 — 도구 실행 전후에 셸 명령 자동 실행 (포맷·린트·로그). |
| 외부 연결 | MCP 서버 연결 — 이슈트래커·DB·사내 API. |
Codex 앱을 쓴다면 이름만 다르고 모양은 같다: Automations 탭 / 스레드별 워크트리 / .codex/agents/*.toml / Connectors.
.claude/agents/ 폴더 + 서브에이전트 파일 하나 열린 화면#6 서브에이전트 병렬 실행 중 화면 (여러 개가 동시에 도는 게 보이는 컷)
#7
git worktree list 출력 또는 워크트리 폴더 2개가 보이는 탐색기#8 토큰·비용 표시 화면 — "루프는 돈을 태운다"의 증거
도구 실습 — 비개발자 트랙 비개발자
코드 없이 루프의 모양을 만져보는 쪽. 셋 중 하나만 골라도 충분하다.
| 도구 | 성격 | 여기서 배울 부품 |
|---|---|---|
| Dify | 웹 화면에서 노드를 이어 붙이는 LLM 앱 빌더 | ③ 지식(RAG) · ④ 도구 연결 · 분기 조건 |
| n8n | 범용 워크플로우 자동화 (스케줄·웹훅·수백 개 연동) | ① 오토메이션 · ④ 커넥터 · ⑥ 상태 저장 |
| LangGraph | 루프·분기를 그래프로 명시하는 에이전트 프레임워크 (파이썬 필요) | ① 루프 구조 · ④ 종료 조건 · ⑤ 검증 노드 |
루프가 좋아질수록 더 날카로워지는 문제 3가지
루프는 일을 바꾸지, 당신을 지우지 않는다. 아래 셋은 루프가 매끄러울수록 쉬워지는 게 아니라 심해진다.
지켜보지 않고 도는 루프는 지켜보지 않고 실수하는 루프이기도 하다. 검증자 서브에이전트를 생성자에서 떼어내는 이유가 루프의 "완료됐습니다"에 의미를 부여하기 위해서인데, 그렇게 해도 '완료'는 여전히 주장이지 증명이 아니다. 당신의 일은 동작을 확인한 코드를 내보내는 것이다.
루프가 내가 쓰지 않은 코드를 빨리 뱉을수록, 존재하는 것과 내가 이해한 것 사이의 간격이 벌어진다. 매끄러운 루프는 이 부채를 더 빨리 키운다. 방어책은 하나뿐 — 루프가 만든 걸 읽는 것.
루프가 알아서 돌면 의견 갖기를 그만두고 주는 대로 받고 싶어진다. 루프 설계는 판단력을 가지고 하면 해독제이고, 생각을 피하려고 하면 촉진제다. 같은 행동, 정반대 결과.
비용 함정
- 토큰 부자와 토큰 빈자의 사용 패턴은 완전히 다르다. 남이 자랑하는 루프를 그대로 따라 하기 전에 내 예산부터 본다.
- 서브에이전트는 각자 모델을 돌린다 → 에이전트 수 × 토큰. 두 번째 의견이 값어치 있는 곳에만 붙인다.
- 종료 조건에 비용 상한을 반드시 넣는다. 시간·횟수만으로는 안 막힌다.
- 하네스 사례 수치: Solo $9(20분, 작동 불가) vs Harness $200(6시간, 동작). 비쌀 값어치가 있는지는 만들 물건에 따라 매번 다시 판단한다.
루프 설계 체크리스트
- 종료 조건이 기계 판정 가능한가? ("좋아 보이면"은 조건이 아니다)
- 실패 종료와 에스컬레이션이 따로 있는가? (성공 조건만 있으면 무한 루프)
- 비용 상한이 있는가? (토큰·금액·시간 중 최소 하나)
- 생성자와 평가자가 분리돼 있는가? (같은 대화창 = 자기 채점)
- 평가자가 회의적으로 튜닝됐는가? ("문제없음" 답변을 금지했는가)
- 완료의 정의를 시작 전에 합의했는가? (스프린트 계약)
- 상태를 디스크에 적는가? (컨텍스트에만 있으면 다음 실행 때 증발)
- 병렬 실행이 워크트리로 격리됐는가? (아니면 파일 충돌)
- 기획자가 기술 세부에 너무 일찍 매몰되지 않았는가? (연쇄 오류)
- 모델이 좋아져서 이제 필요 없어진 구조물은 없는가? (스캐폴딩 철거)
- 루프가 만든 결과물을 내가 읽었는가? (이해 부채)
마무리 한 줄
루프 설계가 프롬프트 엔지니어링보다 쉬워진 게 아니다. 지렛대의 받침점이 옮겨간 것이다.
0교시 · AI 기초 30분 (조건부)
수강생이 토큰·컨텍스트 윈도우·할루시네이션을 모르면 본 강의는 성립하지 않는다. 사전 확인 질문 4개를 던져 보고, 막히면 아래를 먼저 돌린다. → 「AI 기초」 탭
| 시간 | 섹션 | 핵심 한 줄 |
|---|---|---|
| 0–4 | 0. 지도 | AI ⊃ 머신러닝 ⊃ 딥러닝 ⊃ 생성형 ⊃ LLM. "AI 발전"의 99%는 맨 안쪽 얘기. |
| 4–12 | 1강. LLM이란 | 다음 단어를 맞히는 기계. 학습 ≠ 추론. 할루시네이션·컷오프·계산 실수가 전부 여기서 파생. |
| 12–19 | 2강. 토큰·윈도우 | 기억력이자 요금. 대화가 길수록 같은 질문도 비싸진다. 실전 규칙 3개. |
| 19–23 | 3강. 프롬프트 | 역할·목표·제약·형식 4요소. 나쁜 예/좋은 예 1쌍. |
| 23–26 | 4강. 모델 고르기 | 등급·세대·추론 모드. "제일 비싼 게 항상 정답이 아니다." |
| 26–28 | 5강. 정보 주입 3법 | 붙여넣기 / RAG / 파인튜닝. 대부분 RAG면 끝난다. |
| 28–30 | 6강. 챗봇→에이전트 | 가르는 선은 도구 사용. 여기서 본 강의로 넘어간다. |
셋 이상 막히면 0교시 필수. 전원이 답하면 건너뛰고 바로 본 강의.
90분 진행표 (강사용)
대상: 기초 용어가 되는 초보자(0교시 통과자). 개발·비개발 혼합 가능. 실습 4-2와 4-3은 빼지 말 것.
| 시간 | 섹션 | 내용 | 형식 |
|---|---|---|---|
| 0–10 | 왜 헷갈리는가 | 챗봇 → 일하는 시스템. 4층 구조. 2024 vs 2026 표. | 강의 |
| 10–20 | 키워드 ①② | 루프 엔지니어링 · 하네스 엔지니어링. $9 vs $200 사례로 못 박기. | 강의 |
| 20–30 | 키워드 ③④⑤ | 에이전틱 워크플로우 · 종료 조건 · 동적 컨텍스트. | 강의 |
| 30–45 | 실습 4-3 | 자기평가 vs 회의적 평가자 비교. 각자 실행 후 3~4명 결과 공유. | 실습·공유 |
| 45–55 | 루프의 6조각 | 오토메이션·워크트리·스킬·커넥터·서브에이전트·상태. 도구 매핑 표. | 강의 |
| 55–70 | 실습 4-1·4-2 | 내 업무로 루프 설계서 채우기 + 종료 조건 쓰기. 2인 1조 상호 첨삭. | 실습 |
| 70–80 | 함정 3가지 | 검증 책임 · 이해 부채 · 인지적 항복. 비용 함정. | 강의 |
| 80–90 | 체크리스트·Q&A | 11항목 체크리스트 배포. 용어집 24 안내. | 정리 |
대상별 조정
| 대상 | 강조점 | 덜어낼 것 |
|---|---|---|
| 완전 초보 용어부터 막힘 |
0교시 30분 필수. 특히 2강(토큰·윈도우)과 6강(챗봇→에이전트). 본 강의는 키워드 5 + 실습 4-3만 해도 된다 | 루프의 6조각 · 함정 3가지 · 진행표. 2회차로 넘긴다 |
| 개발자 IT 실무자 |
/goal과 /loop의 차이, 워크트리 격리, 서브에이전트 정의 파일, 훅, MCP |
토큰·컨텍스트 윈도우 기초 설명 |
| 기획자 마케터 |
종료 조건 작성, 생성자–평가자 분리, Dify·n8n으로 흐름 만져보기 | 워크트리, git, 서브에이전트 파일 포맷 |
| 경영진 의사결정자 |
$9 vs $200 표, 오케스트레이션 세금(사람이 상한선), 검증 책임 소재 | 실습 전체 → 4-3 데모만 시연 |
기존 커리큘럼과의 접속
이 강좌는 사내 세미나 자료의 Part 7·8을 초보자용으로 앞당겨 묶은 것이다. 심화로 넘길 때 연결점:
- Part 2. 프롬프트 엔지니어링 → 4층 구조 맨 아래층. 여전히 유효하되 루프 안에서 자동 생성된다는 점만 갱신.
- Part 3. 컨텍스트 엔지니어링 → 키워드 ⑤ 동적 컨텍스트로 이어짐. 리셋 vs 압축 전략은 여기서 심화.
- Part 4. Skills / Part 5. SubAgent → 루프 6조각 중 ③ ⑤. 이 강좌는 왜 필요한지만, 심화는 어떻게 쓰는지.
- Part 6. 오케스트레이션 → 키워드 ③ 에이전틱 워크플로우의 확장.
- Part 7. 하네스 엔지니어링 → 키워드 ②의 심화. 평가자 보정, Playwright 기반 동적 테스트, 3-에이전트 아키텍처.
- Part 8. Loop 엔지니어링 → 키워드 ①의 원문. 5 primitives 표의 출처.