프로젝트/프로젝트 과정
[사이드 프로젝트] 한정 수량 인기 상품 구매 서비스 만들기: 요구 사항
예슬
2024. 9. 26. 17:15
결제 시스템과 동시성 문제를 다룰 수 있는 프로젝트를 간단하게 구현해보고자 고민하던 중, 한정된 수량의 인기 상품을 특정 시간에 판매하는 서비스를 만들기로 결정했습니다.
기능 요구사항
핵심 기능
- 특정 시간(예: 10시)에 품절 대란인 물건이 판매된다.
- 사용자는 1인당 최대 3개까지만 구매 가능하다.
회원 가입
- 사용자 정보
- 고유 사용자 번호: 각 사용자는 고유한 번호를 가진다.
- 사용자 명:
- 최소 2자, 최대 6자로 제한된다.
- 로그인 아이디:
- 이메일 주소를 사용하여 로그인할 수 있다.
- 비밀번호:
- 비밀번호는 암호화되어 DB에 저장된다.
로그인
- 사용자는 로그인 아이디(이메일)와 비밀번호를 입력하여 로그인할 수 있다.
내 정보 조회
- 사용자는 자신의 정보를 조회할 수 있다.
물건 구매
- 구매 절차
- 사용자는 한 번에 하나의 물건만 구매할 수 있다.
- 한 물건당 최대 3개까지 구매가 가능하다.
- 구매 완료 시 조회
- 구매 완료 후, 신청 내용과 결제 금액을 최신순으로 조회할 수 있다.
물건 데이터 예시
물건 번호 | 물건 명 | 금액 |
---|---|---|
1 | 두바이 초콜릿 | 10,000 |
2 | 두바이 초콜릿 라면 | 3,000 |
예외 처리
- 로그인 관련 예외
- 중복된 로그인 아이디 생성
- 이메일 형식에 맞지 않는 로그인 아이디 입력
- 비밀번호 불일치
- 인증
- 잘못된 토큰 전송 시 인증 실패 처리
- 구매 관련 예외
- 물건 재고가 부족할 때
- 1인당 구매 가능 개수를 초과한 경우
- 물건이 이미 품절된 경우 예외 처리
- 구매 요청 시 결제 실패(결제 시스템 오류 등) 시
- 잘못된 물건 번호 또는 없는 물건 번호로 구매 요청 시