Use Case Diagram
ERD
API 명세서
https://hhero.gitbook.io/99-5/
회원가입 - 항해99 레벨5
http://ec2-43-202-207-123.ap-northeast-2.compute.amazonaws.com/api
hhero.gitbook.io
요구사항 (구현 완료)
- 회원 가입 기능
- 이메일, 비밀번호, 성별, 전화번호, 주소, 권한을 저장할 수 있습니다.
- ADMIN, USER 권한이 있습니다.
- 이메일은 올바른 이메일 형식을 지켜야 합니다.
- 비밀번호는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 합니다.
- 회원가입 성공을 확인할 수 있는 값을 반환합니다.
- ex) HTTP Status Code, Error Message …
- 이메일, 비밀번호, 성별, 전화번호, 주소, 권한을 저장할 수 있습니다.
- 로그인 기능
- 회원은 이메일, 비밀번호를 입력하여 서버에 로그인을 요청할 수 있습니다.
- 로그인 성공 시, 회원의 정보와 JWT를 활용하여 토큰을 발급하고, 발급한 토큰을 Header에 추가한 후 로그인 성공을 확인할 수 있는 값과 함께 반환합니다.
- ex) HTTP Status Code, Error Message …
- 상품 등록 기능
- 상품명, 가격, 수량, 소개, 카테고리를 저장할 수 있습니다.
- 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
- ADMIN 권한을 가진 회원만 강사 등록이 가능합니다.
- 카테고리 종류는 자율입니다.
- 등록된 상품의 정보를 반환 받아 확인할 수 있습니다.
- 상품명, 가격, 수량, 소개, 카테고리를 저장할 수 있습니다.
- 선택한 상품 조회 기능
- 선택한 상품의 정보를 조회할 수 있습니다.
- 모든 사용자가 상품을 조회할 수 있습니다.
- 선택한 상품의 정보를 조회할 수 있습니다.
- 상품 목록 조회 기능
- 등록된 상품들을 조회할 수 있습니다.
- 모든 사용자가 상품을 조회할 수 있습니다.
- 페이지 별로 상품을 정해진 숫자만큼 순서대로 조회할 수 있습니다. (Paging)
- 조회된 상품 목록은 선택한 기준에 의해 정렬됩니다.
- 상품명, 가격 중 기준을 선택할 수 있습니다.
- 내림차순, 오름차순을 선택할 수 있습니다.
- 등록된 상품들을 조회할 수 있습니다.
- 장바구니 추가 기능
- 선택한 상품을 장바구니에 추가할 수 있습니다.
- 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
- 회원만 장바구니에 상품을 추가하는 것이 가능합니다.
- 장바구니에 추가된 상품은 구매할 만큼의 수량으로 선택될 수 있습니다.
- 장바구니에는 여러 개의 상품이 추가될 수 있습니다.
- 장바구니 추가 성공을 확인할 수 있는 값을 반환합니다.
- ex) HTTP Status Code, Error Message …
- 선택한 상품을 장바구니에 추가할 수 있습니다.
- 장바구니 조회 기능
- 장바구니에 추가된 상품들의 정보와 수량을 조회할 수 있습니다.
- 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
- 회원만 장바구니 조회가 가능합니다.
- 장바구니에 담긴 상품들의 총 결제 금액을 확인할 수 있습니다.
- 장바구니에 추가된 상품들의 정보와 수량을 조회할 수 있습니다.
- 장바구니 수정 기능
- 장바구니에서 선택한 상품의 수량을 수정할 수 있습니다.
- 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
- 회원만 장바구니 수정이 가능합니다.
- 장바구니 수정 성공을 확인할 수 있는 값을 반환합니다.
- ex) HTTP Status Code, Error Message …
- 장바구니에서 선택한 상품의 수량을 수정할 수 있습니다.
- 장바구니 삭제 기능
- 장바구니에서 선택한 상품을 삭제할 수 있습니다.
- 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
- 회원만 장바구니 삭제가 가능합니다.
- 장바구니 삭제 성공을 확인할 수 있는 값을 반환합니다.
- ex) HTTP Status Code, Error Message …
- 장바구니에서 선택한 상품을 삭제할 수 있습니다.
- 공통 기능
- 로그인 요청의 비밀번호 불일치 등 API 요청의 예외가 발생하는 모든 경우에 대해서 실패(예외상황)에 대해 판단할 수 있는 Status Code, Error 메시지등의 정보를 반환합니다.
🔥 추가 구현 기능
- 상품 이미지 기능
- 상품의 이미지를 업로드할 수 있습니다.
- AWS의 S3를 사용하여 저장합니다.
- 상품의 이미지를 업로드할 수 있습니다.
- 서비스 배포
- AWS의 EC2와 RDS를 사용하여 ‘스파르타 굿즈 판매 사이트’ 프로젝트를 배포합니다.
- Spring Security를 적용하여 인증/인가를 구현합니다.
- Security의 Secured 기능을 사용하여 권한별로 API를 제어할 수 있습니다.
회고
- EC2 인스턴스 RDS랑 VPC로 연결해서 EC2 인스턴스에서 내부에만 RDS 접근이 가능한데, EC2 인스턴스에서 mysql로 RDS로 접근해서 접속 테스트하는데 시간을 많이 썼다.
- 장바구니 ERD 짜는데 생각을 하다가 정배로 갔는데, 다른 조의 피드백을 들었는데
현 문제점과 바뀐 후 개선되는 점을 파악 해야 할 것 같다. - 스프링 시큐리티에서 JWT에 대한 토큰 만료나 이슈가 생겼을 때 응답 메시지를 반환을 안해줘서 파악 필요
깃 로그
하루만에 끝내긴 했다.
'항해99' 카테고리의 다른 글
항해99 주특기 대기 (2일차) (0) | 2024.01.11 |
---|---|
항해99 주특기 대기 (1일차) (0) | 2024.01.10 |
항해99 주특기 Spring Lv.4 (1일차) (1) | 2024.01.08 |
항해99 주특기 Spring Lv.3 (1일차) (3) | 2024.01.05 |
항해99 주특기 Spring Lv.2 (1일차) (1) | 2024.01.04 |