Open PromotezCitizen opened 1 month ago
In GitLab by @mumunuu on Oct 22, 2024, 10:06
[
{
orderInfoList: [
{ quantity: 1, productId: 30032 }
],
shippingInfo: { ... },
shippingFee: 3000
},
{
...
}
]
// 배열로 감싸는게 일단 효율적... (구조같은거 신경 안쓰더라도)
In GitLab by @mumunuu on Oct 22, 2024, 10:14
생각할 포인트...
프론트엔드에서 어떤것을 구매하려고 정보를 백엔드로 넘겨준다?
=> 결국에는 백엔드에서는 이게 진짜 맞는 데이터인지 아닌지? 신뢰하면 X
=> 최소한의 넘겨줘서 (물론.. 효율성을 좀 따져서 좀 더 많은 정보를 줘도 되긴 함) 이를 검증해야 한다.
=> 더 받으면, 나중에 카드 부분 취소라도 해줄 수 있다.
=> 덜 받으면 큰일난다.
어차피 상품 정보를 가져올때, 판매자 정보도 가져오면 되긴한다. 판매자 정렬해서 계산한다.
=> 이런 관점이면 굳이 판매자 id를 보낼 필요가 없다.
select from product p join seller s on p.seller_id = s.id order by s.id asc;
=> 결론적으로는 상품을 계산하기 위한, 최소한의 정보만 주면 됩니다. 프론트엔드에서는.
=> select from product where seller_id = ?
In GitLab by @HanSanghyeon on Oct 18, 2024, 15:09
주문 제출 시 판매자별로 물건을 받아오기 장점 : 주문자별 배송비 설정 가능 단점 : 해당 DTO처럼 사용 가능하도록 수정 필요
Request 시 여러 번 전송 기존 DTO를 그대로 사용할 수 있으나 주문 내역 저장 중 오류가 발생하면 저장된 데이터와 저장되지 않은 데이터가 발생
transaction이 각 요청에만 걸려있어 총 10건을 저장해야하는데 4번째 요청에서 오류가 발생한다면 1,2,3번째는 처리 완료됨
주문자 정보를 Product에서 가져와 적용 기존 DTO를 그대로 사용할 수 있으나 배송비 각각 적용 불가
고려해볼 다른 방법이 있다면 추천 부탁드립니다!