300===Dev Framework/Langgraph

LangGraph 쉽게 이해하기: 초보자를 위한 가이드 🌟

블로글러 2025. 3. 9. 20:19

안녕하세요! 오늘은 LLM 애플리케이션 개발에 큰 도움이 되는 LangGraph를 정말 쉽게 설명해 드릴게요. 처음부터 차근차근 알아봅시다!

LangGraph란 무엇인가요? 🤔

여러분이 좋아하는 요리 레시피를 생각해보세요:

  • 재료 준비하기
  • 야채 썰기
  • 고기 볶기
  • 소스 넣기
  • 간 맞추기
  • 완성!

LangGraph는 바로 이런 레시피 같은 도구예요! AI 애플리케이션이 따라갈 단계와 흐름을 정해주는 거죠. 🍳

쉽게 말해서, LangGraph는:

  • AI 앱이 해야 할 일을 여러 단계로 나누고
  • 각 단계를 어떤 순서로 진행할지 정하고
  • 때로는 "이런 경우엔 A로, 저런 경우엔 B로" 같은 길분기도 만들어줍니다

LangGraph의 기본 구성요소 📚

1. 노드(Nodes): 할 일들

레시피의 "야채 썰기", "고기 볶기" 같은 각 작업 단계예요.

def 질문_이해하기(상태):
    # 사용자가 무엇을 물었는지 파악하는 함수
    return "다음 단계: 검색하기"

def 정보_검색하기(상태):
    # 관련 정보를 찾는 함수
    return "다음 단계: 답변하기"

def 답변_생성하기(상태):
    # AI로 답변을 만드는 함수
    return "완료"

2. 에지(Edges): 단계들 사이의 연결

"야채 썬 후에 고기 볶기", "소스 넣은 후 간 맞추기" 같은 순서를 정해주는 거예요.

# 간단하게 표현하면 이런 느낌:
질문_이해하기 → 정보_검색하기 → 답변_생성하기 → 종료

3. 상태(State): 정보 보관함

요리할 때 재료들과 중간 결과물을 담아두는 그릇 같은 거예요. 각 단계에서 필요한 정보를 담고 있습니다.

내_상태 = {
    "질문": "파리의 에펠탑은 언제 지어졌나요?",
    "검색결과": None,
    "답변": None
}

실생활 예시로 이해하기 🏫

학교 선생님의 수업 진행 방식

  1. 학생 질문 받기 (입력 노드)
  2. 질문 이해하기 (분석 노드)
  3. 관련 지식 떠올리기 (검색 노드)
  4. 쉽게 설명하기 (응답 노드)
  5. 학생 이해했는지 확인 (평가 노드)
    • 이해했으면 → 다음 주제로
    • 이해 못했으면 → 다시 설명하기로 돌아가기

이것이 바로 LangGraph의 기본 구조와 같아요!

간단한 LangGraph 예제 💻

아주 간단한 대화 시스템을 만든다고 상상해봅시다:

from langgraph.graph import StateGraph, END

# 1. 각 단계(노드) 정의하기
def 질문_받기(상태):
    # 사용자의 질문을 받는 로직
    return {"다음_단계": "분석"}

def 질문_분석하기(상태):
    # 질문 분석 로직
    return {"다음_단계": "검색"}

def 정보_검색하기(상태):
    # 정보 검색 로직
    return {"다음_단계": "응답"}

def 답변_만들기(상태):
    # 답변 생성 로직
    return {"다음_단계": "종료"}

# 2. 상태의 흐름을 결정하는 함수
def 다음_단계_결정(상태):
    return 상태["다음_단계"]

# 3. 그래프 만들기
대화_흐름 = StateGraph("대화_상태")

# 4. 노드 추가하기
대화_흐름.add_node("질문", 질문_받기)
대화_흐름.add_node("분석", 질문_분석하기)
대화_흐름.add_node("검색", 정보_검색하기)
대화_흐름.add_node("응답", 답변_만들기)

# 5. 노드 연결하기 (조건부)
대화_흐름.add_conditional_edges("", 다음_단계_결정)
대화_흐름.add_edge("종료", END)

# 6. 시작 노드 설정
대화_흐름.set_entry_point("질문")

