옷을 고르는 일은 즐겁지만 때때로 까다롭고 시간이 많이 소요될 수 있습니다. 수많은 선택지 중에서 마음에 드는 한 두 벌의 옷을 찾아내는 것은 실제로 상당히 어려운 일입니다.
그럼에도 불구하고, 이미 우리가 좋아하는 스타일이나 코디가 명확하다면, 이러한 과정은 훨씬 더 빠르고 쉽게 진행될 수 있습니다. 이런 생각에서 출발하여, 사용자가 원하는 스타일과 유사한 제품을 추천해주는 패션 거래 시스템을 기획하게 되었습니다.
이렇게 하면, 사용자는 수많은 제품 중에서 직접 골라야 하는 불편함을 줄일 수 있으며, 각자의 개인적인 스타일에 맞는 아이템을 더욱 빠르게 찾아낼 수 있을 것입니다.
트렌드픽은 사용자 가입 시 지정한 선호 태그를 활용하여 맞춤형 상품 추천을 제공합니다. 이런 방식은 사용자에게 보다 효율적이고 개인화된 쇼핑 경험을 제공하는 데 초점을 맞추고 있습니다.
사용자가 선호하는 스타일과 코디에 기반하여, 우리의 서비스는 그들에게 가장 적합한 상품들을 추천합니다. 이를 통해 고객은 어떤 상품을 선택하고 구매할지에 대해 더욱 신중하고 효과적으로 결정할 수 있습니다. 이러한 방식은 고객의 쇼핑 경험을 더욱 즐겁고 만족스럽게 만들 것입니다.
Java17, Gradle, SpringBoot 3.x. Spring Data JPA, H2, Spring Security, Spring Batch, JUnit5, Mockito
NCP - Server, ObjectStorage, Nginx, Redis, Docker, Github Actions, Kubernates, Confluent Kafka, Pinpoint, Apache JMeter,
Git, Discord, Slack
![image](https://private-user-images.githubusercontent.com/26915908/277575904-5cba7cb4-a30c-40c4-8169-966cf441ab5c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU5ODQ5OTIsIm5iZiI6MTcyNTk4NDY5MiwicGF0aCI6Ii8yNjkxNTkwOC8yNzc1NzU5MDQtNWNiYTdjYjQtYTMwYy00MGM0LTgxNjktOTY2Y2Y0NDFhYjVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEwVDE2MTEzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY3YzBmM2NkZTgyM2Y0ZDI4ZjZiODQwMTY5ZDIxNjJlNjMyZmZiOTA0NmJlYjEyYTg0NTZlOTQ0NzBiNmViMDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2cvPh6ZCHedyizSmFoJmB342Xt25Ah6eIzynX0D71t8)
문제 이해
: 처음으로 문제를 정의하고 이해하는 단계입니다. 패션 이커머스 시스템을 개발하려는 목표를 설정하고 그에 따른 대략적인 요구사항을 도출합니다.사용자와의 상호작용
: 다음으로 사용자의 입장에서 시스템을 어떻게 사용할지 고민합니다. 사용자의 필요한 기능을 파악하고 이를 시스템의 요구사항으로 변환합니다.세부 요구사항 도출
: 각 요구사항의 세부사항을 정의합니다. 예를 들어, 상품에 대한 요구사항을 정의하면서 상품 리스트, 상품 검색, 상품 상세페이지 등의 세부 요구사항을 도출합니다.요구사항 검토 및 확정
: 도출한 요구사항을 검토하고 수정, 보완한 뒤 최종적으로 확정합니다. 이 과정에서 각 요구사항이 시스템의 목표와 잘 부합하는지, 사용자의 요구를 충족시키는지 등을 검토합니다.요구사항 문서화
: 마지막으로 도출한 요구사항을 문서화합니다. 이 문서는 개발 과정에서 참조할 수 있도록 구체적이고 명확해야 합니다.
요구사항 명세서
RQ-ID | 화면 명 | 요구사항 명 | 요구사항 내용 | 날짜 | 진행사항 | 버전명 | 우선순위 |
---|---|---|---|---|---|---|---|
RQ-0001 | 공통 | 회원 가입 | 회원을 등록한다. 관리자/판매자/고객 | 미반영 | 0.0.1 | 1 | |
RQ-0002 | 공통 | 로그인 | 회원이 로그인을 한다. | 미반영 | 0.0.1 | 1 | |
RQ-0003 | 관리자 | 상품 등록 | 판매자가 상품을 등록한다. 사진, 상품 명, 단가, 상세페이지, 태그가 포함된다. |
미반영 | 0.0.1 | 1 | |
RQ-0004 | 관리자 | 상품 내용 변경 | 판매자가 상품의 내용을 수정한다. | 미반영 | 0.0.1 | 2 | |
RQ-0005 | 관리자 | 상품 삭제 | 판매자가 상품을 삭제한다. | 미반영 | 0.0.1 | 3 | |
RQ-0006 | 메인 | 상품 진열 | 등록된 전체 상품을 보여준다 태그 기반으로 추천된 상품의 리스트를 표시한다. (페이징) |
미반영 | 0.0.1 | 1 | |
RQ-0007 | 상품페이지 | 상품 상세 | 등록된 상품의 내용을 보여준다. (상세페이지 포함) | 미반영 | 0.0.1 | 1 | |
상품페이지 | 주문 및 장바구니 | 상품 옵션 선택 및 즉시 주문/ 장바구니 | 1 | ||||
상품페이지 | 리뷰 및 평점 | 하단에 해당 상품의 후기를 작성하고 볼 수 있도록 한다 | 2 | ||||
상품페이지 | Q&A | - Q&A를 남길 수 있도록 한다. (브랜드 Q&A) | 3 | ||||
RQ-0008 | 메인 | 검색 | 검색창을 통해 검색을 하면 해당하는 상품을 보여준다 | 미반영 | 0.0.1 | 2 | |
메인 | 정렬 | 최신순, 오래된순, 평점높은순, 평점낮은순, 구매높은순 정렬 기준을 선택하면 상품이 정렬되어 리스팅된다. 카테고리를 선택하면 해당 카테고리에 포함된 상품만 리스팅된다. (대→소) |
2 | ||||
RQ-0009 | 메인 | 상품 재고 | 상품 진열창이나, 상세 페이지에서 어느정도 미만의 재고가 남았을시, 재고를 표시한다. | 미반영 | 0.0.1 | 3 | |
RQ-0010 | 장바구니 | 상품 목록 | 장바구니에 추가한 상품들의 수량과 단가가 표시된다. 하단에 전체 주문 금액과 결제 버튼이 표시된다. |
미반영 | 0.0.1 | 1 | |
RQ-0011 | 장바구니 | 상품 주문 | 장바구니에서 상품을 주문한다. (일부선택가능) 기본으로 전체 선택 되어 있게 한다 |
미반영 | 0.0.1 | 1 | |
RQ-0012 | 결제 | 성공 | 주문시에 추가한 상품들의 결제가 성공한다. 토스 페이먼츠를 활용한다. 필요한 데이터: 주문자, 주문 상품명, 지불 방법, 지불 금액 결제가 성공한 상품들의 재고가 줄어든다. 주문 태그가 포함된 상품들의 추천 점수가 올라간다. |
미반영 | 0.0.1 | 1 | |
RQ-0013 | 주문 | 주문취소 | 고객이 주문을 취소한다. 필요한 데이터: 결제번호, 취소 사유 결제를 취소하고 환불을 진행한다. 결제가 취소된 상품들의 재고가 추가된다. |
||||
미반영 | 0.0.1 | 1 | |||||
RQ-0014 | 마이페이지 | 주문 내역 | 주문 내역이 보여진다. 진행 중인 주문의 경우 배송 상태가 보여진다 주문 취소가 가능한 단계인 상품의 경우 주문 취소가 가능하다r |
미반영 | 0.0.1 | 1 | |
RQ-0015 | 마이페이지 - 주문 내역 | 배송상태 | 배송 상태를 보여준다. | 미반영 | 0.0.1 | 3 | |
RQ-0016 | 마이페이지 - 주문 내역 | 환불 | 주문 내역에 대해 일정기간 내에 환불을 할 수 있어야 한다. 주문 내역 하단에 환불 버튼이 있다. 관리자에게 환불 요청 내역이 전달된다 |
미반영 | 0.0.1 | 1 | |
RQ-0017 | 마이페이지 | 개인 정보 수정 | 회원은 개인정보를 변경할 수 있다. 배송지를 관리할 수 있다. 비밀번호를 변경할 수 있다. 환불계좌를 설정할 수 있다. |
미반영 | 0.0.1 | 2 | |
RQ-0018 | 고객센터(트렌드픽 관리자) | 게시판 | 관리자는 질문이 많은 주제에 대해 FAQ를 정리하여 보여준다. | 미반영 | 0.0.1 | 3 | |
RQ-0019 | 고객센터(트렌드픽 관리자) | 게시판 | 관리자는 고객센터 게시판에 적힌 질문에 대한 답변을 빠르게 작성해서 보여준다. | 미반영 | 0.0.1 | 2 | |
RQ-0020 | 고객센터 | 게시판 | 회원은 게시판의 사이트에 관련한 질문을 남길 수 있다. 질문이 게시된 날짜가 포함되어야 한다. |
미반영 | 0.0.1 | 2 | |
RQ-0021 | 고객센터 | 게시판 | 회원은 본인이 남긴 질문의 답변을 확인 한다. | 미반영 | 0.0.1 | 2 | |
RQ-0022 | 메인 | 알림 | 회원은 본인의 주문의 대한 알림, 사이트의 대한 알림을 받는다. | 미반영 | 0.01 | 3 |
API 명세서
Git 컨벤션
main / development / feat, refactor, …/이슈번호_기능명
development 브랜치에서 실제 개발을 완료하여, 최종 배포코드를 main에 Pull Request
메소드 별로 issue생성
브랜치 명 : feat, refactor, …/issue번호_issue명
PR 생성 명 : [Feat, Refactor, …/issue번호] 이슈 내용
Commit 메세지 구조
Message Type : Subject // 작업 내용을 간단하게 요약해서 기술합니다.
Body // 왜, 무엇을 변경하였는지 기술합니다. 작성하지 않아도 괜찮습니다.
Footer // issue tracker를 사용하는 경우 참조한 issue tracker ID를 기술합니다. 작성하지 않아도 됩니다.
코딩 컨벤션
개별 패키지 구조
도메인 → controller, service, repository, (domain→ entity, dto), exception
인텔리제이 네이버 코딩 컨벤션
그라운드룰
💡 1. 사소한 것이라도 말을 하자!
💡 2. 나만 아는 지식이 없도록 하자!
💡 3. 어떠한 것을 하고자 할 때는 동료들에게 근거를 제시하자!
💡 4. 지각하지 말자!
💡 5. 타인의 발언을 존중하자!
💡 6. 시간은 모두에게나 중요하다. 약속에 늦지말자!
💡 7. 개발중인 부분을 모두 공유하자!
- 회원가입/로그인
- 핵심 기능: 선호태그 기반 상품 추천
- 상품 검색
- 상품 메인/서브 카테고리
- 전체 관리자일 경우
- 출금 승인/취소
- 브랜드 관리자일 경우
- 상품 등록, 수정, 삭제/ 할인 적용/ 쿠폰 발급 / 정산 데이터 생성/ 출금 신청
- 일반 유저일 경우
- 구매 / 리뷰 작성 / 개인 회원 정보 관리
이수호 | 권혜영 | 이재준 | 제문경 |