피드로 돌아가기
Dev.toBackend
원문 읽기
Fallback 로직의 도메인 명확화를 통한 Stale Forecast 오탐지 제거
Why I Made Stale Forecasts Fail Instead of Falling Back to Do Nothing
AI 요약
Context
유효하지 않은 Forecast 데이터 발생 시 시스템이 이를 물리적 제약 조건으로 오인하여 'do_nothing'이라는 정상 응답을 반환하는 설계 결함 발견. 단순 Fallback 로직이 데이터 무결성 오류를 은폐하여 운영자에게 잘못된 신뢰를 제공하는 False Confidence 문제 발생.
Technical Solution
- Invalid Input과 Infeasible Action의 도메인 경계 분리를 통한 상태 정의 체계 재설계
planStatusForDecision함수를 도입하여stale플래그에 따른 'failed' 상태와 물리적 제약에 따른 'ready(do_nothing)' 상태를 엄격히 구분generateCurtailmentPlan내selected.len == 0조건문에not staleForecast제약 조건을 추가하여 입력값 무효 시 Fallback 진입을 원천 차단staleForecast플래그를 단순 거절 사유가 아닌 Planning Path 전체의 Input Validity Marker로 격상하여 전파do_nothing을 단순 부재 처리(Absence Handler)가 아닌 명시적인 도메인 결정(Domain Decision)으로 정의하여 로직 일관성 확보
실천 포인트
1. Fallback 로직이 '데이터 부재'와 '비즈니스적 무효'를 동일하게 처리하고 있지 않은지 검토
2. 시스템의 Ready 상태가 단순한 결과값의 존재 여부(Proxy)가 아닌, 입력값의 유효성 검증을 통과했는지 확인
3. 에러 발생 시 '조용한 실패(Silent Failure)'보다 명시적인 '실패 사유(Explicit Reason)'를 반환하는 구조 설계