Features : 최종 구현 기능 - Kim-Gyuri/SanrioShop GitHub Wiki
✅ User
- 로그인 성공하면 Access, Refresh 토큰을 받는데, Refresh 토큰은 Mysql에 저장한다. 각각의 토큰은 생명주기와 사용처가 다르게 설정했다.
Access : 헤더에 발급 후 프론트에서 로컬 스토리지에 저장하여 사용한다. Refresh : 쿠키에 발급 받는다.
Access 토큰은 10분, Refresh 토큰은 24시간으로 설정했다. 보안적 차원에서 Access 토큰의 생명주기를 짧게 설정하고, 만료된 Access 토큰은 Refresh 토큰을 사용해 재발급하는 방식으로 관리하도록 구현했다.
- User Level은 UNAUTH, AUTH, ADMIN 총 3가지가 존재하며, 회원가입을 했을 때 AUTH(가입된 회원)으로 설정된다.
번외
아직 기능 구현은 하지 않았지만, 관리자 역할을 추가할 계획이었다. ADMIN을 '관리자' 권한으로 사용될 예정이며, 사용자 상태로 BAN과 NORMAL 두 가지로 구성했다. 관리자가 블록 처리한 사용자는 상태를 BAN으로 변경하여 관리할 수 있도록 하려고 했다.
-
회원가입
- 이메일/닉네임/비밀번호를 입력받는다.
- 이메일과 닉네임 중복 검사를 진행한다.
-
로그인 / 로그아웃
-
회원 정보 수정
- 닉네임을 변경할 수 있다.
- 프로필 이미지를 변경할 수 있다.
✅ Item
- Item 생성권한은 AUTH(가입된 회원)만 가능하다.
- Item 이미지는 GCS에 저장하고, Mysql에 GCS에 저장된 이미지 경로를 저장한다.
-
Item 생성
- 특정 종류의 산리오 캐릭터에 대한 Item을 생성할 수 있다.
- 각 Item은 분류 테마를 설정할 수 있다. 테마는 '인기검색어', '포카 꾸미기', '책상 꾸미기', '다꾸/문구', '필기류', '소품'으로 구성했다.
- Item에 대한 정보로 여러 이미지를 추가하고, 해시태그를 설정할 수 있다.
- 각 이미지와 해시태그는 개별 객체로 생성되어 해당 Item과 연결된다.
-
Item 수정
- 생성된 Item을 수정할 수 있다.
- 수정 시, 추가로 이미지를 추가하거나 해시태그를 추가할 수 있다.
- 수정 시, 기존의 이미지 또는 해시태그를 삭제할 수 있다.
-
Item 조회
- 메인 페이지에서
해시태그와 상품명으로 검색
할 수 있다.- 사용자는 해시태그 또는 상품명을 입력하여 원하는 상품을 조회할 수 있으며, 상품에 표시된 해시태그를 클릭해 검색할 수 있다.
산리오 캐릭터별로 상품을 검색
할 수 있다. 사용자는 특정 캐릭터를 선택하여 해시태그 또는 상품명을 입력하여 조건에 맞는 상품을 찾을 수 있다.
- 카테고리 페이지에서는 '인기 검색어', '포카 꾸미기', '책상 꾸미기', '다꾸/문구', '필기류', '소품' 등의 테마를 통해 상품을 쉽게 찾을 수 있다.
- 선택한
테마에 맞는 해시태그로 검색 조건
을 설정할 수 있으며, 해당 테마에서도 산리오 캐릭터별로 검색할 수 있다.
- 선택한
- 메인 페이지에서
-
Item 삭제
- 생성된 Item을 삭제할 수 있다.
Item에 대한 주문이 있는 경우 삭제할 수 없도록 예외 처리가 되어 있다.
- Item 삭제 시, 연관된 이미지와 해시태그도 함께 삭제된다.
- Item을 삭제할 때, 품절 안내 메시지 Notification이 생성된다.
✅ WishItem
- WishItem 생성은 AUTH(가입된 회원)에게만 허용된다.
- 사용자는 원하는 Item을 WishItem으로 생성할 수 있으며, WishList와 N:1 관계로 장바구니에 담는 찜 상품을 나타낸다.
-
WishItem 생성
- 원하는 Item을 WishItem으로 생성할 수 있다.
-
WishItem 조회
- 특정 사용자가 생성한 WishItem을 조회할 수 있다.
-
WishItem 삭제
- 생성된 WishItem을 삭제할 수 있다.
✅ SaleItem
- SaleItem은 실제로 판매되거나 거래 과정에서 사용되는 상품을 나타낸다.
- SaleStatus는 CONTACT_PENDING("거래 연락 받는 중"), MEETING_SCHEDULED("약속 잡힘"), TRADE_COMPLETE("거래 완료")로 구성된다.
-
판매
- 동시 거래 요청을 고려하여 거래 요청에 대한 SaleItem이 생성되도록 처리했다.
-
주문 조회
- 구매자는 상품의 거래 내용을 조회할 수 있다.
-
판매 조회
- 판매자는 상품의 거래 내용을 조회할 수 있다.
🔑 주요 서비스 처리 과정
서버 연결했을 때 다시 그림추가하자!
-
1. 상품 검색
- 회원가입/로그인
- 검색
- 가입된 회원만 상품을 검색할 수 있다.
- 구매하고 싶은 상품을 산리오 캐릭터별, 상품명, 해시태그, 테마 등 검색조건으로 찾는다.
-
2. 찜등록 과정
- 회원가입/로그인
- 검색
- 찜 등록
- 가입된 회원만 관심있는 상품을 찜 등록할 수 있다.
- 찜 등록했던 상품을 조회할 수 있다.
-
3. 판매 과정
- 회원가입/로그인
- 판매할 상품 등록
- 주문관리
- 가입된 회원만 상품을 판매할 수 있다.
- 판매하고 싶은 상품을 등록한다.
- 판매 페이지에서 판매상품을 관리할 수 있다.
- 알림을 통해 주문을 확인하여, 판매 페이지에서 주문 상세조회를 할 수 있다.
-
4. 구매 과정
- 회원가입/로그인
- 상품 검색
- 상품 조회
- 구매
- 주문 리스트 조회
- 회원가입과 로그인을 진행한다.
- 구매를 원하는 상품을 검색한다.
- 주문 리스트에서 주문을 확인한다.