diff --git a/book/300_architecture/311_백엔드_구조_원칙.md b/book/300_architecture/311_백엔드_구조_원칙.md index 3e22e8c..6a112b9 100644 --- a/book/300_architecture/311_백엔드_구조_원칙.md +++ b/book/300_architecture/311_백엔드_구조_원칙.md @@ -113,8 +113,8 @@ utils **참고**: `DOCS/book/300_architecture/guidelines/utility_functions.md` ### LangGraph 워크플로우 -- **복잡한 다단계 처리**: LangGraph 적극 활용 - - 의도 분류, 엔티티 추출, 스킬 선택 등 다단계 워크플로우는 LangGraph로 구현 +- **복잡한 다단계 처리**: LangGraph 필수 적용 + - 의도 분류, 엔티티 추출, 스킬 선택 등 다단계 워크플로우는 LangGraph로만 구현 - 상태 관리, 조건부 분기, 재시도 로직 등 복잡한 제어 흐름에 적합 - **프로덕션 핵심 워크플로우**: 적절한 체크포인터(AsyncSqliteSaver, PostgresSaver 등)로 상태 영속성 구현 - 장기 실행 워크플로우는 상태 영속성 필수 @@ -124,6 +124,9 @@ utils - **워크플로우 중복 실행 방지**: LangGraph 워크플로우가 활성화되면 개별 Phase 단계는 건너뛰기 - 워크플로우 내부에서 이미 처리하는 단계(질문 확장, 의도 분류 등)를 외부에서 중복 실행하지 않음 - 예: `INTENT_USE_LANGGRAPH=true`이면 `message_service`의 Phase 1(질문 확장) 건너뛰기 +- **임시 플래그 장기 방치 금지**: 전환용 기본값/우회 플래그는 배포 안정화 기간 종료 시 제거 또는 강제 전환한다. + - 예: `INTENT_ENGINE` 기본값을 구버전(`v1`)으로 장기 유지하는 구성 금지 + - 예외가 필요한 경우 문서에 종료 조건(기한, 책임자, 제거 PR)을 함께 기록 ### 계층별 원칙 - **router**: 서비스 호출만, DB/비즈니스 로직 금지