사랑하애오
article thumbnail
[VSCODE] SpringBoot CRUD게시판 만들기 - 레포지토리(Repository)
JAVA/SpringBoot CRUD Board 2022. 7. 1. 10:57

리포지터리 엔티티만으로는 데이터베이스에 데이터를 저장하거나 조회 할 수 없다. 데이터 처리를 위해서는 실제 데이터베이스와 연동하는 JPA 리포지터리가 필요하다. 리포지터리란? 리포지터리는 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메소드들(예: findAll, save 등)을 사용하기 위한 인터페이스이다. 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층이 바로 리포지터리이다. 다음과 같이 QuestionRepository 인터페이스를 생성하자. [파일명:/sbb/src/main/java/com/mysite/sbb/QuestionRepository..

article thumbnail
[VSCODE] Spring Boot 쇼핑몰 프로젝트
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 15:12

Spring Boot 를 기반으로 구현한 간단한 쇼핑몰 웹 사이트 GitHub 사이트 프로젝트 진행 과정 목록 🎯 프로젝트 개발 동기 및 목표 스프링, 스프링 부트, JPA, 시큐리티 등의 기술스택들을 이론적으로 학습한 뒤에 실제로 어떻게 동작하는지 이해하기 위해서 간단한 쇼핑몰 프로젝트를 구현해봄. 흔한 쇼핑몰 프로젝트일지라도 완성하는 것에 초점을 두지 않고, 사용되는 기술에 대한 정확한 개념 및 사용법, 그리고 동작원리에 대해서 초점을 맞추었고, 또한 개발 과정에서 맞이하는 에러 및 궁금증들을 자세하게 찾아보고 정리하면서 전체적인 흐름 파악을 목표로 두었으며 프론트보다는 백엔드에 좀 더 집중하였음. ⚙️ 프로젝트 개발 환경 운영체제 : MacOs (Big Sur) 통합개발환경(IDE) : VSCODE..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 장바구니 상품 삭제 & 주문
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 15:08

장바구니 상품 삭제 1. CartService 장바구니 상품 번호를 파라미터로 받아서 삭제하는 로직 추가 2. CartController 장바구니 상품 삭제 요청을 처리하는 Controller 삭제 요청이므로 DeleteMapping 어노테이션 지정 상품 삭제 요청을 하는 유저와 해당 장바구니 상품의 유저가 일치하는지 검증 3. 장바구니 상품 삭제 요청 장바구니 페이지에서 상품의 X 버튼을 클릭하면 삭제 요청 장바구니 상품 주문 1. CartOrderDto 장바구니 페이지에서 주문할 상품의 데이터를 위한 Dto 자기 자신을 List로 가짐 2. OrderService 장바구니 페이지에서 전달 받은 구매 상품으로 주문을 생성하는 로직 추가 Order.createOrder() 메소드 호출 3. CartSer..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 장바구니 조회
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 15:06

장바구니 조회 1. CartDetailDto 장바구니 조회 페이지에 전달할 Dto 클래스 CartItem 객체와 비슷함. 따라서 List 에 담겨서 전달됨 2. CartItemRepository 장바구니 페이지에 전달할 CartDetailDto 리스트를 쿼리 하나로 조회하는 JPQL 문 지연 로딩이기 때문에 최적화를 위해서 아래 코드와 같이 DTO의 생성자를 이용하여 조회 결과를 DTO 객체로 변환 후 반환할 수 있음 // select 부분에 new 키워드와 해당 DTO의 패키지, 클래스명을 지정 new com.shop.dto.CartDetailDto(ci.id, i.itemNm, i.price, ci.count, im.imgUrl) // 최적화를 위해 한 번에 반환하도록 List 타입 지정 List f..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 장바구니 담기
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 15:04

장바구니 담기 1. CartItemDto 제품 상세 페이지에서 장바구니에 담을 상품 Id 와 수량을 전달 받을 DTO 객체 생성 2. Cart Entity 회원 한 명당 1개의 장바구니를 갖으므로 처음 장바구니에 상품을 담을 때는 해당 회원의 장바구니를 생성해야함 멤버를 파라미터로 받아서 장바구니를 생성하는 static 메소드 추가 3. CartItem Entity 장바구니에 담을 CartItem 객체를 생성하는 메소드 추가 장바구니에 담겨 있는 상품을 또 장바구니로 담았을 경우 수량을 증가시키는 메소드 추가 4. CartRepository 현재 로그인한 유저의 장바구니(Cart)를 찾기 위해서 쿼리 메소드 추가 5. CartItemRepository 상품이 장바구니에 들어있는지 조회하는 쿼리 메소드 추..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 구매 내역 조회
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 14:58

구매 내역 조회 1. OrderItemDto 주문 상품 정보를 담을 OrderItemDto 객체 생성 주문 상품 정보 (상품, 수량)와 상품의 이미지를 담고 있음 2. OrderHistDto 주문 정보를 담을 OrderHistDto 객체 생성 주문 정보내에 주문 상품 정보 List 존재 3. 구매 내역 조회 리포지토리 @Query 어노테이션을 이용하여 구매 내역을 조회 SQL 문을 여러줄로 작성 시 마지막에 띄어쓰기 " " 필수 4. 상품 대표 이미지 조회 리포지토리 구매 내역 페이지에서 주문 상품의 대표 이미지를 위한 조회 5. OrderService 주문 목록을 조회하는 로직 (메소드) 추가 동작 구조 및 원리 - order, orderItem Entity 객체를 각각 OrderHistDto, Ord..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 주문 기능 구현
JAVA/SpringBoot Shoppingmall 2022. 6. 28. 14:56

상품 주문 1. 상품 재고 부족 Exception 상품 주문 수량보다 현재 재고의 수가 적을 때 발생시킬 Exception 정의 에러 메시지를 지정할 수 있는 RuntimeException 클래스 구현 2. 상품 재고 변경 (기존 재고 - 주문 수량 재고) 로 stockNumber 수정 만약 0 보다 작다면 재고가 부족한 것이므로 Exception 발생 3. OrderItem 객체 주문 상품과 주문 수량 정보를 가지고 있는 OrderItem Entity 에 객체 생성 메소드 추가 4. Order 객체 OrderItem 객체를 연결하고 OrderItem 객체에 자신을 연결하는 메소드 추가 OrderItem 객체를 이용하여 주문 객체를 만드는 메소드 추가 각 주문 상품의 TotalPrice 를 구한뒤 모두 ..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 제품 상세 페이지
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:42

제품 상세 페이지 1. ItemController 추가 상품 수정 페이지에서 사용했던 ItemDtl 메소드를 그대로 사용하여 상품 조회 메소드 오버로딩은 파라미터의 순서가 달라도 적용이 됨 2. 제품 상세 페이지 View GitHub 참고 totalPrice 를 계산해서 출력하는 calculateTotalPrice() 메소드 - 처음 화면 출력할 때 수행되고, 그 후에 수량 변동 시 수행됨 3. 제품 상세 페이지 화면