온라인 쇼핑몰 구현

나만의 비즈니스 모델을 도입한 상품 공급 시스템(쇼핑몰)

프로젝트 목표(평가 기준) 🎯

  1. 계획에 맞춰 기능 구현
  2. 추상화된 기술 최소한으로 사용
    • lombok 없이 코드 작성
    • JDBC 사용 ➨ JDBC Template 적용 ➨ JPA 적용
    • spring boot에서 spring으로 이식
  3. 모든 기능에 대해 테스트 코드 작성
  4. spring에 대해 깊이 이해하기
  5. 복잡한 로직, 쿼리 구현 ➨ clean code로 리팩토링
  6. 최대한 실제 서비스에 가까운 애플리케이션 구현

요구사항

핵심 비즈니스 로직

해당 서비스가 수익을 내는 방법은 다음과 같다.

A가 P원짜리 상품을 산다.
A는 P/N+@원을 지불하고 1/N의 확률로 상품을 구매하는데 성공한다.
k*N번을 초과해서 실패할때마다 k*N% 할인 쿠폰을 지급한다.

P는 상품원가이다.

회원 관리

  • 회원 가입 및 로그인 기능
  • 회원의 권한은 일반 판매자 관리자 로 구분된다.

일반

일반(normal)회원은 상품을 구매하는 회원이다.

  • 등록된 상품, 판매자회원을 조회할 수 있다.

판매자

판매자(vendor)`는 상품을 판매하는 회원이다.

  • 판매자 회원을 조회할 수 있다.
    • 판매자 이름, 고유번호
    • 판매자 이름은 중복될수 없다.
  • 모든 판매자회원은 차수(degree)를 가진다.
    • 0 - 서비스 운영자가 직접 상품을 판매
    • 1 - 그 외의 경우. 서비스 사용료를 지불한다.

관리자

관리자(admin)회원은 서비스를 운영한다.

  • 모든 데이터에 대해 CRUD가 가능하다.

주문 관리

  • 관리자에 의해 생성/수정/삭제 가능
  • 주문은 다음과 같은 상태를 가진다.
    • 결제 완료/배송 중/배송 완료/취소
  • 하나의 판매자당 여러 주문이 있고, 하나의 주문은 하나 이상의 주문 상세와 연결되어 있다.
  • 주문 상세는 하나 이상의 결제수단 내용을 담고 있다.
    • 결제수단은 카드, 포인트, 쿠폰으로 구성된다.
  • 주문은 검색 가능하다.
    • 판매자, 주문 일시

보상/보정 관리

보상 - 서버 다운 등의 시스템의 오류 발생시 판매자에 대한 보상 정책 이다.

  • 관리자에 의한 생성/수정/삭제 가능
  • 경우에 따라 +/- 보상 및 보정금이 추가될 수 있으며 보상 내용에 관해 확인 가능
  • 지급된 판매자에 대한 정산 대상에 포함되는 데이터이다.
  • 보상은 검색 가능하다.
    • 판매자 번호, 보상일시

지급금 관리

정산 - 일반회원이 결제한 금액 중 판매자가 받을 수 있다.

  • 일반적으로 누군가가 실제로 받을 수 있는 금액을 계산한다는 뜻으로 사용된다.

지급 - 판매자가 받을 금액을 판매자에게 전달하는 것이다.

  • 판매자회원은 지급금을 요청할 수 있다.
    • 지급금 요청시 지급 날짜를 지정한다.
  • 관리자는 지급금을 승인할 수 있다.
    • 지급금이 생성된 상세 내역을 확인할 수 있다.
  • 지급금 상세 보기를 할 수 있다.
    • 지급금에 포함된 주문 및 보상 내역을 확인할 수 있다.
  • 지급금을 검색할 수 있다.
    • 판매자 번호, 지급 기준 연월

서버 개발

여러 형태의 클라이언트에서 서비스를 제공받을 수 있도록 REST API로 구현한다.

계획

날짜 내용 비고
07.30 - 08.01 프로젝트 구상, 요구사항 정리, 컴포넌트와 기능 정의, DB 설계 컴포넌트, DB 설계
08.02 - 08.06 인증/인가, 회원가입, 로그인, 상품 등록 자세한 내용
08.07 - 08.08 리팩토링 자세한 내용
08.09 - 08.13 주문에 대한 CRUD 자세한 내용
08.14 - 08.15 리팩토링 자세한 내용
08.16 - 08.20 정산 자세한 내용
08.21 - 08.22 리팩토링 자세한 내용

클라이언트

reference

Comments