사랑하애오
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: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. 15:01

주문 취소하기 1. Item Entity 주문 취소 시 상품의 재고를 상품 주문 수량만큼 다시 더해주는 addStock() 메소드를 추가함 2. OrderItem Entity Item.addStock() 메소드를 호출하는 cancel 메소드 추가 주문 상품 수량을 파라미터로 넘김 3. Order Entity 주문 상태를 CANCEL 로 변경 모든 OrderItem 객체의 cancel() 메소드를 수행 4. OrderService 상품을 주문한 유저와 주문 취소를 요청한 유저가 동일한지 검증 orElseThrow 언제 해야되는 지?? 주문 취소 메소드 (변경 감지) 5. OrderController 상품을 주문한 유저가 맞는 지 검증 후 orderService.cancelOrder() 메소드 수행 6. 주..

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. 제품 상세 페이지 화면

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 메인 화면
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:36

메인화면 1. MainItemDto 메인화면에 출력할 데이터를 위한 DTO 객체 사용자에게 보여질 내용만 포함하고 있음 (등록날짜, 수정날짜, 등록자 등 제외) 2. @QueryProjection Entity 객체를 DTO 객체로 바로 반환하도록 지원하는 어노테이션 @QueryProjection 기능을 사용하기 위해선 QDto 파일 필요 (Maven - compile 수행) 3. 사용자 정의 인터페이스 리포지토리 생성 기존의 ItemRepositoryCustom 클래스에 조회문 추가 ItemRepositoryCustomImpl 클래스에서 getMainItemPage() 메소드 구현 // MainItemDto 객체를 반환 // 멤버변수 초기화는 조회된 결과값에서 MainItemDto 객체 생성자를 통해 지..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 관리 - 상품 목록 페이지
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:34

상품 목록 페이지 1. 상품 목록 페이지 결과 화면 상품 목록 테이블 부분, 하단 페이지 부분, 검색 조건 부분 존재 2. 상품 목록 페이지 View GitHub 참고 스크립트 부분 "검색" 버튼을 클릭하면 조회할 페이지 번호를 다시 "0"으로 설정해서 조회해야함 페이지 번호를 전달 받아 form에 설정된 검색 조건 값들을 초기화하여 QueryString으로 보내는 page() 함수 // "검색" 버튼이 눌리면 $("#searchBtn").on("click",function(e) // form 태그의 전송을 막음 (페이지 번호가 그대로 넘어갈 수 있음) e.preventDefault(); // 페이지 번호를 0으로 설정한 뒤 page 함수 수행 page(0); 상품 목록 테이블 부분 ${items} 변수..