1. Nest CLI로 프로젝트 생성

nest new . --strict --skip-git  

—-skip-git: 모노레포를 사용하므로, nest cli 에서 .git이 자동으로 생성되지 않게 막습니다.

--strict : strictNullChecks, noImplicitAny 등의 기본 세팅된 tsc strict 옵션을 설정합니다. 팀에서 이전에 함께 설정한 tsconfig.json 에서 벗어나지 않게 합니다.

결과로 애플리케이션의 루트 모듈인 app.module.tscontroller, service, spec 파일이 생성됩니다.

사용하지 않기 위해 삭제하려 하였으나, hello world 로 연결을 테스트하기 위해 남겨둡니다.

2. 전역 prefix로서 /api 를 설정

프론트엔드 서버는 분리되어 있어 페이지 라우팅은 신경쓰지 않아도 됩니다.

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalPipes(new ValidationPipe());
  **app.setGlobalPrefix('api');**
  await app.listen(3000);
}
bootstrap();

3. 도메인 리소스 모듈, 컨트롤러, 서비스 생성

확장성을 위해 NestJS에서 제안하는 모듈 기반 구조를 적극적으로 이용합니다.

가장 먼저 프로젝트 등록 API를 위해 project의 모듈, 컨트롤러, 서비스 계층 클래스를 생성해야 합니다.

반복적인 작업을 피할 수 있게 NestJS CLI를 사용합니다.

nest g resource [name : 여기서는 project]

resource 대신 module, controller, service를 각각 명시하여 파일과 클래스를 생성할 수 있습니다.