핵심 요약
LangChain 생태계 안에는 LangChain과 LangGraph가 나란히 존재합니다. 두 프레임워크는 같은 생태계에 속해 있어 혼동하기 쉽지만, 구조적으로 상당히 다릅니다.
- LangChain: 구성 요소를 선형(일방향) 체인으로 엮는 파이프라인 프레임워크
- LangGraph: 에이전트가 다음 노드를 동적으로 결정하는 비선형 그래프 프레임워크
LangChain: 선형 체인 파이프라인
이름에서 알 수 있듯, LangChain은 쇠사슬처럼 연결된 구성 요소들의 순차 실행을 기반으로 합니다.
입력 → 프롬프트 → LLM → 아웃풋 파서 → 출력
흐름은 항상 왼쪽에서 오른쪽으로 일방향입니다. 첫 번째 요소의 출력이 두 번째로 전달되고, 두 번째는 세 번째로 전달됩니다. 한번 지나간 요소로 되돌아가지 않습니다.
주요 구성 요소
| 컴포넌트 | 역할 |
|---|---|
| 프롬프트 모듈 | 사용자 입력을 가공해 LLM에 전달 |
| LLM | 가공된 프롬프트를 받아 응답 생성 |
| 아웃풋 파서 | 응답을 원하는 형식(JSON 등)으로 변환 |
| 다큐먼트 로더 | 문서 파일 불러오기 |
| 텍스트 스플리터 | 문서를 청크 단위로 분할 |
| 임베딩 | 텍스트를 벡터로 변환 |
| 벡터 스토어 | 벡터 저장 및 검색 |
| 리트리버 | 질문과 유사한 문서 청크 검색 |
이 구성 요소들을 **LCEL(LangChain Expression Language)**로 조합하면 간결하게 파이프라인을 구성할 수 있습니다.
LangChain이 적합한 시나리오
1. RAG (Retrieval-Augmented Generation)
문서 로드 → 청크 분할 → 임베딩 → 벡터 스토어 저장
↓
사용자 질문 → 리트리버 → 프롬프트 조합 → LLM → 답변
인덱싱과 생성 파이프라인이 모두 선형으로 구성되어 LangChain이 가장 잘 어울립니다.
2. 정보 추출
문서를 불러와 특정 키워드나 정보를 JSON 형식으로 추출하는 작업. 프롬프트에 추출 조건을 명시하고, JSON 아웃풋 파서로 형식을 강제할 수 있습니다.
3. 순서가 고정된 에이전트
도구 호출 흐름이 예측 가능한 단순 에이전트에 적합합니다.
LangGraph: 비선형 그래프 구조
LangGraph는 LangChain의 선형 체인 대신 노드(Node)와 엣지(Edge)로 구성된 그래프 구조를 사용합니다.
핵심 차이는 흐름의 결정 주체입니다.
- LangChain: 흐름이 코드에 미리 정해져 있음
- LangGraph: 에이전트가 런타임에 다음 노드를 결정
입력
↓
에이전트 (다음 노드 결정)
↓ ↓
툴 실행 바로 응답
↓
에이전트 (다시 판단)
↓
출력
에이전트는 현재 메시지를 보고 “도구를 써야 하는가, 아니면 바로 답변해도 되는가"를 스스로 판단합니다. 라우터가 에이전트와 툴 사이를 중재하며, 필요하면 같은 노드를 여러 번 거칩니다.
LangGraph가 적합한 시나리오
1. 단일 에이전트 시스템
사용자 입력에 따라 도구를 쓸지, 바로 답변할지 AI가 판단하는 구조. 노드 분기를 미리 전부 정해두는 대신, 선택지를 열어두고 AI가 결정하게 합니다.
2. 멀티에이전트 협력 시스템 (Collaborative)
여러 에이전트가 서로 결과를 전달하며 협력하는 구조. 에이전트 A의 출력이 에이전트 B로 가고, 조건에 따라 다시 A로 돌아올 수 있습니다.
에이전트 A ←→ 라우터 ←→ 에이전트 B
↓
최종 출력
3. 동적 프로세스가 필요한 모든 시스템
다음 행동을 사전에 완전히 정의할 수 없고, 상황에 따라 경로가 달라져야 하는 시스템.
한눈에 비교
| 구분 | LangChain | LangGraph |
|---|---|---|
| 구조 | 선형 체인 (일방향) | 그래프 (양방향/비선형) |
| 흐름 결정 | 코드에 사전 정의 | 에이전트가 런타임에 결정 |
| 되돌아가기 | 불가 | 가능 |
| 적합한 작업 | RAG, 정보 추출, 순서 고정 파이프라인 | 멀티에이전트, 동적 워크플로우 |
| 복잡도 | 낮음~중간 | 중간~높음 |
| 주요 개념 | LCEL, 체인 | 노드, 엣지, 상태(State) |
실무에서 선택 기준
LangChain을 선택하세요, 만약:
- 작업 순서가 명확하고 고정되어 있다
- RAG 파이프라인처럼 단계별 변환이 필요하다
- 빠르게 프로토타입을 만들어야 한다
LangGraph를 선택하세요, 만약:
- AI가 상황에 따라 다른 경로를 선택해야 한다
- 여러 에이전트가 협력하고 피드백 루프가 필요하다
- 복잡한 의사결정 흐름이 런타임에 달라진다
결론
LangChain과 LangGraph는 경쟁 관계가 아니라 상호 보완 관계입니다. 고정된 파이프라인에는 LangChain이, 에이전트가 흐름을 직접 결정해야 하는 시스템에는 LangGraph가 적합합니다. 실제 프로젝트에서는 LangChain으로 RAG 컴포넌트를 구성하고, LangGraph로 에이전트 오케스트레이션을 구성하는 방식으로 함께 사용하는 경우가 많습니다.
원본 영상: EP 2. Langchain과 Langgraph의 차이점 (YouTube)