- setup.sh 스크립트를 실행하여 서버를 세팅한다.
- setup.sh 스크립트는 다음과 같은 작업을 수행한다.
- orm
typeorm, prisma
, 패키지 매니저npm, yarn, pnpm
선택 - npm install | yarn | pnpm install 실행
- orm
./setup.sh
- 미션은 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 세 가지로 구성되어 있다.
- 세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.
- 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.
- 미션 구현을 완료한 후 GitHub PR 요청을 통해 제출합니다.
- 터미널에서
npm run test
명령을 실행하여 모든 테스트가 아래와 같이 통과하는지 확인한다.
Ran all test suites.
판매금액 일일 정산 배치 시스템을 구현한다. 해당 배치 시스템은 한국시간 기준 매일 자정에 실행되며, 판매 금액을 정산한다.
판매자마다 구매확정 상태인 주문건에 한해 중개 수수료(현재 5%, 수수료율은 추후 변동 가능한 상태)를 제외한 판매 금액을 정산하며, 정산된 금액을 판매자에게 지급된다.
주문 상태값에는 결제완료
, 배송중
, 배송완료
, 구매확정
, 취소
가 있다.
결제완료
상태의 주문건은 결제가 완료되고, 배송이 시작되기 전 상태이다.배송중
상태의 주문건은 배송이 시작된 상태이다.배송완료
상태의 주문건은 배송이 완료된 시점의 상태이다.구매확정
상태의 주문건은 구매자가 배송완료 이후 해당 주문건에 대해 구매 확정을 한 상태이다.- 구매자가 구매 확정을 하지 않은 주문건의 경우 5일이 지나면 자동으로 구매 확정된다.
취소
상태의 주문건은 구매자가 주문 취소를 한 상태이다.
백오피스에서 일일 정산 내역을 확인할 수 있어야 한다. 일일 정산 내역은 판매자별로 확인할 수 있어야 한다.
- 실제 지급이 되는 금액은 판매자의 정산 금액에서 수수료를 제외한 금액이다.
- 판매자의 정산 금액은 판매자의 판매 금액에서 취소된 주문건의 금액을 제외한 금액이다.
-
Javascript 코드가 아닌 Typescript 코드로만 구현해야 한다.
-
Swagger를 이용하여 API 명세를 작성한다.
-
package.json에 명시된 라이브러리만을 이용하여 구현한다.
-
eslint, prettier 등의 코드 포맷팅 라이브러리를 이용하여 제공된 코드 컨벤션에 맞추어 코드를 작성한다.
-
node
,npm
버전은package.json
에 명시된 버전을 사용한다. Volta를 이용하여 node 버전을 관리한다. -
(선택 사항) API 구현이 완료되고, 유닛 테스트, E2E 테스트등 모든 테스트 코드를 작성하여 테스트를 통과하면 굿!
- 미션은 nest-settlement-batch-7 저장소를 Fork & Clone 하고 시작한다.
- 기능을 구현하기 전
README.md
에 구현할 기능/예외처리를 목록으로 정리해 추가한다.