2. LangGraph 기본기
둘 중 무엇을 쓸 것인가
이 차시를 마치면
두 프레임워크 중 무엇을 쓸지 '필요한 제어 수준'으로 판단합니다.
"둘 중 뭘 배워야 하나요"는 가장 많이 나오는 질문입니다. 답은 무엇을 만드느냐에 달려 있습니다. 그 기준을 세웁니다.
대조표
| 구분 | LangChain | LangGraph |
|---|---|---|
| 주 목적 | Agent 와 app 을 빠르게 조립 | 복잡한 agentic 작업 흐름을 정밀 제어 |
| 추상화 수준 | 높음 | 낮음 |
| 핵심 사고단위 | model, message, Tool, Agent | State, Node, Edge, graph |
| 제어 흐름 | prebuilt Agent loop 중심 | 명시적, 조건부, 반복, 병렬 그래프 |
| 상태 | Agent State 제공 | State schema 를 직접 설계 |
| Persistence | LangGraph 런타임을 통해 활용 | 핵심 기능 |
| HITL | middleware 와 Agent 기능으로 활용 | Interrupt 와 Checkpoint 기반 정밀 제어 |
| 적합 사례 | 일반 도구형 assistant, 빠른 prototype | 승인 프로세스, 장기작업, 복잡 분기, multi-agent |
| 서로의 관계 | LangChain Agent 가 LangGraph 위에 구축됨 | LangChain 없이도 사용 가능 |
흔한 오해 하나
학습팩은 "LangChain 은 간단하고 LangGraph 는 고급"이라는 이분법이 부족하다고 못 박습니다.
핵심은 난이도가 아니라 필요한 제어 수준입니다. 단순하지만 규정상 승인 절차가 중요한 워크플로라면 LangGraph 가 더 적합할 수 있습니다.
비유
자동변속기와 수동변속기의 차이와 비슷합니다. 수동이 더 어려운 것은 맞지만, 고르는 기준은 난이도가 아니라 어느 정도로 직접 다뤄야 하는가입니다. 시내 주행에는 자동이 낫고, 정해진 회전수를 지켜야 하는 상황에서는 수동이 낫습니다.
선택 기준
LangChain 부터 쓰는 경우
- tool-calling Agent 를 빨리 만들고 싶다
- custom 그래프가 없어도 된다
- model provider 교체와 Tool integration 이 중요하다
LangGraph 를 직접 쓰는 경우
- 실행 경로가 업무 규칙으로 명확해야 한다
- 중간 승인, 수정, 재개가 필요하다
- 실패 후 Checkpoint 에서 재개해야 한다
- 병렬, 분기, 반복이 중요하다
- long-running 작업 흐름을 만든다
보안에 특화된 Agent 는 대부분 아래쪽 목록입니다. 승인 절차와 재개가 핵심이기 때문입니다. 분석
LangChain 핵심 개념 여섯 가지
| 개념 | 역할 | 비고 |
|---|---|---|
| Model | LLM 과 chat model 을 일관된 인터페이스로 호출 | provider 별 패키지 분리 (langchain-openai, langchain-anthropic) |
| Message | system, user, assistant, Tool 역할의 message 로 입출력 관리 | |
| Tool | 에이전트가 외부 행동을 하기 위한 명확한 입력과 출력의 callable | docstring 이 "언제 이 Tool 을 쓸지" 판단에 직접 영향 |
| Agent | 모델과 Tool 을 반복 호출하며 stop condition 까지 과업 해결 | 1.x 진입점은 langchain.agents.create_agent |
| Structured Output | Pydantic, dataclass, TypedDict, JSON Schema 형태로 반환 | create_agent(..., response_format=...) 패턴 우선 |
| Middleware | 동적 prompt, 모델 선택, guardrail, HITL 등 실행 확장 계층 |
머릿속에 그려 둘 그림
User → Agent → Model
↘ Tool 실행 ↗
final response
이 loop 의 내부 실행 기반이 LangGraph 입니다.
이해도 확인
문항을 불러오는 중입니다.