Spring Boot : 2.4.1
Spring Data JPA : 2.4.2
H2 DataBase : 1.4.200
Spring Boot Devtools : 2.4.1
Lombok Annotation Processor : 1.18.16
- 아래의 자바 컨벤션을 지켜주기 바람.
- Intellij를 활용하여 Goole StyleGuide를 적용하여 사용
- 롬복 사용 시 안티패턴 사용하지 않기
- JPA 사용 시 안티패턴 사용하지 않기
@ManyToMany
와 같은 것- 쿼리와 커맨드를 항상 분리하라 CQRS
- 객체지향의 원칙을 준수해서 프로젝트 작성하기
- SOLID
- Package 나누기 등
- CLI 프로그래밍을 할 것이므로
CommandLineRunner
를 사용하기
- 사용자는 고유의 아이디를 갖고 있으며, 이름, 패스워드, 이메일의 정보를 갖고 있다.
- 패스워드는 암호화되어야한다.
- 사용자는 로그인을 할 수 있어야 한다.
- 사용자는 로그아웃을 할 수 있어야 한다.
- 사용자는 상품을 장바구니에 담을 수 있어야 한다.
- 사용자는 장바구니에 담긴 상품들을 구매할 수 있어야 한다.
- 사용자는 상품 정보를 확인할 수 있어야 한다.
- 상품은 고유의 상품번호와 상품명, 판매가격, 재고수량 정보를 가지고 있어야한다.
- 상품은 분류(카테고리)를 가진다.
- 인터넷 강의
- 책
- 필기도구
- 한번의 여러개의 상품을 같이 주문할 수 있어야 한다.
- 상품번호, 수량은 반복적으로 입력 받을 수 있어야한다.
- 단, 인터넷 강의의 경우 1명의 사용자가 단 1번만 주문할 수 있다.
- 위와 같은 케이스일 때 중복 주문을 막아야한다.
- 상품의 총 가격이 10,000원 이하일 때 배송비 3000원이 추가된다.
- 단, 인터넷 강의는 배송비가 붙지않는다.
- 상품은 쿠폰이 적용되는 상품과 적용되지 않는 상품이 존재한다.
- 'exit'를 입력하면 프로그램이 종료되어야 한다.
- 유닛테스트 (TDD, BDD)는 필수적으로 작성되어야한다.
- 초기화면
SpringShoppingMall 입니다. 어서오세요 (1. 로그인)
#로그인 후
SpringShoppingMall 입니다. 홍길동님 어서오세요 (1. 상품조회, 2. 장바구니 확인, 3. 결제)
- 상품주문 화면
#초기 화면
======================================================
상품번호 | 카테고리 | 상품 이름 | 가격 | 재고수
000001 필기구 웅샤프 1,000 100
.... (초기에는 DB에 있는 모든 상품 리스트가 나온다) ....
======================================================
장바구니에 담을 상품번호를 입력해주세요 :
#장바구니에 담은 후 화면
======================================================
상품번호 | 카테고리 | 상품 이름 | 가격 | 재고수
000001 필기구 웅샤프 1,000 100
======================================================
장바구니에 현재 1개의 상품(웅샤프, 2개)가 담겼습니다.
추가적으로 진행하실 일이 있으신가요? (1. 상품목록 확인, 2. 장바구니 목록확인, 3. 결제)
- 장바구니 및 결제 화면
#장바구니 목록 화면
======================================================
상품번호 | 상품 이름 | 가격 | 주문 수량 | 배송비 | 총 결제금액
000001 웅샤프 1,000 3 3,000 3,000
======================================================
결제를 진행하시겠습니까? (1. 진행, 2. 초기화면으로)
#결제 진행 후 화면
======================================================
주문번호 | 카테고리 | 상품 이름 | 가격 | 주문 수량 | 총 결제금액
000001 필기구 웅샤프 1,000 3 3,000
======================================================
총 결제 금액 : 6,000원 (배송비 3,000원)
할인 금액 : 0원
결제완료 되셨습니다.
다른 업무를 보시겠습니까? (1. 초기화면으로)
이런 구조로 화면을 그린다고 생각하시면 됩니다.
상품번호 | 카테고리 | 상품명 | 가격 | 재고수 | |
---|---|---|---|---|---|
22010001 | 인터넷강의 | 한 번에 끝내는 React.Js | 69500 | - | |
22010002 | 인터넷강의 | 쿠버네티스를 배워보자 | 158000 | - | |
22010003 | 인터넷강의 | 객체지향의 원리와 이해 | 78500 | - | |
22010004 | 인터넷강의 | 뉴비를 위한 스프링 코어 핵심 강의 | 288800 | - | |
22010005 | 인터넷강의 | 서양고전을 읽으면서 배우는 인문학 강의 | 89600 | - | |
22110001 | 필기도구 | GF1000 샤프 | 15000 | 30 | |
22110002 | 필기도구 | EE-1234 지우개 | 500 | 5 | |
22110003 | 필기도구 | HH-2510 HB 샤프심 (20개입) | 2000 | 15 | |
22110004 | 필기도구 | HH-2513 B4 샤프심 (20개입) | 2000 | 17 | |
22110005 | 필기도구 | HP-0051 형광펜 | 1500 | 3 | |
23110001 | 서적 | 오브젝트 | 20000 | 10 | |
23110002 | 서적 | 객체지향의 사실과 오해 | 13600 | 3 | |
23110003 | 서적 | DDD START! | 15800 | 14 | |
23110004 | 서적 | 토비의 스프링 3.1 (1편) | 38000 | 5 | |
23110005 | 서적 | 토비의 스프링 3.1 (2편) | 38000 | 5 | |
23110006 | 서적 | HTTP 완벽 가이드 | 19800 | 3 | |
23110007 | 서적 | 자바 ORM JPA 프로그래밍 | 29800 | 4 | |
23110008 | 서적 | HeadFirst Design Pattern | 17600 | 3 | |
23110009 | 서적 | Thinking in Java (4th ed) | 26000 | 2 | |
23110010 | 서적 | Effective Java (3rd ed) | 24000 | 1 |