장바구니 2

장바구니 api - Create 추가 #2 (Feat. SpringBoot)

로직 설명개발 에러 상황V1 serviceV2 serviceV2 service #2V2 service #3배운점 장바구니 api - Create 추가 #1 (Feat. SpringBoot) 에서 설명한 Table 구조에 따른 장바구니 추가 api 코드에 대해 설명하겠다. v1와 v2 기간을 거치면서 장바구니 api를 고도화했다. 간단한 api일줄 알았으나, 직접 개발을 하면서 여러 에러를 겪고 해결하며 성장할 수 있었다. 🌱로직 설명단기투숙startDate = 2023-11-29endDate = 2023-11-30roomProduct |2023-11-29| stock : 2장바구니 = 11월 29일만 담긴다.만약, 11월 29일의 재고가 이미 cart에 2번 담겨있다면, “상품의 재고 부족으로 장바구니 ..

장바구니 api - Create 추가 #1 (Feat. SpringBoot)

중간 테이블 java 구조 다대일 양방향 관계RoomCart.javaCart.java다대일 단방향 관계RoomCart.javaRoomProduct.java So2zy 프로젝트에서 장바구니 추가 api를 담당해서 개발을 했다. “야놀자”의 객실상품을 “장바구니”에 추가하는 로직을 구현해야하므로, ERD를 아래와 같이 작성해보았다. 🌱처음에는 ERD를 짤 때, Room, Cart 테이블만 존재하면 될 줄 알았다.. 😲근데, JPA 특성상 N:M관계는 최대한 지양하는 추세이므로 Room_cart와 Room_product라는 중간 테이블을 구현해야했다. ⚠️왜 N:M관계는 최대한 지양해야할까 ?JPA에서는 @ManyToMany어노테이션을 제공해준다.이 어노테이션은, 암묵적으로 중간 테이블을 생성해주어서 자기도 ..