AI AgentEngineering
2026 AI Agent Engineer 학습 커리큘럼 (4) 프로젝트와 아키텍처
24주 심화 요약, P1–P9·Final 프로젝트, 최종 아키텍처, 추천 기술 스택.
송민성8분 읽기
이 글은 5편짜리 시리즈의 4편입니다.
시리즈 목차
- 1. 2026 AI Agent Engineer 학습 커리큘럼 (1) 기술 지도와 역량
- 2. 2026 AI Agent Engineer 학습 커리큘럼 (2) 8·12주 — Week 0–6
- 3. 2026 AI Agent Engineer 학습 커리큘럼 (3) 12주 — Week 7–12
- 4. 2026 AI Agent Engineer 학습 커리큘럼 (4) 프로젝트와 아키텍처 ← 현재
- 5. 2026 AI Agent Engineer 학습 커리큘럼 (5) 프로덕션·포트폴리오·체크리스트
아래부터 본편입니다.
2026 AI Agent Engineer 학습 커리큘럼 (4) 프로젝트와 아키텍처
6. 24주 심화 커리큘럼 (요약표)
전제: 12주 과정의 각 주제를 2배 깊이로 다룬다. 실패 실험실(failure lab)·프레임워크 비교·더 큰 capstone을 추가한다. 하루 평일 2~3h / 주말 4~6h.
| 주차 | Phase | 핵심 개념 | 구현 / 산출물 | 완료 기준 |
|---|---|---|---|---|
| 1 | A. Foundations | 개발 기반: async·DI·구조적 로깅·Docker·Postgres·CI | 재사용 가능한 async httpx 클라이언트, compose 스택 | 동시 요청·재시도·SSE·CI 자동화 |
| 2 | A | LLM 내부: 토큰·attention·sampling·context window | provider 추상화 클라이언트 + 비용/지연 계측 | 두 provider 동일 인터페이스, 계측 |
| 3 | A | 프롬프트·instruction hierarchy·인젝션 재현 | 프롬프트 템플릿(버전) + 인젝션 스위트 12+ | 직접·간접 인젝션 재현 |
| 4 | B. Context & Retrieval | Context Manager: 예산·우선순위·compaction | context/manager.py + 벤치 | 예산 준수·품질 곡선 |
| 5 | B | RAG 기초: chunking·embedding·hybrid·rerank | pgvector ingest + hybrid search | recall/MRR baseline |
| 6 | B | RAG 심화: contextual retrieval·Graph RAG·Agentic RAG | 3개 RAG 변형 비교 실험 | 변형별 지표 표 |
| 7 | B | Memory: 유형·충돌·decay·retrieval | memory/ 전 수명주기 | 모순 주입 통과 |
| 8 | C. Protocol | MCP 서버·리소스·프롬프트·transport | filesystem + DB MCP 서버 | stdio·HTTP 양쪽 동작 |
| 9 | C | MCP 생태계·보안: 악성 서버·tool poisoning | MCP 클라이언트 통합 + 권한 경계 테스트 | poisoning 방어 |
| 10 | D. Harness | runtime·tool registry·permission | harness/runtime.py + permission.py | 권한 거부 경로 |
| 11 | D | sandbox·리소스 제한·네트워크 격리 | sandbox.py(subprocess+container) | 침투 시도 차단 |
| 12 | D | execution trace·token/time/iteration budget·verification | trace.py·budget.py·verify.py | trace 완전성·budget 컷 |
| 13 | E. Loop | plan-act-observe·기본 루프 | loop/controller.py | 루프가 harness 위에서 동작 |
| 14 | E | reflection·self-correction·verifier | progress.py + reflection 트리거 정책 | 정체 감지 |
| 15 | E | 실패 실험실: 무한 루프·비용 폭발·데드락·중복 행동 | 정지 조건 7종 + escalation | 각 실패 모드 재현·방어 |
| 16 | F. Graph | vanilla graph engine: node/edge/state/reducer | graph/engine.py | 조건부 엣지·병렬·체크포인트 |
| 17 | F | 프레임워크 비교: LangGraph vs Temporal vs Prefect | 동일 그래프 2구현 + 비교 문서 | 트레이드오프 문서화 |
| 18 | F | 멀티에이전트 패턴: supervisor·evaluator-optimizer·debate | 3패턴 구현 + "쓰지 말아야 할 때" 기준 | 패턴별 장단·비용 |
| 19 | G. Eval | offline eval + LLM-judge(편향 완화) | evals/ 러너 + judge | judge 재현성·편향률 |
| 20 | G | trajectory eval·tool-use eval·regression DB | trajectory.py + regression.py | 회귀 CI 게이트 |
| 21 | G | online eval·A/B·shadow 실행·human eval 루프 | 온라인 지표 수집 + shadow 러너 | 온라인/오프라인 지표 정합 |
| 22 | H. Production | OTel·replay·failure analysis | obs/otel.py·replay.py | 완전한 span 트리·replay |
| 23 | H | security 다층 방어·HITL·cost governance | security/·hitl/·ops/cost_guard.py | injection·exfiltration 차단 |
| 24 | H | capstone hardening·부하·비용·launch | Final Platform 배포 + 운영 런북 | SLO·알림·fallback·CI 게이트 |
24주 Capstone 추가 요구: 멀티테넌시, 요청당 비용 상한, 모델 라우팅, 온라인 eval 대시보드, 운영 런북(장애 대응 절차), 부하 테스트 결과(동시 100 요청 p95).
7. 단계별 프로젝트 (P1–P9 + Final)
각 프로젝트: 목표 · 핵심 기능 · 아키텍처 · 필수 Eval · 완료 기준 · 포트폴리오 포인트
P1 — LLM CLI Assistant
- 목표: LLM API를 프레임워크 없이 다룬다.
- 핵심 기능: 스트리밍 REPL, 멀티 provider 전환, 대화 저장/로드, 세션 비용 표시.
- 아키텍처:
llm/클라이언트 + CLI(typer/argparse) + 대화 저장(JSON). - 필수 Eval: 없음(도구·비용 계산 단위 테스트로 대체).
- 완료 기준: 두 provider 동일 인터페이스, 스트리밍 파싱 테스트, 비용 정확.
- 포트폴리오 포인트: "프레임워크 없이 provider 추상화" — 기초 체력을 보여 준다.
P2 — Tool-Calling Agent
- 목표: 도구 선택·실행·되먹임을 한 루프로 묶는다.
- 핵심 기능: tool registry, 5개 도구, 3종 실패 처리, parallel tool call.
- 아키텍처:
llm/+tools/+ 단일 스텝 컨트롤러. - 필수 Eval: 인젝션 스위트(회귀), 도구 선택 정확도 10케이스.
- 완료 기준: 3종 도구 실패를 각각 다르게 처리, 인젝션 완화 수치.
- 포트폴리오 포인트: 도구 스키마·검증·에러 되먹임 설계.
P3 — RAG Agent
- 목표: 검색 품질을 측정하는 프로덕션 RAG.
- 핵심 기능: 하이브리드 검색 + reranking, 인용 포함 답변,
/search·/answer(SSE). - 아키텍처:
rag/+ FastAPI + pgvector +evals/. - 필수 Eval: recall@5·MRR·faithfulness 골든셋, chunking 회귀 게이트.
- 완료 기준: 검색 품질 baseline + CI 회귀 차단, 검증 가능한 인용.
- 포트폴리오 포인트: "RAG를 만들었다"가 아니라 "RAG 품질을 측정하고 회귀를 막았다".
P4 — Memory Agent
- 목표: 세션을 넘는 개인화를 구현한다.
- 핵심 기능: 메모리 추출·타입별 저장·충돌 해결·decay·retrieval.
- 아키텍처:
memory/+ Postgres + Context Manager 통합. - 필수 Eval: 추출 정확도, 충돌 해결, retrieval recall.
- 완료 기준: 모순 주입 테스트 통과, Context 세그먼트 통합.
- 포트폴리오 포인트: RAG와 Memory의 차이를 코드로 구분.
P5 — MCP Server
- 목표: 표준 프로토콜로 도구·데이터를 노출한다.
- 핵심 기능: tools + resources + prompts, stdio·HTTP transport, 권한 경계.
- 아키텍처:
mcp/server_*.py+ 이를 쓰는 Agent. - 필수 Eval: transport 계약 테스트, 권한 경계.
- 완료 기준: 서버·클라이언트 양쪽 구현, 동적 도구 발견.
- 포트폴리오 포인트: 자작 통합 대신 표준 채택 — 실무 감각.
P6 — Research Agent (Harness 데모)
- 목표: harness(sandbox·permission·trace·budget)를 실증한다.
- 핵심 기능: 웹 검색·문서 읽기·요약 도구, 모든 실행이 trace·budget을 통과.
- 아키텍처:
harness/+ 도구 세트 + trace viewer. - 필수 Eval: 리서치 태스크 10개 골든셋(출처 정확도·완결성).
- 완료 기준: 권한 거부·budget 컷·trace 완전성.
- 포트폴리오 포인트: trace viewer 스크린샷 — "관측 가능한 Agent".
P7 — Autonomous Coding Agent
- 목표: 자율 반복 루프로 실제 이슈를 해결한다.
- 핵심 기능: issue → code → test → fix → green, 7종 정지 조건, escalation 리포트.
- 아키텍처:
harness/+loop/+ git 통합. - 필수 Eval: 이슈 벤치 15개(task success, cost/successful task, retry rate), trajectory eval.
- 완료 기준: 정지 조건 전체 테스트, 성공률·비용 지표 제시.
- 포트폴리오 포인트: "task success 62% → 84%, cost/successful task $0.11" 같은 수치.
P8 — Multi-Agent Workflow
- 목표: 그래프로 분업·병렬·검증을 분리한다.
- 핵심 기능: planner/backend/frontend/test/security/review 노드, 조건부 라우팅, 병렬+join, 체크포인트, human gate.
- 아키텍처:
graph/+ P7 Loop 인스턴스들 +hitl/. - 필수 Eval: 워크플로우 e2e 케이스, 노드별 성공률, "단일 Agent 대비 개선/악화" 비교.
- 완료 기준: 재개 가능, gate 동작, 단일 Agent 대비 트레이드오프 문서.
- 포트폴리오 포인트: 멀티에이전트를 "언제 쓰고 언제 안 쓰는지" 판단 근거.
P9 — Agent Evaluation Platform
- 목표: eval을 재사용 가능한 인프라로 만든다.
- 핵심 기능: 데이터셋 관리, 실행 러너, judge, trajectory, regression 추적, 리포트 UI.
- 아키텍처: FastAPI + Postgres + 큐 + 간단 대시보드.
- 필수 Eval: 플랫폼 자체의 메타 테스트(judge 재현성, 지표 계산 정확도).
- 완료 기준: P7·P8을 이 플랫폼으로 평가, 회귀 CI 통합.
- 포트폴리오 포인트: "eval-driven development"를 실천했다는 증거.
Final — Production AI Agent Platform
- 목표: 위 전부를 하나의 운영 가능한 시스템으로 묶는다.
- 핵심 기능: 8장 아키텍처 전체 — Next.js 대시보드(run/trace/tool call/eval), FastAPI + SSE, async worker, graph 오케스트레이터, harness, loop, context/memory/RAG/MCP, eval, OTel, security, HITL.
- 필수 Eval: 전 계층 regression 스위트가 CI 게이트, 온라인 지표 수집.
- 완료 기준: 13장 체크리스트 전체 + Docker Compose 원커맨드 + 운영 런북.
- 포트폴리오 포인트: 이력서 헤드라인 프로젝트로 쓴다.
8. 최종 프로젝트 아키텍처
데이터 흐름 요약: User → Next.js → FastAPI(/runs enqueue) → Redis → Worker → Graph → (노드마다) Loop → Harness → Context Manager(+Memory/RAG/MCP/Tools) → LLM → 결과. 모든 단계가 OTel span. 위험 액션은 HITL Gate에서 멈춘다. 전 계층 변경은 Eval regression 게이트를 통과해야 배포.
9. 추천 기술 스택 (선정 이유)
Language
| 기술 | 이유 |
|---|---|
| Python 3.13+ | Agent 백엔드 주력. LLM SDK·async·데이터 생태계. 3.13의 성능·타이핑 개선. |
| TypeScript | 대시보드(Agent 실행·trace·eval 뷰어). 타입 안정성. |
Python 코어
| 기술 | 이유 |
|---|---|
| uv | 빠른 의존성·가상환경 관리. 재현성. |
| Pydantic | tool 스키마·structured output·state 검증의 단일 도구. |
| FastAPI | async 네이티브, SSE, 자동 OpenAPI, Pydantic 통합. |
| asyncio / httpx | 동시 LLM·도구 호출. TaskGroup으로 구조적 동시성. |
| pytest / ruff / mypy | 테스트·린트·타입. CI 게이트. |
| structlog (또는 표준 logging+JSON) | 구조적 로그 → trace 상관. |
AI / Agent (Vanilla 먼저, 그다음 비교)
| 기술 | 이유 / 위치 |
|---|---|
| OpenAI API / Anthropic API | 직접 호출로 기초 체력. 두 provider로 추상화 훈련. |
| Vanilla Python Agent | Harness·Loop·Graph를 손으로. 프레임워크 이해의 전제. |
| LangGraph | vanilla graph 이후 비교. 상태·체크포인트·스트리밍 표준. |
| PydanticAI | Pydantic 친화적 Agent 프레임워크. 타입 안정적 도구·구조적 출력. |
| OpenAI Agents SDK | provider 제공 Agent 런타임. 최소 구성 프로덕션 비교군. |
| LlamaIndex | RAG·인덱싱 유틸. 직접 파이프라인 이후 비교. |
| DSPy | 프롬프트·파이프라인 최적화 연구 도구. 실험적 위치. |
MCP
| 기술 | 이유 |
|---|---|
| Model Context Protocol | 2025 표준화 이후 도구·데이터 연결 사실상 표준. 서버·클라이언트 직접 구현. |
Database
| 기술 | 이유 |
|---|---|
| PostgreSQL | Agent state·checkpoint·memory·eval 결과의 트랜잭션 저장소. |
| pgvector | 별도 벡터 DB 없이 RAG. 운영 단순화. |
| Supabase | Postgres + pgvector + auth를 빠르게. 프로토타입·개인 프로젝트. |
| Redis | 잡 큐·rate limit·캐시. Agent state와 분리. |
Infrastructure
| 기술 | 이유 |
|---|---|
| Docker / Compose | 재현 가능한 sandbox·로컬 스택. |
| Colima | macOS에서 가벼운 컨테이너 런타임. |
| GitHub Actions | lint→type→test→eval 게이트. |
| AWS / Vercel | 백엔드(worker·큐) / 프론트(대시보드) 배포. |
Frontend
| 기술 | 이유 |
|---|---|
| Next.js + TypeScript | 대시보드. SSE 스트리밍, 서버 컴포넌트. |
| Tailwind + shadcn/ui | 빠른 일관 UI. trace·eval 뷰어에 집중. |
| TanStack Query | run 상태·eval 결과 폴링·캐시. |