Langgraph 노드 트러블슈팅 - 100-hours-a-week/12-marong-Wiki GitHub Wiki
에러 내용
- LangGraph 파이프라인 실행 시, 미션 난이도별 요청 수량(예: 상 5개, 중 10개, 하 15개)이 불완전하게 생성됨
- 최종적으로 DB에 저장된 미션 수가 난이도별 요구 수량보다 부족하거나 불균형함
원인 분석
check_completion_node
를 초기 진입점으로 사용하지 않고, 곧바로 select_query_node
부터 실행되도록 구성
- 난이도별 생성 완료 여부를 확인하지 않고 쿼리를 선택하는 구조였기 때문에, 이미 생성이 완료된 난이도도 계속 생성 시도하거나, 반대로 생성이 누락되는 경우 발생
- LangGraph 내부 상태가
현재 난이도/생성 수량/목표 수량
에 따라 조건 분기되지 않아 흐름 제어 실패
해결 방법
- LangGraph 설계 시
check_completion_node
를 최초 진입점으로 강제 지정하여, 각 난이도별 생성 완료 여부를 먼저 확인하도록 구조 재설계
- 각 노드는 조건문 기반 분기 처리 명확하게 구현:
check_completion_node
→ 생성 필요시 select_query_node
로 이동
- 생성 완료된 난이도는 상태 업데이트 후 다음 단계로 이동
update_state_node
에서도 다음 난이도 진입 여부를 엄격히 판단하여, 무한 루프 방지 및 조건 기반 흐름 유지
회고
- LangGraph는 단순 DAG 구조가 아닌 "조건 분기 기반 상태 제어 흐름" 설계가 핵심
- 초기 진입 노드 및 조건 검사 로직이 누락되면 전체 루프가 비정상 작동할 수 있음
- 파이프라인을 설계할 때, 상태 기반 조건 체크 흐름을 가장 먼저 설계해야 이후 노드 연결과 분기가 명확해짐