지하철 노선도로 이해하는 LangGraph (분기·반복 설계)

LangChain의 체인은 "쭉 흐르는 한 줄" 구조라, 조건에 따라 갈라지거나 되돌아가는 복잡한 흐름엔 한계가 있습니다. 이럴 때 쓰는 게 LangGraph예요. 저는 이걸 지하철 노선도에 비유합니다.

노선도 비유

직선 버스 노선(체인)과 달리, 지하철은 환승도 하고 순환선처럼 돌아오기도 하죠. LangGraph는 작업을 노드(역)로 두고, 조건에 따라 다음 역을 정하는 엣지(선로)로 잇습니다. "결과가 부족하면 다시 검색 역으로" 같은 흐름을 만들 수 있어요.

체인으로 안 되는 순간

제가 자동화 봇을 만들 때, "답이 충분치 않으면 도구를 다시 호출"하는 반복이 필요했습니다. 일자형 체인으론 이 되돌아가기가 안 돼서 코드가 지저분해졌는데, LangGraph로 옮기니 "조건 분기 + 루프"가 자연스럽게 표현됐어요.

# 개념 (핵심만)
graph.add_node("search", search_fn)
graph.add_node("answer", answer_fn)
graph.add_conditional_edges(
    "answer",
    lambda s: "search" if s["need_more"] else "END"  # 부족하면 다시 검색
)

핵심은 '상태(State)'

LangGraph의 중심엔 State가 있습니다. 각 역(노드)이 이 공용 메모에 결과를 쌓고, 다음 역이 그걸 보고 판단해요. 저는 처음에 State에 뭘 넣을지 설계를 대충 했다가 흐름이 꼬였는데, "무엇을 기억하고 넘길지"를 먼저 정하니 그래프가 깔끔해졌습니다.

언제 쓰나

단순 흐름이면 그냥 체인이 낫습니다. 하지만 "조건 분기, 재시도, 여러 에이전트 협업"이 필요해지는 순간이 LangGraph로 넘어갈 타이밍이에요. 도구는 문제 복잡도에 맞춰 고르면 됩니다.

마무리

LangGraph는 "AI 작업 흐름을 노선도처럼 설계"하는 도구입니다. 분기와 반복이 필요한 자동화라면 여기서 큰 힘을 발휘합니다.

댓글

이 블로그의 인기 게시물

LangGraph State란 무엇인가? 상태 관리 개념 쉽게 이해하기

LangGraph Node와 Edge 개념 쉽게 이해하기 (초보자 완전 정리)