# 7. 완성!
내_앱 = 대화_흐름.compile()

LangGraph의 장점 🌈

1. 레고 블록처럼 조립이 쉬워요

작은 블록들을 조립해 복잡한 모형을 만드는 것처럼, 작은 함수들을 조합해 복잡한 AI 시스템을 만들 수 있어요.

2. 수정이 편해요

퍼즐의 한 조각만 바꾸듯, 전체 시스템 중 한 부분만 수정할 수 있어요. 다른 부분은 그대로 유지됩니다.

3. 이해하기 쉬워요

지하철 노선도처럼 전체 시스템의 흐름을 한눈에 볼 수 있어요.

실제 활용 사례 🚀

1. 질의응답 비서

사용자 질문 → 의도 파악 → 필요 정보 검색 → 답변 작성 → 결과 전달

예: "내일 서울 날씨 어때?"라고 물으면, 의도를 파악해서 날씨 API를 검색하고 결과를 깔끔하게 알려줍니다.

2. 고객 상담 챗봇

고객 문의 → 문의 유형 분류 → 관련 정보 찾기 → 해결책 제안 → 만족도 확인

예: "환불하고 싶어요"라는 문의가 오면, 환불 정책을 찾아 안내하고 필요한 링크를 제공합니다.

3. 자동 보고서 작성기

데이터 수집 → 데이터 분석 → 중요 포인트 추출 → 보고서 초안 작성 → 편집 및 요약

예: 판매 데이터를 넣으면 중요한 트렌드를 찾아내 보기 좋은 보고서로 만들어 줍니다.

더 복잡한 흐름 예시: 와플 만들기 🧇

레시피를 더 복잡하게 해볼까요?

재료 확인
  → 재료 부족? → [예] → 장보기 리스트 작성 → 장보기
  → [아니오] → 반죽 만들기
      → 반죽이 너무 묽나요? → [예] → 밀가루 더 넣기
      → [아니오] → 와플 기계 예열하기
          → 와플 굽기
              → 충분히 구워졌나요? → [아니오] → 더 굽기
              → [예] → 토핑 얹기 → 완성!

이런 복잡한 조건 분기도 LangGraph로 쉽게 표현할 수 있어요!

주의할 점 ⚠️

  1. 미리 계획하세요

    • 집을 지을 때 설계도가 필요하듯, 시작 전에 전체 흐름을 그려보세요
    • 각 단계에서 필요한 정보와 나오는 결과를 명확히 정의하세요
  2. 단순하게 시작하세요

    • 처음부터 너무 복잡하게 만들지 마세요
    • 기본 기능부터 만들고 점차 확장하는 게 좋아요
  3. 자주 테스트하세요

    • 모든 단계를 한꺼번에 만들지 말고, 하나씩 만들고 테스트하세요
    • 문제가 생겼을 때 원인을 찾기가 훨씬 쉬워져요
  4. 문서화를 잘하세요

    • 각 노드가 무슨 일을 하는지 설명을 잘 달아두세요
    • 나중에 코드를 다시 볼 때 정말 도움됩니다

시작하기 위한 간단한 단계 🏁

  1. 설치하기

    pip install langgraph langchain-core
  2. 기본 구조 정하기

    • 앱이 해야 할 일을 단계별로 나누세요
    • 각 단계 사이의 흐름을 그림으로 그려보세요
  3. 코드 작성하기

    • 각 단계를 함수로 만드세요
    • 그래프를 만들고 노드와 에지를 연결하세요
  4. 테스트하기

    • 작은 예시로 테스트해보세요
    • 단계별로 결과를 확인하세요

마치며 🎁

LangGraph는 마치 레고 블록이나 요리 레시피처럼, 복잡한 AI 시스템을 쉽게 만들 수 있게 도와주는 도구입니다. 처음에는 간단한 챗봇부터 시작해서, 점점 더 복잡한 시스템으로 확장해 볼 수 있어요.

복잡한 코드를 쓰는 대신, 작은 조각들을 연결해서 큰 그림을 완성하는 즐거움을 느껴보세요!


궁금한 점이 있으시면 댓글로 남겨주세요! 😊


참고 자료

728x90