Skip to content
Hyunjun Jeong edited this page Nov 13, 2024 · 4 revisions

비즈니스 규칙

체크아웃

동일한 사용자가 동일한 카트에 대한 결제 요청을 여러 번 요청한 경우

체크아웃을 구분하기 위한 orderId(멱등성 키)는 userId와 cartId를 기준으로 생성된다. 하지만 토스 PG사가 멱등을 보장하기에 따로 예외를 던지거나 하지 않는다.

체크아웃 시점과 결제 승인 요청 시점의 상품 정보가 다른 경우

체크아웃 생성 시점의 상품 정보와 PG 승인 요청 시점의 상품 정보가 서로 다른 경우는 악의적인 데이터 수정 또는 판매자, 가격이 변경되었다고 판단하므로 PaymentOrder 정보를 삭제하고 체크아웃 API로 리다이렉트한다.

테스트 규칙

  1. 웹 계층 : @WebMvcTest, MockMvc 활용
  2. 애플리케이션 계층 : 단위 테스트
  3. 영속성 계층 : @DataJpaTest
  4. 통합 테스트 : @SpringBootTest, TestRestTemaplte 또는 WebTestClient