1. CartDetailDto
2. CartItemRepository
// select 부분에 new 키워드와 해당 DTO의 패키지, 클래스명을 지정
new com.shop.dto.CartDetailDto(ci.id, i.itemNm, i.price, ci.count, im.imgUrl)
// 최적화를 위해 한 번에 반환하도록 List<CartDetailDto> 타입 지정
List<CartDetailDto> findCartDetailDtoList(Long cartId);
3. CartService
4. CartController
1. 장바구니 조회 페이지 View
2. 총 주문 금액
// name 속성 값이 cartChkBox 이고 체크된 input 태그에 대해 각각 함수 수행
$("input[name=cartChkBox]:checked").each(function()
//id 가 price~ 인 태그를 지정
$("#price_" + cartItemId)
3. 상품 전체 선택 및 해제
자바스크립트 .attr()과 .prop() 차이
.attr() : HTML의 속성(attribute) 취급
.prop() : JavaScript의 프로파티(property)를 취급 (true,false)
4. 장바구니 상품 수량 변경
// id = price{CartItemId} 엘리먼트에 data 자료구조 생성 후 key = price 에 대한 value 지정
<span th:id="'price_' + ${cartItem.cartItemId}"
th:data-price="${cartItem.price}"
th:text="${cartItem.price} + '원'"
class="align-self-center mr-2">
</span>
// id = price{CartItemId} 엘리먼트 data 에서 key = price 인 value 추출
var price = $("#price_" + cartItemId).data("price");
// 일부분만 수정하기 위해서 PATCH 방식으로 요청
type: "PATCH"
// 상품 Id 값은 PathVariable, 수량(count)은 QueryString
var url = "/cartItem/" + cartItemId+"?count=" + count;
5. CartItem Entity
6. CartService
7. CartController