도입

사람들이 챗지피티와 같은 LLM을 만들때 랭체인 랭그래프 라는 개념이 한번도 빠지지 않고 등장하죠.

전공자로써 많이 들어보기만 했지...

이게 어떻게 작동하는지, 원리는 뭔지..? 안개 속에 남아있는 느낌이 찝찝해서 블로그를 작성하게 되었습니다!

남에게 설명해줄 수 있을 때까지!! 이 개념이 뭔지 어떻게 활용할 수 있는지 정리해보겠습니당


도대체 LangChain이 뭘까?

랭체인 이해하기

Conceptual guide | 🦜️🔗 LangChain

그런데 이것 말고도 여전히 ChatGPT가 올바른 답변을 하지 못하는 부분이 있습니다. 바로 비공개 데이터인데요.

우리 가족의 키 또는 여행 정보는 우리 가족이나 매우 가까운 사람들만 알고 있는 정보이지, ChatGPT는 당연히 알 수가 없을 겁니다.

 

이번에는 우리 가족의 키 정보를 주면서 “우리 집에서 키가 가장 큰 사람은 누구냐”고 물어보는 거예요. 이때는 아빠가 가장 크다고 잘 답변해 줍니다.

 

그렇다면 수백 페이지에 달하는 회사 내부 매뉴얼 전체와 같은 방대한 정보에 대해서 질문을 하고 싶다면 어떻게 해야 할까요? 데이터 양도 너무 많고, 그에 따라 비용도 발생할 겁니다. 또 참고 자료가 너무 많으면 오히려 ChatGPT가 필요한 정보를 찾는 데 혼란을 줄 가능성이 큽니다.

 

결국 올바른 답변을 얻지 못할 수도 있는 거예요. 이 문제를 해결하는 기술이 바로 RAG입니다.

우리가 질문을 하면 RAG 시스템은 먼저 우리가 미리 준비해 둔 외부 문서나 데이터베이스에서 질문과 가장 관련 높은 정보를 검색합니다. 네. 마치 오픈북 시험 볼 때 책에서 관련된 내용을 찾는 것과 같아요.

그런데 이 RAG 시스템을 직접 만들려면 데이터를 불러오고 검색하기 좋게 나누고 검색도 하고 또 AI 모델하고 연결하고 등등 복잡한 작업들이 필요합니다. 이때 랭체인이라고 하는게 빛을 바라는데요.


RAG를 만드는 데 필요한 여러 기능들, 가령 데이터를 불러오거나 나누거나 검색하거나 AI를 연동하는 작업들이미 미리 만들어진 형태로 제공됩니다. 그래서 이 LangChain 블록들을 가져다 쓰면 쉽고 빠르게 조립해서, RAG 기반의 똑똑한 챗봇 같은 서비스를 뚝딱 만들 수 있는 거예요.

고객센터 입장에서는 제품 매뉴얼이나 자주 묻는 질문 등에 대한 데이터가 있다면 이 내용을 바탕으로 챗봇을 통해서 빠르고 정확하게 답변이 가능할 겁니다.

 

AI가 단순히 알고 있는 것을 넘어서 여러분이 가진 정보를 활용해서 여러분만의 똑똑한 챗봇 서비스를 개발할 수 있습니다.


Langchain과 Langgraph의 차이점

항목 LangChain LangGraph
구조 체인 (선형) 그래프 (비선형)
흐름 단방향, 순차적 양방향, 동적
제어 고정된 파이프라인 에이전트가 다음 노드 선택
활용 RAG, 정보 추출, 단일 파이프라인 작업 멀티에이전트, 협력적 워크플로우

1. LangChain

  • 이름 그대로 Chain(체인, 쇠사슬) 구조
  • 선형적(Linear) 실행 흐름
  • 동작 방식
    1. 입력 메시지를 프롬프트가 가공
    2. LLM이 답변 생성
    3. Function/Parser를 거쳐 원하는 형식으로 출력
  • 구현 언어: Lang Expression Language (LCEL)로 쉽게 조합 가능
  • 주요 활용 사례
    • RAG: Document Loader → Text Splitter → Embedding → Vector Store → Retriever → Prompt → Model
    • 에이전트 생성: LLM 출력 → Parser → Tool 호출 → 결과 재활용
    • 정보 추출: 문서 로드 → Prompt 기반 추출 → JSON Parser로 구조화

👉 특징: 입력 → 출력으로 단방향으로만 흐름 (다시 돌아가지 않는다!!)

2. LangGraph

  • 그래프(Graph) 구조 기반
  • 노드(Node)와 엣지(Edge)로 연결
  • 비선형(Non-linear), 동적(Dynamic) 실행 가능
  • 동작 방식
    • 메시지가 들어오면 에이전트가 다음 노드를 선택적으로 결정
    • 예: 라우터 → 툴 호출 / 사용자 응답 / 다른 에이전트 이동
  • 멀티에이전트 아키텍처에 강점
    • 메시지 흐름이 에이전트의 판단에 따라 양방향으로 이동 가능
    • 복잡한 협력적 워크플로우 구현에 적합

👉 특징: 동적으로 라우팅되는 양방향 그래프 (노드와 엣지로 다 연결해두고 AI가 어디로 갈지 미리 판단)


결론

이번에 LangChain과 LangGraph를 깊게 들여다보면서, 두 프레임워크가 같은 생태계에 속해 있으면서도 철학과 구조가 꽤 다르다는 걸 명확히 알 수 있었습니다.

  • LangChain은 이름처럼 “쇠사슬”처럼 선형적이고 직관적인 파이프라인을 만드는 데 강점이 있었습니다.
    • 예를 들어, RAG 파이프라인을 구성할 때 문서 로드 → 텍스트 분할 → 임베딩 → 벡터 저장 → 검색 → 모델 응답까지 일렬로 이어지는 단순하고 깔끔한 흐름을 구현할 수 있죠.
    • 그래서 데이터 인덱싱, 정보 추출, 단순한 에이전트 구성 같은 정해진 단계가 있는 작업에는 딱 맞는 도구라는 생각이 들었습니다.
  • 반대로, LangGraph는 선형적이지 않고 비선형적·동적 구조라는 점이 정말 매력적이었습니다.
    • 메시지의 흐름이 고정된 게 아니라, 에이전트가 판단해서 다음 노드를 선택할 수 있다는 게 굉장히 유연하게 느껴졌습니다.
    • 특히 멀티에이전트 환경에서는 “대화와 협업”을 자연스럽게 흉내낼 수 있어, 단순히 파이프라인을 넘어선 생동감 있는 시스템을 만들 수 있겠다는 기대가 생겼습니다.

개인적으로 이번 비교를 하면서 느낀 건, LangChain은 안정적인 뼈대, LangGraph는 자유로운 사고의 공간이라는 이미지였어요.
LangChain을 쓰면 안심이 되고, LangGraph를 쓰면 도전과 흥분이 동시에 느껴진다고 할까요?

 

결국 이 둘은 대체재가 아니라 상황에 맞게 선택하고, 때로는 함께 써야 하는 상호보완적인 도구라는 생각이 들었습니다.


블로그를 쓰는 내내, "아 이거 진짜 재밌다, 나도 이런 구조로 무언가 만들어보고 싶다!"라는 열정이 다시금 생겼습니다😉