[29CM 클론코딩 프로젝트] 트러블슈팅-1
쇼핑몰 클론코딩 프로젝트 트러블슈팅
- 29CM 쇼핑몰을 클론코딩하면서 많은 트러블슈팅이 있었다.
- 주문을 구현을 하면서 다음과 같은 문제가 발생하였다.
상품 주문 문제
장바구니에서 상품을 선택하고 주문 선택하여 결제 페이지에 진입한 후 장바구니 창에서 수량을 고의적으로 수량을 늘려 저장을 하게 되면, 결제 페이지에서 가격 정보가 업데이트되지 않고 그대로 주문이 되는 문제가 발생하였다.
문제 분석
이 경우 수량 변경이 실시간으로 반영되지 않아, 수정된 수량이 결제에 반영되지 않는 문제였다.
해결 방안
flowchart LR
장바구니 == 선택된 상품은 주문 처리 테이블로 임시 이동 ==> 주문페이지
주문페이지 == 주문 처리 테이블에서 주문 내역 테이블로 이동 ==> 결제페이지
- 장바구니에서 상품을 선택하여 주문 진행 시, 선택된 상품들을 주문 처리 테이블로 이동하여 임시로 저장하였다.
- 결제 페이지로 이동하면, 주문 처리 테이블에 있던 컬럼은 주문 내역 테이블로 이동하게 된다.
- 단, 이러면 결제가 완료되지 않은 주문이 주문 내역에 표시되기 때문에 주문 상태를 빈 값으로 이동하며 주문 내역 페이지에서는 주문 상태가 빈 값이 아닌 컬럼만 표시되도록 하였다.
- 이를 통해, 주문 처리 중 발생할 수 있는 데이터 불일치 문제를 방지하고, 안정적으로 주문이 처리되도록 개선하였다.
하지만 여기서 주문을 취소 및 실패 시 주문 내역 테이블에 계속 남게된다. 이 문제도 인지하여 다음 트러블슈팅으로 작성할 예정이다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.