커머스 플랫폼에서 상태 전이 설계 실패와 상태 머신 패턴으로 개선한 경험을 정리한 결
사이드 프로젝트로 소규모 중고 거래 플랫폼을 만들며 커머스 도메인을 처음 경험했습니다. 주문 상태를 단순 completed/pending으로만 설계했다가 상태 전이 엣지 케이스가 계속 터지는 문제를 겪었습니다. '결제 완료 후 배송 전 취소' 같은 중간 상태를 처음부터 설계에 넣지 않은 게 원인이었고, 상태 머신 패턴으로 9개 상태·12개 전이를 명시적으로 정의하는 방식으로 리팩터링했습니다. 이후 환불 관련 버그가 0건이 됐고, 새 상태 추가도 기존 로직을 건드리지 않고 가능해졌습니다. 이 경험으로 커머스 도메인의 복잡성은 기능 수가 아니라 상태 관리와 예외 흐름에 집중돼 있다는 것을 직접 배웠습니다.