2. LangGraph 기본기
세 도구, 뭐가 어떻게 다른가
이 차시를 마치면
LangChain·LangGraph·LangSmith 가 각각 무엇을 하는지 구분해 설명합니다.
이름이 비슷해서 자주 헷갈립니다. 셋은 서로 경쟁하는 도구가 아니라 층이 다른 도구입니다. 그 층을 갈라 봅니다.
세 도구의 역할
| 도구 | 역할 |
|---|---|
| LangChain | 모델, 메시지, 도구, 에이전트를 빠르게 조합하는 상위 프레임워크 |
| LangGraph | 상태(State)와 실행 흐름을 그래프로 명시하여 복잡하고 오래 실행되는 에이전트를 제어하는 오케스트레이션 프레임워크 |
| LangSmith | 추적(trace), 평가(eval), 모니터링과 디버깅을 위한 플랫폼 |
raw/03_IMAGES/README_이미지출처.md)경쟁 관계가 아니라 계층 관계입니다
LangChain Agent는 내부적으로 LangGraph 기반 런타임을 사용합니다. 그래서 둘 중 하나를 고르는 문제가 아닙니다. 학습팩은 두 도구를 경쟁 관계가 아니라 추상화 수준이 다른 계층으로 이해하는 편이 정확하다고 봅니다.
비유
건물 공사에 빗대면 이해가 쉽습니다.
LangChain은 완제품 공구세트입니다. 필요한 도구가 미리 조립되어 있어 바로 쓸 수 있습니다.
LangGraph는 공정 설계도입니다. 어느 작업을 먼저 하고, 어떤 조건에서 다른 공정으로 넘어가는지를 직접 그립니다.
LangSmith는 현장 CCTV와 품질검사 기록입니다. 무엇이 언제 어떻게 실행되었는지 남기고, 결과가 기준을 만족하는지 측정합니다.
8단계 학습 로드맵
이 교재의 입문 과정은 아래 로드맵을 따라갑니다.
| 단계 | 학습 대상 | 도달 목표 |
|---|---|---|
| 0 | Python 함수, dict, type hint, 가상환경, API key 환경변수 | 선수지식 확보 |
| 1 | Models, Messages, Tools, create_agent, invocation | "모델 단독 호출"과 "Agent + Tool loop"의 차이를 설명한다 |
| 2 | State, Node, Edge, START, END | 프로그램을 "상태가 노드를 통과하며 갱신되는 그래프"로 설명한다 |
| 3 | TypedDict, Pydantic, dataclass, Reducer, messages State | State에 둘 값과 외부에 둘 값을 구분한다 |
| 4 | Checkpointer, thread_id, Checkpoint, short/long-term memory | "memory 는 대화문 전체를 프롬프트에 붙이는 것"이라는 오해를 피한다 |
| 5 | interrupt(), Command(resume=...), 승인과 수정 패턴 | 고위험 action 전 사람이 승인하도록 설계한다 |
| 6 | retrieval, deterministic RAG, agentic RAG | 모든 RAG 를 Agent 로 만들 필요가 없다는 설계 기준을 익힌다 |
| 7 | LangSmith traces, datasets, offline/online eval | 테스트셋과 평가기준으로 품질을 관리한다 |
0단계 권장 선수지식으로 TypedDict, Pydantic, async 개념, HTTP와 API 기초가 함께 제시됩니다.
4주 학습안
- 1주 — LangChain + Tools + Agent + Structured Output
- 2주 — LangGraph State, Node, Edge, Conditional Edge + Reducer
- 3주 — Persistence, Memory, HITL, Streaming
- 4주 — RAG + LangSmith Eval + 미니프로젝트
옛날 예제를 그대로 쓰지 않습니다
LangChain과 LangGraph는 업데이트가 빠릅니다. 0.x 시기 블로그와 유튜브의 LLMChain, 구형 AgentExecutor, 과거 create_react_agent 예제는 현재 문서와 혼동하기 쉬우므로 그대로 복사하지 않습니다.
LangGraph v1 에서는 prebuilt create_react_agent 중심 사용보다 LangChain create_agent 또는 직접 StateGraph 구성이 권장되는 흐름입니다.
설치 직전에 pip index versions 또는 PyPI 와 GitHub Releases 로 현재 버전을 다시 확인합니다.