폼 제출은 복구 가능한 상태 전이로 설계한다
draft·pending·검증 실패·성공·예상 밖 실패를 분리하면 중복 저장과 길 잃은 오류를 막을 수 있다.
Draft → Pending
입력을 보존하며 반복 제출 UI를 막음
Pending → Invalid
필드 오류를 값 가까이에 연결하고 재입력 허용
Pending → Success
재검증된 결과·메시지·redirect로 종료
Pending → Failure
예상 밖 예외는 오류 경계와 관측 시스템으로 전달
핵심실패 뒤 입력을 잃지 않고 같은 action을 안전하게 다시 실행할 수 있어야 좋은 폼 상태 모델이다.