NestJS 프로젝트 : 기획 및 구성

App flow, API, 모듈 생각해보기

중고차 판매 프로그램

중고차 판매 API

  • 유저가 email과 Password로 가입
  • 유저가 브랜드, 모델, 연식, 주행거리를 기반으로 예상 가격을 제공받음
  • 유저는 중고차를 판매하고 실제 가격 기입
  • 관리자가 기입된 가격을 검토 후 승인

API 디자인

Method and Route Body or Query String Description
POST /auth/signup Body - { email, password } 새로운 유저의 회원 가입 로그인
POST /auth/signin Body - { email, password } 기존 유저의 로그인
GET /reports QS - make, model, year, mileage, longitude, latitude 자동차 가격 추정치 제공
POST /reports Body - { make, model, year, mileage, longitute, latitude, price } 판매 가격 기입
PATCH /reports Body - { approved } 유저가 제출한 가격 심사(가짜 데이터 차단)

Module 디자인

Module Controllers Services Repositories
Users Module Users Controller Users Service Users Repository
Reports Module Reports Controller Reports Controller Reports Repository

처음부터 완벽하게 디자인 할 순 없다. 이를 기반으로 진행하면서 추가하면 된다.

Repository는 데이터를 저장하는 방법에 따라 매우 달라지기 때문에 현재는 생성하지 않는다.

프로젝트 시작하기

새로운 디렉토리에서 nest new mycv 후 npm을 선택하여 새로운 프로젝트를 설치하자. 이름은 mycv 아니여도 된다.

모듈, 컨트롤러, 서비스 2개씩 생성한다.

nest g module users

nest g module reports

nest g controller users

nest g controller reports

nest g service users

nest g service rerports

src 디렉토리에 알맞게 생성되었는지 확인하고, app,module.ts에올바르게 import되었는지도 확인한다.