LangChain은 RAG나 AI Agent를 공부하다 보면 자주 등장하는 프레임워크입니다.
처음에는 이름 때문에 어렵게 느껴질 수 있지만, 핵심은 단순합니다. LangChain은 ChatGPT 같은 LLM 자체가 아니라, LLM을 활용한 애플리케이션을 만들기 쉽게 도와주는 도구입니다.
예를 들어 RAG를 만들 때는 문서 로드, 문서 분리, 임베딩, Vector DB 저장, Retriever 검색, Prompt 구성, LLM 호출 같은 여러 단계가 필요합니다.
LangChain은 이런 구성요소들을 하나의 애플리케이션 흐름으로 연결할 수 있게 도와줍니다.
LangChain이란?
LangChain은 LLM 애플리케이션 개발 프레임워크입니다.
쉽게 말하면 다음과 같습니다.
LangChain = LLM 앱을 만들기 위한 조립 도구
LLM 애플리케이션을 만들 때는 단순히 모델 하나만 호출해서 끝나는 경우가 많지 않습니다.
예를 들어 RAG 기반 챗봇을 만든다면 다음과 같은 작업이 필요합니다.
문서 읽기
→ 문서 Chunk 분리
→ Embedding 생성
→ Vector DB 저장
→ Retriever 검색
→ Prompt 구성
→ LLM 호출
→ 답변 반환
이 흐름을 직접 모두 구현할 수도 있습니다. 하지만 프로젝트가 커질수록 코드가 복잡해지고, 각 구성요소를 바꾸기 어려워질 수 있습니다.
LangChain은 이런 구성요소들을 표준화된 방식으로 연결할 수 있게 도와줍니다.

