Contents
see List개요
LLM 애플리케이션을 개발할 때 가장 많이 사용되는 두 프레임워크는 LangChain과 LlamaIndex입니다. 2025년 현재, 두 프레임워크 모두 초기 버전에서 크게 발전하여 각자의 강점이 더욱 명확해졌습니다.
LangChain은 범용 LLM 오케스트레이션 프레임워크로 발전했고, LlamaIndex는 데이터 연결과 검색에 특화된 프레임워크로 자리잡았습니다. 이 글에서는 두 프레임워크의 아키텍처, 사용 사례, 성능을 비교하여 프로젝트에 맞는 선택을 돕습니다.
핵심 개념: 설계 철학의 차이
두 프레임워크의 근본적 차이는 설계 목표에 있습니다.
- LangChain: "LLM으로 무엇이든 만들 수 있는 범용 프레임워크". 체인, 에이전트, 메모리, 도구 등 다양한 추상화를 제공합니다. LCEL(LangChain Expression Language)을 통해 선언적으로 파이프라인을 구성합니다.
- LlamaIndex: "데이터와 LLM을 연결하는 데이터 프레임워크". 문서 인덱싱, 검색, 쿼리 엔진에 집중합니다. RAG 파이프라인 구축에 최적화되어 있습니다.
간단히 말해, LangChain은 스위스 아미 나이프이고, LlamaIndex는 전문 수술 도구입니다.
실전 예제: 동일한 RAG를 양쪽으로 구현
같은 RAG 파이프라인을 두 프레임워크로 구현하여 비교합니다.
# === LangChain 방식 ===
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# 벡터스토어 구성
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = FAISS.from_documents(documents, embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
# LCEL 체인 구성
prompt = ChatPromptTemplate.from_template("""
다음 컨텍스트를 바탕으로 질문에 답하세요.
컨텍스트: {context}
질문: {question}
""")
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| ChatOpenAI(model="gpt-4o")
| StrOutputParser()
)
answer = chain.invoke("프로젝트 아키텍처를 설명해줘")
# === LlamaIndex 방식 ===
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core import Settings
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
# 글로벌 설정
Settings.llm = OpenAI(model="gpt-4o")
Settings.embed_model = OpenAIEmbedding(model_name="text-embedding-3-small")
# 문서 로딩 + 인덱싱 (한 줄)
documents = SimpleDirectoryReader("./docs").load_data()
index = VectorStoreIndex.from_documents(documents)
# 쿼리 엔진 생성 + 질의
query_engine = index.as_query_engine(similarity_top_k=3)
response = query_engine.query("프로젝트 아키텍처를 설명해줘")
print(response)
활용 팁
- RAG 중심이라면 LlamaIndex: 문서 검색, 요약, Q&A 시스템이 주 목적이라면 LlamaIndex가 더 간결하고 효율적입니다.
- 복잡한 워크플로우라면 LangChain: 에이전트, 멀티스텝 체인, 다양한 외부 도구 통합이 필요하면 LangChain이 유리합니다.
- 함께 사용 가능: LlamaIndex의 인덱스를 LangChain의 retriever로 사용할 수 있습니다. 두 프레임워크는 상호 보완적입니다.
- LangGraph 주목: LangChain 팀의 LangGraph는 상태 기반 에이전트 구축에 특화되어 있어, 복잡한 에이전트에는 LangGraph를 검토하세요.
- 프로덕션 고려사항: 두 프레임워크 모두 LangSmith, Arize 등 관측성(Observability) 도구와 통합됩니다. 프로덕션 배포 시 반드시 모니터링을 설정하세요.
마무리
2025년 기준으로 LangChain과 LlamaIndex 모두 성숙한 프레임워크입니다. "어느 것이 더 낫다"보다는 "어느 것이 내 프로젝트에 더 적합한가"를 기준으로 선택하세요. RAG 특화라면 LlamaIndex, 범용 에이전트 시스템이라면 LangChain이 올바른 출발점입니다.
ai
| No | 작성일 | Title |
|---|---|---|
| 3376 | 2026. 08. 19. | MCP 도구를 안전하게 연결하는 방법: 권한 분리·입력 검증·감사 로그 설계 |
| 3344 | 2026. 08. 10. | RAG 검색 품질 높이는 방법: 청크 분할·메타데이터·재순위화 실전 설계 |
| 3312 | 2026. 08. 02. | LLM 서비스 응답 품질을 안정화하는 구조화 출력과 검증 파이프라인 |
| 3280 | 2026. 07. 25. | MCP 서버 운영 가이드: 권한 범위와 입력 스키마로 AI 도구 호출 통제하기 |
| 3251 | 2026. 07. 17. | RAG 검색 품질 높이는 실전 설계: 청킹·메타데이터·하이브리드 검색 적용법 |
| 3198 | 2026. 07. 08. | LLM 도구 호출 안전 설계: 입력 검증, 승인 단계, 실행 로그 만들기 |
| 3165 | 2026. 06. 30. | LLM 답변 품질 평가 운영 가이드: 골든셋과 자동 채점으로 회귀를 막기 |
| 3109 | 2026. 06. 22. | RAG 검색 품질을 높이는 문서 청킹과 메타데이터 설계 가이드 |
| 3051 | 2026. 06. 14. | AI 에이전트 도구 호출 운영 가이드: 권한, 타임아웃, 재시도 설계 |
| 2964 | 2026. 06. 06. | LLM 응답 품질 평가 자동화: 테스트셋과 회귀 점검으로 답변 흔들림 줄이기 |