상황 : 주문 내역 테이블에 주문정보 데이터 삽입해야함
['사용자 결제 완료 X' ▶️ '결제하기' 버튼 클릭 시 주문 내역 테이블에 주문정보 데이터 삽입]
vs
['사용자 결제 완료 O' ▶️ 결제 완료 후 주문 내역 테이블에 주문정보 데이터 삽입]
데이터 삽입 시점은 사업의 특성과 요구 사항에 따라 달라짐.
비즈니스 목표와 전략에 따라 달라질 수 있으므로, 여러 관점에서 고려해보는게 좋음.
1. 데이터 정확성
2. 데이터 분석
3. 시스템 성능
위 3가지를 고려하여 삽입 시점 결정
['사용자 결제 완료 X' ▶️ '결제하기' 버튼 클릭 시 주문 내역 테이블에 주문정보 데이터 삽입]
결제 완료하지 않은 주문 기록 시,
1. 데이터 정확성
status 컬럼에 '결제 대기 중', '주문 취소' 등의 상태 기초 데이터가 추가적으로 필요함.
=> 데이터 복잡성 증가, 주문 상태 관리 복잡함
2. 데이터 분석 용이
사용자 구매 의도 / 행동 패턴 분석 시 용이할 수 있음.
예시) 어떤 상품이나 서비스가 사용자들로부터 결제를 유도하지 못하는지,
어떤 단계에서 사용자들이 결제를 중단하는지 등의 정보 얻기 가능
3. 시스템 성능
데이터베이스 용량 증가
=> 시스템 성능에 영향 줄 수 있음
.
.
.
['사용자 결제 완료 O' ▶️ 결제 완료 후 주문 내역 테이블에 주문정보 데이터 삽입]
결제 완료된 주문 기록 시,
1. 데이터 정확성
status 상태 컬럼의 데이터를 관리하기 보다 편리함.
=> 데이터의 복잡성 감소
2. 데이터 분석 용이 X
사용자가 어느 부분에서 결제를 취소하는지,
결제 취소량이 어느정도 되는지 등의
데이터 분석이 어려움
3. 시스템 성능
결제 완료된 건만 기록하기 때문에
데이터베이스 용량 감소
=> 시스템 성능에 영향을 덜 줌
아직은 데이터 분석을 고려하지 않고, 간단한 로직을 구성하는 것이 좋을 것 같아서
['사용자 결제 완료 O' ▶️ 결제 완료 후 주문 내역 테이블에 주문정보 데이터 삽입]
해당 방법을 택하겠다.
결제 완료된 건에만 주문 내역과 결제 내역의 정보가 각 테이블에 삽입되게끔 할 예정이다.
'[Project] > 사이드 프로젝트' 카테고리의 다른 글
[404 Error] 파일 [/order/paySuccess.jsp]을(를) 찾을 수 없습니다. (0) | 2023.12.11 |
---|---|
[mysql/intellij] SQLException: Access denied for user 'root'@'localhost' (0) | 2023.12.10 |
[TypeError] order.js:113 Uncaught (in promise) TypeError (0) | 2023.12.09 |
[결제완료 카드 번호 데이터 넘기기] NumberFormatException (2) | 2023.12.08 |
[Spring] circular reference Error : 순환참조 에러 (1) | 2023.12.06 |