콘텐츠로 이동

LangChain과 LangGraph를 선택하는 제어 흐름 기준

이 문서는 두 라이브러리의 특정 최신 API를 단정하지 않고, 워크플로를 설계할 때의 선택 기준을 설명합니다. 패키지의 책임과 권장 API는 릴리스마다 바뀔 수 있으므로 실제 결정에는 설치 버전, 공식 마이그레이션 문서, 최소 실행 예제를 함께 기록합니다.

먼저 모델링할 것

라이브러리를 선택하기 전에 다음 제어 계약을 그립니다.

  • 노드별 입력, 출력, 외부 부작용
  • 순차 실행, 조건 분기, 반복, 병렬 실행의 필요 여부
  • 실행 중 보존할 상태와 각 필드의 갱신 규칙
  • 재시도 가능한 오류와 즉시 중단할 오류
  • 체크포인트, 중단 후 재개, 사람 승인 경계
  • 최대 반복 횟수, 시간·토큰·비용 한도
  • 도구 호출의 멱등성과 중복 실행 처리

LangChain 계열 구성 요소가 맞는 경우

프롬프트, 모델, 검색기, 출력 파서처럼 비교적 독립적인 구성 요소를 조합하고 입력에서 출력까지의 경로가 짧고 고정적이라면 체인 또는 runnable 조합으로 충분할 수 있습니다. 단, “LangChain은 DAG만 지원한다”거나 “상태가 없다”는 식의 절대 구분은 버전별 API와 사용자 코드의 오케스트레이션을 무시합니다.

적합 여부는 다음으로 판정합니다.

  1. 실패한 단계를 호출자가 명확히 식별할 수 있습니다.
  2. 재실행 범위가 전체 체인인지 특정 단계인지 정의돼 있습니다.
  3. 중간 값을 별도 영속 상태 머신 없이 전달할 수 있습니다.
  4. 분기와 반복을 일반 코드로 표현해도 복구 경계가 흐려지지 않습니다.

LangGraph 계열 그래프가 맞는 경우

명시적 상태를 여러 노드가 갱신하고, 조건부 전이·반복·중단·재개를 실행 모델의 일부로 관리해야 한다면 그래프가 유리할 수 있습니다. 그래프를 쓴다고 자동으로 유한 상태 기계의 안전성이 생기지는 않습니다. 상태 스키마, reducer, 종료 조건, 체크포인터와 부작용 재실행 규칙을 직접 정의해야 합니다.

적합 여부는 다음으로 판정합니다.

  1. 상태 전이와 다음 노드를 실행 기록에서 재구성할 수 있습니다.
  2. 반복마다 종료 가드와 최대 횟수가 있습니다.
  3. 사람 승인 전후에 실행을 안전하게 중단·재개할 수 있습니다.
  4. 체크포인트 복구 때 외부 도구를 중복 호출하지 않도록 설계돼 있습니다.
  5. 부분 실패를 어느 노드에서 재시도할지 명확합니다.

비교 실험

같은 최소 워크플로를 두 방식으로 만들 필요는 없습니다. 가장 단순한 후보 하나를 구현하고 다음 조건을 검증합니다.

조건 확인할 증거
정상 경로 노드 순서, 최종 출력, 상태 변화
모델 오류 재시도 횟수와 최종 실패 상태
도구 시간 초과 취소·재개·중복 호출 여부
사람 승인 중단 지점과 승인 전 부작용 차단
무한 반복 위험 반복 상한 도달 시 종료 결과
프로세스 재시작 체크포인트에서의 복구 결과

결정 규칙

고정된 짧은 데이터 흐름에는 작은 조합부터 시작합니다. 명시적 장기 상태, 반복, 체크포인트, 사람 승인 때문에 일반 코드의 복구 경계가 불명확해질 때 그래프 실행 모델을 채택합니다. “나중에 에이전트로 확장할 수 있다”는 가능성만으로 초기 복잡도를 늘리지 않습니다.