LangChain은 LLM 자체가 아니다
LangChain을 처음 공부할 때 가장 먼저 구분해야 할 것이 있습니다.
LangChain은 LLM 자체가 아닙니다.
LLM은 질문을 이해하고 답변을 생성하는 AI 모델입니다. 예를 들어 GPT, Claude, Gemini 같은 모델이 LLM에 해당합니다.
반면 LangChain은 이런 LLM을 활용해 애플리케이션을 만들 수 있도록 도와주는 프레임워크입니다.
| 구분 | 역할 |
|---|---|
| LLM | 질문을 이해하고 답변을 생성하는 AI 모델 |
| LangChain | LLM과 주변 기능을 연결하는 프레임워크 |
| Vector DB | 문서 Vector를 저장하고 유사도 검색을 수행하는 저장소 |
| Retriever | 질문과 관련된 문서를 찾아오는 검색 인터페이스 |
| Tool | Agent가 사용할 수 있는 외부 기능 |
| Agent | 필요한 도구를 판단하고 실행하면서 작업을 수행하는 구조 |
쉽게 비유하면 다음과 같습니다.
LLM = 엔진
LangChain = 엔진과 여러 부품을 연결하는 프레임워크
왜 LangChain이 필요할까?
LangChain 없이도 RAG나 LLM 애플리케이션을 만들 수는 있습니다.
예를 들어 직접 구현한다면 다음과 같은 작업을 하나씩 작성해야 합니다.
1. PDF 읽기 라이브러리 사용
2. 텍스트 직접 분리
3. Embedding API 직접 호출
4. Vector DB SDK 직접 사용
5. 검색 결과를 Prompt 문자열에 직접 삽입
6. LLM API 직접 호출
7. 답변 결과 처리
물론 이렇게 직접 구현하는 것도 가능합니다.
하지만 프로젝트가 커지면 다음과 같은 문제가 생길 수 있습니다.
- 코드가 길어집니다.
- 구성요소를 바꾸기 어려워집니다.
- Vector DB를 교체할 때 수정할 코드가 많아집니다.
- LLM 모델을 바꿀 때도 수정할 부분이 늘어납니다.
- Tool이나 Agent를 붙이기 어려워집니다.
LangChain은 이런 문제를 줄이기 위해 LLM 애플리케이션에서 자주 쓰는 구성요소들을 연결하기 쉬운 형태로 제공합니다.
LangChain을 RAG에 적용하면?
우리가 앞에서 공부한 RAG 흐름을 다시 보겠습니다.
문서 로드
→ Chunk 분리
→ Embedding
→ Vector DB 저장
→ Retriever 검색
→ Prompt 구성
→ LLM 답변
이 흐름은 LangChain 구성요소와 연결해서 이해할 수 있습니다.
| RAG 과정 | LangChain 구성요소 |
|---|---|
| 문서 읽기 | Document Loader |
| 문서 쪼개기 | Text Splitter |
| 문서 Vector화 | Embedding Model |
| Vector 저장 | Vector Store |
| 관련 문서 검색 | Retriever |
| 질문 양식 구성 | Prompt Template |
| 답변 생성 | Chat Model 또는 LLM |
| 전체 흐름 연결 | Chain, Workflow 또는 Agent |
즉, LangChain은 RAG 자체가 아니라 RAG를 쉽게 구현할 수 있게 도와주는 프레임워크입니다.
LangChain의 핵심 구성요소
LangChain을 이해하려면 자주 등장하는 구성요소를 먼저 알아두는 것이 좋습니다.
1. Model
Model은 실제로 답변을 생성하거나 텍스트를 처리하는 AI 모델입니다.
예를 들면 다음과 같은 모델을 사용할 수 있습니다.
- OpenAI GPT 계열 모델
- Anthropic Claude 계열 모델
- Google Gemini 계열 모델
- 로컬 LLM
LangChain은 이런 모델들을 애플리케이션 안에서 사용할 수 있도록 연결해줍니다.
2. Prompt
Prompt는 LLM에게 전달하는 입력 양식입니다.
예를 들어 RAG에서는 검색된 Context와 사용자 질문을 함께 Prompt에 넣습니다.
너는 회사 매뉴얼 상담원이다.
아래 Context를 참고해서 질문에 답변하라.
Context:
{context}
Question:
{question}
이처럼 Prompt는 LLM이 어떤 역할을 해야 하는지, 어떤 정보를 참고해야 하는지를 알려주는 중요한 요소입니다.
3. Document Loader
Document Loader는 PDF, TXT, HTML 같은 원본 문서를 읽어 LangChain에서 사용할 수 있는 Document 형태로 바꿔주는 역할을 합니다.
회사_근태_매뉴얼.pdf
→ Document(page_content="...", metadata={...})
Document는 보통 본문 내용과 metadata를 함께 가집니다. metadata에는 출처, 페이지 번호, 문서 종류 같은 정보가 들어갈 수 있습니다.
4. Text Splitter
Text Splitter는 긴 문서를 Chunk로 나누는 역할을 합니다.
긴 문서
→ Chunk 1
→ Chunk 2
→ Chunk 3
RAG에서는 문서를 통째로 LLM에게 넣는 것이 아니라, 질문과 관련된 Chunk만 찾아서 전달합니다.
그래서 Chunk를 적절한 크기로 나누는 작업이 중요합니다.
5. Embedding Model
Embedding Model은 문서 Chunk와 사용자 질문을 Vector로 변환합니다.
연차 신청은 어디서 하나요?
→ [0.91, 0.82, 0.13, ...]
Embedding을 통해 문서와 질문을 같은 Vector 공간에서 비교할 수 있습니다.
6. Vector Store
Vector Store는 Embedding 결과로 나온 Vector를 저장하고, 질문 Vector와 비슷한 문서 Vector를 검색하는 저장소입니다.
예를 들면 다음과 같은 도구를 사용할 수 있습니다.
- Chroma
- FAISS
- Qdrant
- Pinecone
- PGVector
Vector Store는 RAG에서 검색 가능한 지식 저장소 역할을 합니다.
7. Retriever
Retriever는 사용자 질문에 맞는 문서를 가져오는 검색 인터페이스입니다.
질문
→ Retriever
→ 관련 Document 반환
Retriever는 내부적으로 Vector Store를 사용할 수도 있고, SQL, 키워드 검색, API 호출 같은 다른 방식을 사용할 수도 있습니다.
8. Tool
Tool은 Agent가 사용할 수 있는 외부 기능입니다.
예를 들면 다음과 같습니다.
- 문서 검색 Tool
- 계산기 Tool
- 웹 검색 Tool
- SQL 조회 Tool
- 파일 읽기 Tool
- API 호출 Tool
Agent는 사용자의 질문을 보고 필요한 Tool을 선택해 실행할 수 있습니다.
9. Agent
Agent는 LLM이 어떤 도구를 사용할지 판단하고, 필요한 Tool을 호출하면서 작업을 수행하는 구조입니다.
일반 LLM은 질문을 받으면 바로 답변을 생성합니다.
질문
→ LLM
→ 답변
RAG는 중간에 검색 과정이 들어갑니다.
질문
→ 문서 검색
→ LLM
→ 답변
Agent는 여기서 한 단계 더 나아갑니다.
질문
→ 어떤 도구가 필요한지 판단
→ Tool 실행
→ 결과 확인
→ 최종 답변
즉, Agent는 단순히 정해진 순서대로 실행되는 것이 아니라, 상황에 따라 필요한 도구를 선택할 수 있습니다.
Chain이란?
LangChain에서 Chain은 여러 단계를 연결한 실행 흐름으로 이해하면 됩니다.
예를 들어 RAG는 다음과 같은 순서로 동작할 수 있습니다.
질문 입력
→ Retriever 검색
→ Prompt 구성
→ LLM 호출
→ 답변 반환
이처럼 정해진 순서대로 실행되는 LLM 작업 흐름을 Chain으로 이해할 수 있습니다.
Chain은 여러 단계를 정해진 흐름으로 연결한 LLM 작업 구조입니다.
Chain과 Agent의 차이
Chain과 Agent는 비슷해 보이지만 실행 방식이 다릅니다.
Chain
Chain은 보통 정해진 순서대로 실행됩니다.
질문
→ 검색
→ 답변
예를 들어 일반적인 RAG Chain은 다음과 같습니다.
1. Retriever로 문서 검색
2. 검색 결과를 Prompt에 삽입
3. LLM으로 답변 생성
흐름이 고정되어 있기 때문에 단순하고 예측하기 쉽습니다.
Agent
Agent는 LLM이 다음 행동을 판단합니다.
질문
→ 검색이 필요한지 판단
→ 필요하면 Tool 호출
→ 결과 확인
→ 더 검색할지 판단
→ 최종 답변
Agent는 더 유연하지만, 흐름이 동적으로 바뀔 수 있기 때문에 제어와 디버깅이 어려울 수 있습니다.
| 구분 | Chain | Agent |
|---|---|---|
| 실행 방식 | 정해진 순서대로 실행 | LLM이 다음 행동 판단 |
| 예시 | 질문 → 검색 → 답변 | 질문 → 도구 선택 → 실행 → 답변 |
| 장점 | 단순하고 예측 가능 | 유연하고 복잡한 작업 가능 |
| 단점 | 흐름이 고정됨 | 제어와 디버깅이 어려울 수 있음 |
LangChain과 LangGraph의 차이
LangChain을 공부하다 보면 LangGraph도 함께 등장합니다.
둘은 관련이 있지만 역할이 다릅니다.
LangChain = LLM 앱 구성요소를 연결하는 프레임워크
LangGraph = Agent나 Workflow의 실행 흐름을 더 세밀하게 제어하는 프레임워크
LangChain은 모델, 프롬프트, Retriever, Tool, Agent 같은 구성요소를 연결하는 데 초점이 있습니다.
LangGraph는 State, Node, Edge 같은 그래프 구조를 사용해 Agent나 Workflow의 흐름을 직접 설계하고 제어하는 데 초점이 있습니다.
| 구분 | LangChain | LangGraph |
|---|---|---|
| 핵심 역할 | LLM 앱 구성요소 연결 | Agent/Workflow 흐름 제어 |
| 주요 개념 | Model, Prompt, Retriever, Tool, Agent | State, Node, Edge, Graph |
| 적합한 경우 | RAG, Tool 사용, 기본 Agent 구성 | 분기, 반복, 재검색, 검토 단계가 필요한 복잡한 흐름 |
예를 들어 LangGraph에서는 다음과 같은 흐름을 더 명확하게 설계할 수 있습니다.
질문 입력
→ 검색 필요 여부 판단
→ 검색
→ 검색 결과 평가
→ 부족하면 질문 재작성
→ 재검색
→ 최종 답변
정리하면 다음과 같습니다.
LangChain은 LLM 앱을 구성하는 부품을 연결하는 데 유용하고, LangGraph는 복잡한 Agent 흐름을 더 세밀하게 제어할 때 유용합니다.
지금까지 배운 RAG와 연결하기
지금까지의 학습 흐름을 LangChain과 연결하면 다음과 같습니다.
1강 RAG 개념
→ 외부 문서를 검색해 LLM 답변에 넣는 구조
2강 RAG 구조
→ Document, Chunk, Embedding, Vector DB, Retriever, Context
3강 Embedding
→ 문서와 질문을 Vector로 변환
4강 Vector DB / Retriever
→ Vector 저장소와 검색 인터페이스 구분
5강 LangChain
→ 위 부품들을 애플리케이션 흐름으로 연결하는 프레임워크
즉, LangChain은 지금까지 배운 RAG 부품들을 실제 애플리케이션 흐름으로 연결할 때 사용할 수 있습니다.
BlogFlow에 LangChain을 적용한다면?
예를 들어 블로그 글 작성 보조 서비스인 BlogFlow에 LangChain을 적용한다고 가정해보겠습니다.
목표는 다음과 같을 수 있습니다.
청년정책 글을 쓸 때
블로그 작성 가이드와 기존 글 구조를 참고해서
제목, 목차, 요약, 본문 방향을 추천하는 AI
LangChain 없이 직접 구현하려면 다음 요소들을 모두 직접 연결해야 합니다.
가이드 문서 읽기 코드
Chunk 분리 코드
Embedding 호출 코드
Vector DB 저장 코드
검색 코드
Prompt 조립 코드
LLM 호출 코드
LangChain을 사용하면 다음과 같이 구조화할 수 있습니다.
Document Loader로 블로그 작성 가이드 읽기
Text Splitter로 Chunk 분리
Embedding Model로 Vector 생성
Vector Store에 저장
Retriever로 관련 가이드 검색
Prompt Template에 Context 삽입
Chat Model로 답변 생성
예를 들어 사용자가 이렇게 묻는다고 해보겠습니다.
청년미래적금 글은 어떤 순서로 쓰면 돼?
LangChain 기반 RAG 흐름은 다음과 같이 동작할 수 있습니다.
질문 입력
→ Retriever가 블로그 작성 가이드 검색
→ 관련 Context 반환
→ Prompt에 Context 삽입
→ LLM이 글 구조 추천
Agent까지 붙이면 더 확장할 수도 있습니다.
1. 사용자가 키워드 입력
2. Agent가 필요한 작업 판단
3. 정책 문서 검색 Tool 사용
4. 블로그 작성 가이드 검색 Tool 사용
5. 제목, 목차, 요약 생성
6. 최종 글 작성 방향 추천
이처럼 LangChain은 RAG와 Agent 기능을 실제 서비스 구조로 연결하는 데 활용할 수 있습니다.
LangChain을 공부할 때 주의할 점
LangChain은 빠르게 발전하는 프레임워크입니다. 그래서 블로그나 강의에서 본 코드가 현재 버전과 조금 다를 수 있습니다.
처음 공부할 때는 특정 코드 문법을 외우기보다 전체 흐름을 먼저 이해하는 것이 좋습니다.
- 문서를 어떻게 읽는가?
- 문서를 어떻게 Chunk로 나누는가?
- Embedding은 어디서 수행되는가?
- Vector Store에는 무엇이 저장되는가?
- Retriever는 어떤 기준으로 문서를 찾아오는가?
- 검색된 Context는 Prompt에 어떻게 들어가는가?
- LLM은 어느 단계에서 답변을 생성하는가?
이 흐름을 이해하면 LangChain 문법이 조금 바뀌더라도 전체 구조를 따라가기 쉬워집니다.
정리
이번 글에서는 LangChain이 무엇인지 살펴봤습니다.
- LangChain은 LLM 자체가 아닙니다.
- LangChain은 LLM 애플리케이션을 만들기 위한 프레임워크입니다.
- RAG에서 LangChain은 Document Loader, Text Splitter, Embedding Model, Vector Store, Retriever, Prompt, LLM을 연결하는 역할을 합니다.
- Chain은 여러 단계를 정해진 흐름으로 연결한 작업 구조입니다.
- Agent는 LLM이 상황에 따라 어떤 Tool을 사용할지 판단하고 실행하는 구조입니다.
- LangChain은 RAG와 기본 Agent 애플리케이션을 구성할 때 유용합니다.
- LangGraph는 복잡한 Agent나 Workflow 흐름을 더 세밀하게 제어할 때 사용합니다.
한 문장으로 정리하면 다음과 같습니다.
LangChain은 RAG와 Agent를 만들 때 필요한 여러 부품을 하나의 LLM 애플리케이션 흐름으로 연결해주는 프레임워크입니다.
다음 글에서는 LangChain을 이용해 실제 RAG 흐름을 어떻게 구성하는지 살펴보겠습니다.