[2026] LangChain 완벽 가이드 | LLM 앱 개발·Chain·Agent·RAG·실전 활용

[2026] LangChain 완벽 가이드 | LLM 앱 개발·Chain·Agent·RAG·실전 활용

이 글의 핵심

LangChain으로 LLM 앱을 개발하는 완벽 가이드입니다. Chain, Agent, Memory, RAG, Vector Store까지 실전 예제로 정리했습니다.

실무 경험 공유: 단순 GPT API 호출을 LangChain으로 전환하면서, 복잡한 워크플로우 구현이 가능해지고 응답 품질이 크게 향상된 경험을 공유합니다.

들어가며: “LLM 앱 개발이 어려워요”

실무 문제 시나리오

시나리오 1: Prompt 관리가 복잡해요
하드코딩은 유지보수가 어렵습니다. LangChain은 Template을 제공합니다. 시나리오 2: 문서 검색이 필요해요
단순 GPT는 제한적입니다. LangChain은 RAG를 지원합니다. 시나리오 3: 복잡한 워크플로우가 필요해요
순차 호출은 번거롭습니다. LangChain은 Chain과 Agent를 제공합니다.

1. LangChain이란?

핵심 특징

LangChain은 LLM 앱 개발 프레임워크입니다. 주요 기능:

  • Chain: 여러 단계 연결
  • Agent: 자율적 의사결정
  • Memory: 대화 기억
  • RAG: 문서 기반 응답
  • Vector Store: 임베딩 저장

2. 설치 및 기본 사용

설치

pip install langchain langchain-openai

기본 LLM 호출

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
    model="gpt-4",
    temperature=0.7,
    api_key="your-api-key"
)
response = llm.invoke("Hello, how are you?")
print(response.content)

3. Prompt Template

다음은 python를 활용한 상세한 구현 코드입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.prompts import ChatPromptTemplate
template = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant that translates {input_language} to {output_language}."),
    ("human", "{text}")
])
prompt = template.format_messages(
    input_language="English",
    output_language="Korean",
    text="Hello, how are you?"
)
response = llm.invoke(prompt)
print(response.content)

4. Chain

Simple Chain

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=template)
result = chain.invoke({
    "input_language": "English",
    "output_language": "Korean",
    "text": "Hello"
})
print(result[text])

Sequential Chain

다음은 python를 활용한 상세한 구현 코드입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.chains import SequentialChain
# 첫 번째 Chain: 요약
summary_chain = LLMChain(llm=llm, prompt=summary_template, output_key="summary")
# 두 번째 Chain: 번역
translate_chain = LLMChain(llm=llm, prompt=translate_template, output_key="translation")
# 연결
overall_chain = SequentialChain(
    chains=[summary_chain, translate_chain],
    input_variables=[text],
    output_variables=["summary", "translation"]
)
result = overall_chain.invoke({"text": "Long article..."})

5. Agent

Tool 정의

다음은 python를 활용한 상세한 구현 코드입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.agents import Tool
from langchain.tools import DuckDuckGoSearchRun
search = DuckDuckGoSearchRun()
tools = [
    Tool(
        name="Search",
        func=search.run,
        description="Useful for searching the internet"
    ),
    Tool(
        name="Calculator",
        func=lambda x: eval(x),
        description="Useful for math calculations"
    )
]

Agent 실행

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.agents import initialize_agent, AgentType
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)
result = agent.invoke("What is the population of Seoul in 2024?")
print(result[output])

6. Memory

Conversation Buffer

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
conversation = ConversationChain(
    llm=llm,
    memory=memory,
    verbose=True
)
conversation.invoke("Hi, I'm John")
conversation.invoke("What's my name?")
# "Your name is John"

7. RAG (Retrieval-Augmented Generation)

문서 로드

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = TextLoader("document.txt")
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
splits = text_splitter.split_documents(documents)

Vector Store

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 코드를 직접 실행해보면서 동작을 확인해보세요.

from langchain_openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(
    documents=splits,
    embedding=embeddings
)

Retrieval QA

아래 코드는 python를 사용한 구현 예제입니다. 필요한 모듈을 import하고. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever()
)
result = qa_chain.invoke("What is the main topic of the document?")
print(result[result])

8. 실전 예제: 챗봇

다음은 python를 활용한 상세한 구현 코드입니다. 필요한 모듈을 import하고, 함수를 통해 로직을 구현합니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.

from langchain_openai import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
from langchain.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4", temperature=0.7)
template = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful customer service assistant."),
    ("human", "{input}")
])
memory = ConversationBufferMemory()
conversation = ConversationChain(
    llm=llm,
    memory=memory,
    prompt=template,
    verbose=True
)
def chat(message: str) -> str:
    response = conversation.invoke({"input": message})
    return response[response]
# 사용
print(chat("Hi, I need help with my order"))
print(chat("My order number is 12345"))
print(chat("When will it arrive?"))

정리 및 체크리스트

핵심 요약

  • LangChain: LLM 앱 개발 프레임워크
  • Chain: 여러 단계 연결
  • Agent: 자율적 의사결정
  • Memory: 대화 기억
  • RAG: 문서 기반 응답
  • Vector Store: 임베딩 저장

구현 체크리스트

  • LangChain 설치
  • Prompt Template 작성
  • Chain 구현
  • Agent 구현
  • Memory 추가
  • RAG 구현
  • 챗봇 구현

같이 보면 좋은 글

  • FastAPI 완벽 가이드
  • OpenAI API 가이드
  • Vector Database 가이드

이 글에서 다루는 키워드

LangChain, LLM, AI, GPT, RAG, Agent, Python

자주 묻는 질문 (FAQ)

Q. OpenAI API만으로는 안 되나요?

A. 단순 호출은 가능하지만, 복잡한 워크플로우는 LangChain이 훨씬 편합니다.

Q. 다른 LLM도 사용할 수 있나요?

A. 네, Claude, Gemini, Llama 등 다양한 LLM을 지원합니다.

Q. 비용은 얼마나 드나요?

A. LangChain은 무료이고, LLM API 비용만 발생합니다.

Q. 프로덕션에서 사용해도 되나요?

A. 네, 많은 AI 스타트업에서 사용하고 있습니다.

... 996 lines not shown ... Token usage: 63706/1000000; 936294 remaining Start-Sleep -Seconds 3