카테고리 없음

TIL - 주문 취소 시 DELETE가 아닌 PATCH를 선택한 이유

gentle-tiger 2025. 2. 13. 22:37

주문 관리 플랫폼 프로젝트에서 주문 취소 기능을 구현하면서, 주문을 삭제할지, 상태를 변경할지에 대해 고민했다. 주문이 취소되면 데이터를 삭제하거나 취소 상태로 변경하는 두 가지 방법이 있지만, 각 방법에는 장단점이 존재했다.

문제 상황

주문을 삭제하면, 관련된 모든 데이터가 사라지므로 금전적 정산이나 주문 이력 관리에 문제가 생길 수 있었다. 예를 들어, 주문을 취소한 후에는 환불 처리나 정산 과정이 필요할 수 있는데, 데이터가 삭제되면 이러한 후속 작업을 처리할 수 없게 된다. 삭제된 주문에 대한 이전 기록이 없다면, 나중에 정산 오류나 회계 처리에서 문제가 발생할 수 있다.

 

결론

이러한 이유로, DELETE 대신 PATCH를 사용해 주문 상태를 변경하기로 했다. PATCH는 주문 데이터를 유지하면서 상태만 업데이트할 수 있어, 금전적 정산과 기록 관리에서 후속 작업을 효율적으로 처리할 수 있다. 주문 이력을 보존하면서도 취소 처리를 할 수 있기 때문에, 회계적인 정합성을 유지할 수 있었다.

 

느낀점

이번 결정을 통해 도메인 특성을 반영한 설계가 얼마나 중요한지 다시 한 번 느꼈다. 주문 취소는 단순한 삭제가 아니라, 상태 변경을 통해 주문 이력과 금전 거래의 정확성을 유지하는 것이 중요하다는 점을 알게 되었다.