Skip to main content
LangGraph는 상태(State)를 중심으로 노드(Node)와 엣지(Edge)를 연결해 실행 흐름을 제어합니다. 이 문서는 시작점만 다루고, 세부 내용은 하위 문서로 분리했습니다.

최소 실행 예제

from typing import TypedDict
from langgraph.graph import StateGraph, START, END

class State(TypedDict):
    text: str


def step(state: State) -> State:
    return {"text": state["text"] + " -> done"}

graph = StateGraph(State)
graph.add_node("step", step)
graph.add_edge(START, "step")
graph.add_edge("step", END)

app = graph.compile()
print(app.invoke({"text": "start"}))

Graph API vs Functional API

항목Graph APIFunctional API
표현 방식노드/엣지 명시함수 데코레이터 중심
제어력높음중간
추천 시점프로덕션 워크플로우단순 태스크 자동화
입문자는 Graph API로 시작하는 것을 권장합니다.

다음 학습 순서

노드/엣지/스테이트

LangGraph 핵심 3요소를 정확히 익힙니다.

조건부 엣지

라우팅과 분기 제어를 구현합니다.

도구 호출 에이전트

ToolNode 기반 에이전트를 구성합니다.

워크플로우 패턴

병렬화, 오케스트레이션 패턴으로 확장합니다.

학습 완료 기준

  • 이 문서의 핵심 개념을 3분 내로 설명할 수 있습니다.
  • 현재 프로젝트 기준으로 적용할 범위와 제외 범위를 구분할 수 있습니다.
  • 다음 학습 단계에서 필요한 입력(코드/정책/데이터)을 준비할 수 있습니다.

실무 적용 체크리스트

  • 노드 입출력 State 계약을 문서화했습니다.
  • 조건부 엣지 default/END 경로를 테스트했습니다.
  • recursion_limit/timeout을 설정했습니다.
  • 실패 시 재시도와 중단 규칙을 분리했습니다.

자주 나는 실수

  1. State 키를 일관되게 관리하지 않아 노드 간 충돌이 납니다.
  2. 조건부 라우팅 반환값과 매핑 키가 불일치합니다.
  3. END/재시도 경로를 누락해 무한 루프가 발생합니다.

다음 문서

다음: LangGraph 노드·엣지·스테이트

학습 흐름을 이어서 진행합니다.