728x90
내용
프로젝트명 : JPA Shoes Shopping Mall Project
기간 : 23.07.31-23.08.03
다양한 옵션(사이즈, 컬러)이 있는 신발을 구매, 결제, 배송 등의 기능을 통해서 JPA의 흐름과 관계 매핑에 익숙해지고자 신발 쇼핑몰을 주제로 정했다.
view img와 디자인 kream과 abc마트 참고
<추가 구현 필요>- security, jwt, oauth와 스케줄러를 추가 구현 예정
- 부하가 걸리는 로직에서는 nosql 튜닝
- swagger나 postman 작성 예정
Stack
spring boot
security
jwt
oauth
spring scheduler
docs tool (고민중)
spring boot
redis or mongo
테이블 설계
- alert : 재고에 따라 알림을 요청하는 테이블
- carts : 회원 장바구니
- deliveries : 회원의 배송정보
- grade : 회원의 등급 정보
- grade_history : 회원의 등급의 변경이력
- order_histories : 회원의 주문 이력
- interests : 회원의 관심정보
- inventories : 상품의 재고 정보
- login_history : 로그인 이력
- members : 회원정보
- options : 상품의 사이즈 정보
- options2 : 상품의 컬러 정보
- orders : 주문정보
- payment_history : 결제 이력
- payments : 결제 정보
- point : 회원의 포인트 정보
- products : 상품 정보
- qas : 상품의 Q&A 정보
- review_member : 리뷰와 멤버의 중간 테이블
- reivews : 리뷰 정보 테이블
관계 설정
One-to-One
필요한 1:1 관계들은.. 해당테이블에 다 합쳐주었음.
One-to-Many
- Member 와 Delivery
- Member 와 Payment
- Member 와 Payment
- Member 와 Order
- Member 와 Carts
- Member 와 reviewMembers
- Member 와 qas
- Products 와 options
- Products 와 options2
- Products 와 interests
- Products 와 qas
- Products 와 reviews
- Products 와 orders
- Products 와 inventories
- Products 와 carts
- Products 와 deliveries
- Order 와 deliveries
중간테이블
- reviews_member
구현기능
member
- 회원가입 ( 이메일 인증 )
- 로그인 ( security + jwt, Oauth )
- 회원 데이터 수정 ( 비밀번호 변경 및 정보 변경 )
- 회원 비밀번호 찾기 ( 이메일 임시비밀번호 발송 )
- 회원 로그인 이력 노출
- 회원 포인트 충전
- 회원 포인트 등급 및 정보 노출
- 회원 장바구니 리스트
- 회원 관심정보 추가 삭제
- 회원 주문내역 노출
- 회원 배송내역 노출
- 상품 리스트 관계 매핑 후 노출
- 상품 상세보기
- 상품 Q&A 추가 ( 답변은 admin page 미완성으로 db 에 직접 수정 )
- 상품 리뷰 작성
- 상품 좋아요 ( 미완성 )
- 상품 사이즈 및 컬러 복수 쿼리 작성
- 배송 내역 상태 1분씩 다음단계로 이전 ( 미완성 )
- 구매시 -> 주문테이블 데이터 적재 -> 주문이력 테이블 데이터 적재 -> 재고 테이블 업데이트 -> 결제 테이블 데이터 적재 -> 결제 이력 테이블 데이터 적재 -> 배송 테이블 데이터 적재 -> 회원 포인트 차감 -> admin 테이블 포인트 추가
- test코드검증 jacoco 와 api docs 는 추후 적용 예정
- 추후 필요에 따라 nosql 튜닝 예정
- 배송 단계 스케줄러를 사용해서 1분단위로 배송 status 변경 후 배송완료시 해당 고객에세 socket 으로 실시간 알람 전송
기여
- 회원가입 ( 이메일 인증 )
- 회원 데이터 수정 ( 비밀번호 변경 및 정보 변경 )
- 회원 비밀번호 찾기 ( 이메일 임시비밀번호 발송 )
- 회원 로그인 이력 노출
- 회원 포인트 충전
- 회원 포인트 등급 및 정보 노출
- 상품 사이즈 및 컬러 복수 쿼리 작성
VIEW
main
상품 레이아웃
로그인
회원가입
mypage
장바구니
상품 상세
구매 및 배송내역
느낀점
혼자서 설계부터 기능 구현을 해볼 수 있는 프로젝트여서 서버가 어떻게 돌아가는지 알 수 있어서 좋았다.
프론트엔드에서 화면을 구현하면서 의사소통할 수 있는 경험을 할 수 있어서 실무에서 어떻게 일을 하는지 짧게 나마 실습해볼 수 있었다. early return을 통해 위에서부터 예외처리를 해두어 코드가 깔끔해지는 경험을 했다.
clean code를 위해 공부해야겠다.
git(dev2 브랜치) - https://github.com/sesam-me/ShoppingMall
'Project > Collabo Project' 카테고리의 다른 글
[동물전쟁] 아이템 합성 서비스(Kafka 사용) (1) | 2023.11.09 |
---|---|
[동물전쟁] Socket으로 전체 공개 채팅 만들기(MySQL저장) (0) | 2023.10.22 |
[동물전쟁] Socket에 Token받아오기 (0) | 2023.10.22 |
직무별 채용 사이트 추천 서비스 (1) | 2023.09.06 |
영화추천 웹페이지 만들기 (0) | 2023.06.21 |