상태 열거 → 전이 이벤트 명시화 → 제약 검증 집중화
복잡한 주문 처리 시스템을 리팩토링할 때 상태, 이벤트, 제약 조건으로 분리해 모델링한 경험이 있습니다. 처음엔 조건문이 중첩된 코드였는데, 각 주문이 가질 수 있는 상태(`State`)를 열거하고 전이 조건(`Event`)을 명시적으로 정의하는 FSM 패턴으로 재작성했습니다. 제약(Constraint) 조건은 전이가 일어날 수 있는 전제 조건으로 분리해 검증 로직을 한 곳에 모았습니다. 덕분에 새 상태를 추가할 때 기존 로직에 미치는 영향이 명확해졌고, 버그 재현이 상태 로그만으로 가능해졌습니다. 이 모델이 가장 빛나는 건 엣지 케이스를 설계 단계에서 발견할 때라고 생각합니다.