소프트웨어 개발 · SW-14
배송 중인 주문을 취소할 수 있었다
가상 이야기 · 핵심노트 기반
핵심노트 개념: FSM과 상태 전이 — 현재 상태에서 가능한 다음 동작을 정한다
이 글에서 배우는 교훈
상태를 설계할 때는 상태 이름뿐 아니라 어떤 조건에서 다음 상태로 바뀌는지 정해야 합니다.
핵심노트를 바탕으로 만든 가상 이야기입니다. 실제 사건이나 검증된 성과가 아닙니다.
근거: FSM과 상태 전이 — 현재 상태에서 가능한 다음 동작을 정한다 · 핵심노트 14
구체적으로는 배송 중인 주문을 취소로 바꾸지 못하게 하고 반품 요청으로 안내했습니다. 화면마다 다른 상태 변경 규칙도 함께 정리했습니다.
관련 교재 내용
소프트웨어 개발 · X. 소프트웨어 요구관리 · FSM 상태 명세
유한 상태 기계는 입력에 따라 상태가 어떻게 바뀌는지 명세하는 방법입니다.
이 사례에 적용한 내용: 배송 중 주문을 즉시 취소하지 못하도록 상태별 허용 동작과 전이 조건을 정합니다.
교재 원리의 실무 적용 · 교재 원문 인용이 아닌 자체 설명입니다.
본문
주문 상태는 화면마다 임의의 문자열로 바뀌었습니다. 고객은 배송 출발 알림을 받은 뒤에도 취소 버튼으로 주문을 취소 상태로 바꿀 수 있었습니다.
팀은 결제 완료, 출고 준비, 배송 중의 상태와 허용되는 변경을 정리했습니다. 배송 중에는 즉시 취소 대신 반품 요청으로 안내하도록 처리했습니다.
결론
허용되는 상태 변화가 명확해지자 서로 모순된 주문 처리를 막을 수 있었습니다. 상태 이름뿐 아니라 언제 누가 바꿀 수 있는지 정해야 합니다.