재고 일관성 문제 → 임시 차감 로직 → 할인 정책 테이블 분리
쇼핑몰 사이드 프로젝트를 만들면서 커머스 도메인 특유의 복잡성을 처음 마주했습니다. 상품, 재고, 주문, 결제 네 가지가 각각 독립적으로 변하면서 서로 일관성을 유지해야 한다는 게 단순 CRUD와 가장 다른 부분이었습니다. 특히 재고 차감 타이밍이 까다로웠는데, 결제 전 임시 차감과 결제 완료 후 확정을 구분하지 않으면 동시 주문 시 재고 초과가 발생했습니다. 할인과 쿠폰 로직도 조합 가능한 케이스가 많아서 정책 테이블로 분리하지 않으면 조건 분기가 급격히 복잡해졌습니다. 이 경험이 도메인 개념을 먼저 명확히 하고 코드를 짜야 한다는 걸 실감하게 해줬습니다.