프로젝트 기간 : 2024.06.11. ~ 2024.08.02
스프링 부트와 클라우드 서비스를 활용한 온라인 도서 쇼핑몰 프로젝트입니다.
https://www.erdcloud.com/d/vD5T9WrpW2PMZZvR2 ERDCloud
활용하여 버전별로 관리
Github에서 제공하는 Projects
를 활용하여 프로젝트 관리
- 주마다 Scurm Master를 변경하는 방식으로 진행
- 매일 전날 했던 것, 오늘 할 것 정리하고 회고
- Road Map, Kanban 활용
- 일정 관리 및 진행 사항 공유
Account : https://www.5ritang.store/auth
5ritang Study repository : https://github.com/nhnacademy-be6-5ritang/5ritang-study
- 프로젝트를 진행하면서 학습 내용 공유 저장소를 이용하여 습득한 기술을 공유하였습니다.
naver coding convention
git convetion
- Feat: 새로운 기능을 추가
- Fix: 버그 수정
- Design: CSS 등 사용자 UI 디자인 변경
- !BREAKING CHANGE: 커다란 API 변경의 경우
- !HOTFIX: 급하게 치명적인 버그를 고쳐야하는 경우
- Style: 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
- Refactor: 프로덕션 코드 리팩토링
- Comment: 필요한 주석 추가 및 변경
- Docs: 문서 수정
- Test: 테스트 코드, 리펙토링 테스트 코드 추가, Production Code(실제로 사용하는 코드) 변경 없음
- Chore: 빌드 업무 수정, 패키지 매니저 수정, 패키지 관리자 구성 등 업데이트, Production Code 변경 없음
- Rename: 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
- Remove: 파일을 삭제하는 작업만 수행한 경우
역할 | 상세 내용 |
---|---|
인프라 | |
- CI/CD 구축 | |
포인트 | |
- 주문 시 포인트 적립 및 사용 | |
- 포인트 정책 구현 | |
주문 | |
- 비회원 & 회원 주문 처리 | |
- 주문 내역 조회 | |
- 환불 처리 | |
- 관리자 주문 처리 | |
포장지 및 배송 | |
- 포장지 선택 | |
- 배송 관리 | |
재고 및 결제 | |
- 재고 처리 | |
- 결제 처리 | |
- 결제 취소 | |
- 결제 상태에 따른 주문 상태 변경 |
- Git Action CI/CD
- Toss Payments
- DAUM 주소 API
역할 | 상세내용 |
---|---|
인프라 | |
- 쿠폰서버 구현 및 CI/CD 적용 | |
- Project의 Springcloud eureka, gateway 서버구축하여 MSA기반 환경 구현 | |
쿠폰 | |
- 쿠폰정책 생성, 편집, 폐기, 조회(페이지네이션) | |
- 정책 생성 시 도서 카테고리 검색 | |
- 쿠폰템플릿 발급, 조회(페이지네이션) | |
- 사용자 쿠폰 발급, 사용됨 처리, 조회(페이지네이션, 검색) | |
- 주문 시 쿠폰 선택 기능(비회원/회원), 쿠폰 계산 처리 | |
- Spring Scheduler를 사용하여 생일 쿠폰, 쿠폰 사용됨 처리 구현 | |
- Querydsl을 사용하여 코드를 간결하게 보기에하고 기존 jpql로 작성된 코드의 불편한점을 개선 | |
- N+1문제를 확인하고 이를 개선하기위해 노력함 | |
- Coupon REST API 문서를 Swagger를 통해 배포 서버에서 볼 수 있게 함 | |
- 사용자 쿠폰 발급 시 RabbitMQ를 이용하여 발급 처리 |
- rabbitmq
- spring scheduler
- querydsl
- springcloud, eureka, gateway
역할 | 상세 내용 |
---|---|
인프라 | |
서버별 Logback, Log & Crash 적용 | |
Secure Key Manager | |
Back-end Server 이중화 | |
장바구니 | |
비회원 & 회원 장바구니 | |
도서 재고량에 따른 장바구니 추가 구현 | |
빈번한 장바구니 조회 성능 최적화 및 영구적 유지 | |
장바구니 구현 시 Redis와 MySQL 사용 | |
도서 | |
도서, 카테고리, 태그, 출판사, 저자, 도서상태 관리 | |
도서 카테고리별 검색 및 정렬 | |
모든 도서는 하나 이상의 카테고리에 속해야 하며, 카테고리는 2단계 이상으로 구성 | |
0개 이상의 Tag를 지정 가능 | |
회원별 도서 위시리스트 구현 | |
WYSIWYG Editor를 사용한 책 설명 등록 (toast-editor) | |
리뷰 | |
리뷰 사진 업로드 구현 | |
리뷰 포인트 적립 (리뷰: 200포인트, 리뷰+사진: 500포인트) | |
리뷰 조회 (도서별, 회원별, 리뷰 유형별) | |
리뷰 작성 시 1~5점의 평가 점수 부여 및 수정 가능, 삭제 불가 | |
도서 상세보기 페이지에 사용자 리뷰 및 평점 표시 | |
주문한 도서 중 배송완료된 도서에 대해서만 리뷰 작성 | |
배송 | |
배송비 정책 관리 |
- Log & Crash
- Secure Key Manager
- 워지윅 에디터
- Redis 캐싱
역할 | 상세내용 |
---|---|
인프라 | |
- Elastic Search, NHN Cloud 인스턴스 초기 설정 | |
도서 | |
- 외부 API(네이버, 알라딘) 활용한 도서 정보 가져오기 및 매핑 | |
- NHN Cloud Image Manager 이미지 API를 사용해 이미지 가져오기 및 업로드 | |
검색 | |
- LogStash, Kibana, Elastic 초기 설정 | |
- 저자, 도서, 태그, 출판사 기준으로 검색 기능 구현 |
- Elastic Search
- LogStash
- Kibana
- NHN Cloud
- 외부 API (네이버, 알라딘)
- NHN Cloud Image Manager
역할 | 상세내용 |
---|---|
인프라 | |
Frontend Server 이중화 및 로드 밸런싱 | |
인증 및 인가 | |
JWT를 이용한 회원 인증 및 인가 구현 | |
휴면 및 탈퇴 회원의 인증 단계 방지 | |
회원 | |
회원(계정) 가입, 정보 수정, 휴면 처리, 탈퇴 API 구현 | |
회원 가입 시 중복 방지와 휴면 계정 복구를 위한 이메일 인증 | |
회원 주소 등록, 수정, 삭제 기능 구현 | |
회원 등급 정책 및 회원에게 등급 부여 구현 | |
회원 상태(휴면 및 탈퇴) 스케줄링 활용 구현 | |
회원 및 관리자 권한 정책 및 부여 구현 | |
프론트엔드 | |
사용자 전용 UI 리뉴얼 및 템플릿 구축 |
- NHN Cloud
- Nginx
- JWT
- Spring Scheduler
- Java MailSender
- Daum 주소 API