← Start here · Module 7 · 8 slides

Module 7 · Workshop — build day

배운 것을 모아 직접 만듭니다. 목표는 polish가 아니라 shape — E2E LLM 앱을 끝까지 빌드해 보는 감각.

📊 원본 슬라이드: ksetp.netlify.app/workshop · 칩(슬라이드 N)이 덱의 번호와 같습니다.

7.1 · How the workshop works Slide 1–2

짧게 피칭 → 강사 지원받으며 빌드 → 작은 데모로 마무리.

The day, end to end

flowchart LR P["pitch (first 30 min)
what will you build?"] --> B["build
with instructor support"] B --> D["demo
one slide or screen share"] B -.stuck?.-> H["ask for help
design / debug / review"] H -.-> B
🎯 핵심 조언: 끝낼 수 있을 만큼 작게. 동작하는 작은 것이 반쯤 만든 야심작을 이깁니다.

빌드 데이에서 프로젝트 범위를 정하는 가장 좋은 기준은?

워크숍의 목표는 완성도(polish)가 아니라 E2E로 한 번 굴려보는 shape예요. 작더라도 끝까지 동작하는 것이 반쯤 만든 야심작보다 훨씬 많이 가르쳐 줍니다.

7.2 · Project options — extend or greenfield Slide 3

두 갈래: 이미 만든 걸 키우거나, 새 아이디어를 작게 시작하거나.

Which path? Decide by what you want to practice

flowchart TD Q{"start from what?"} Q -->|"deepen a concept I built"| Ext["Extend
grow chat-app / extractor / RAG"] Q -->|"try a fresh idea"| New["Greenfield
new MCP server / router / agent"] Ext --> Small["keep it shippable today"] New --> Small

Extend an existing project (grow what you built)

Greenfield (start fresh)

7.3 · What you've built so far — the whole arc Recap

워크숍 재료는 전부 이미 손에 있어요 — 1편부터 6편까지 쌓은 조각들입니다.

flowchart LR M1["M1 Setup
toolchain + key"] --> M2["M2 Foundations
2 servers, stateless, errors"] M2 --> M3["M3 Tools
structured output, tool use, MCP"] M3 --> M4["M4 Context
embeddings, RAG, citations"] M4 --> M5["M5 Agents
agent loop, subagents, memory"] M5 --> M6["M6 Production
eval, security, observability"] M6 --> M7(["M7 Workshop
assemble it"])

복습 링크: chat-app · Tools/MCP · RAG · agent loop · production.

chat-app에 "도구 레지스트리"를 붙이는 건 어느 모듈의 개념을 워크숍에서 합치는 걸까요?

워크숍은 이미 배운 조각의 조합이에요. 채팅 UI/메모리(M2), 도구 호출 루프(M3·M5), 그리고 위험 도구 제한 같은 안전(M5·M6)이 하나로 모입니다. 새 개념이 아니라 통합이죠.

7.4 · Final Quiz Slide 4–8

통과 암호로 잠긴 2세트 — 전 모듈을 가로지르는 10문항. 아래는 그 예열용 복습 퀴즈예요.

주제: API statefulness, hallucination, structured outputs, MCP 아키텍처, RAG 검색, 시맨틱 검색, agent loop, subagents, 실패 모드, 테스트 전략.

[복습] LLM API가 "stateless"라는 말의 뜻은?

stateless = 요청 간 기억 없음이에요(M2). 그래서 대화 히스토리를 매 턴 다시 보내거나 (단기 메모리), 사실을 벡터 스토어에 저장해 검색(M4·M5의 long-term memory)합니다.

[복습] RAG에서 인용 [n]을 강제하는 핵심 이유는?

인용은 귀속 강제 = hallucination 방어예요(M4). 받은 답의 번호가 실제 청크 범위 안인지 코드로 한 번 더 검증해 환각을 거릅니다.

[복습] 에이전트의 폭주(무한 루프·비용 폭탄)를 막는 1차 방어선은?

자율성과 안전은 트레이드오프(M5)예요. 모델을 믿기보다 하니스가 강제하는 한도가 폭주를 막고, 비가역 행동엔 사람 확인을 끼웁니다.