🤖 AI/ML

LangChain

랭체인

LLM 애플리케이션 개발 프레임워크. 체인, 에이전트, 도구 조합.

📖 상세 설명

LangChain은 LLM 기반 애플리케이션을 구축하기 위한 오픈소스 프레임워크입니다. 2022년 Harrison Chase가 시작했으며, 현재 v1.2.7(2026년 1월 기준)로 Python 3.10+ 환경에서 사용 가능합니다. 체인, 에이전트, 도구, 메모리를 조합해 복잡한 AI 애플리케이션을 만듭니다.

핵심 개념: Chain(LLM 호출 연결), Agent(도구를 선택해 작업 수행), Tool(외부 API/DB 연동), Memory(대화 기록 유지), Retriever(RAG용 문서 검색). 2025년부터 에이전트 개발에는 LangGraph를 권장합니다.

최신 기능(2025-2026): MCP(Model Context Protocol) 도구 통합, 멀티모달 도구 지원, LangSmith 통합(디버깅/모니터링), LangGraph 기반 에이전트 오케스트레이션. Anthropic, OpenAI, Google, Ollama 등 주요 프로바이더를 모두 지원합니다.

실무 활용: RAG 파이프라인, 챗봇, 문서 QA, 에이전트 워크플로우 구축에 표준으로 사용됩니다. 단, 단순한 API 호출에는 오버헤드가 크므로, 복잡한 체인/에이전트가 필요할 때 도입하세요.

💻 코드 예제

# pip install langchain langchain-openai langchain-community
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_community.tools import DuckDuckGoSearchRun

# 1. 기본 Chain (LCEL - LangChain Expression Language)
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
prompt = ChatPromptTemplate.from_messages([
    ("system", "당신은 {role} 전문가입니다."),
    ("human", "{question}")
])
chain = prompt | llm | StrOutputParser()
result = chain.invoke({"role": "Python", "question": "데코레이터 설명해줘"})

# 2. RAG Chain (문서 기반 QA)
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain

embeddings = OpenAIEmbeddings()
vectorstore = FAISS.load_local("my_index", embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})

rag_prompt = ChatPromptTemplate.from_template(
    "컨텍스트를 참고해 답변하세요:\n{context}\n\n질문: {input}"
)
document_chain = create_stuff_documents_chain(llm, rag_prompt)
rag_chain = create_retrieval_chain(retriever, document_chain)
answer = rag_chain.invoke({"input": "우리 회사 휴가 정책은?"})

# 3. Agent with Tools
search_tool = DuckDuckGoSearchRun()
tools = [search_tool]

agent_prompt = ChatPromptTemplate.from_messages([
    ("system", "도구를 사용해 최신 정보를 검색하세요."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}")
])
agent = create_tool_calling_agent(llm, tools, agent_prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({"input": "오늘 비트코인 가격은?"})

📊 성능 & 비용

2025년 1월 기준 LangChain 생태계 가격 정보입니다.

서비스 가격 특징
LangChain 오픈소스 무료 (MIT License) 체인, 에이전트, RAG 구축
LangGraph 오픈소스 무료 복잡한 에이전트 워크플로우
LangSmith Free 무료 5,000 traces/월
LangSmith Developer $39/월 무제한 traces, 1명
LangSmith Plus $1,200/월 팀용, 10 시트 포함
LangSmith Enterprise 문의 필요 SSO, SLA, 전용 지원

참고: LangSmith는 디버깅, 평가, 모니터링 도구. 프로덕션 품질 관리에 필수적이나, 개발 단계에서는 무료 티어로 충분합니다.

🗣️ 실무에서 이렇게 말하세요

💬 회의에서
"사내 문서 검색 챗봇 만드는데, LangChain으로 RAG 파이프라인 구축하고 LangSmith로 품질 모니터링하겠습니다. FAISS 벡터스토어에 문서 10만 건 인덱싱하고, Retriever top-k=5로 설정해서 hallucination 줄이겠습니다."
💬 면접에서
"LangChain Agent로 주문 처리 자동화를 구현했습니다. Tool로 재고 조회 API, 배송 API를 연결하고, GPT-4가 고객 요청을 분석해 적절한 Tool을 호출하게 했어요. LangGraph로 분기 로직을 DAG로 관리해서 복잡한 워크플로우도 처리합니다."
💬 기술 토론에서
"단순 LLM 호출에 LangChain 쓰면 오버엔지니어링이에요. OpenAI SDK 직접 호출이 더 깔끔합니다. LangChain은 체인 연결, 도구 호출, 메모리 관리가 복잡해질 때 진가를 발휘합니다."

⚠️ 흔한 실수 & 주의사항

단순 작업에 LangChain 도입

API 한 번 호출하는 데 LangChain은 과도. 체인/에이전트가 2개 이상일 때 도입하세요.

구버전 문법 사용

LLMChain, SequentialChain은 deprecated. LCEL(| 연산자)과 create_* 함수를 사용하세요.

올바른 방법

복잡한 에이전트는 LangGraph 사용. LangSmith로 디버깅. langchain-core, langchain-openai 등 패키지 분리 버전 사용.

🔗 관련 용어

📚 더 배우기