언어

Nestjs팀은 타입스크립를 좋아하지만 Node.js 또한 좋아합니다. 때문에 Nest는 타입스크립트와 바닐라 자바스크립트가 호환됩니다. nest는 최신의 자바스크립트 기능을 사용하기 때문에 함께 사용하기 위해서는 Babel이 필요로 합니다.

전제 조건

운영 체제에 Node.js가 10.13 버전 이상으로 설치되어 있어야 합니다.

새프로젝트 만들기

새 프로젝트를 만드는 방법은 nest CLI를 사용하면 매우 간단합니다. NPM으로 CLI를 설치한 후 nest 명령어로 새 프로젝트를 만들 수 있습니다.

$ npm i -g @nestjs/cli
$ nest new project-name

이렇게 생성한 프로젝트의 디렉토리는 모듈과 상용 파일 몇 가지가 설치됩니다. 생성된 디렉토리의 src 폴더에 여러 개의 코어 파일을 생성해줍니다.

src
-app.controller.ts
-app.module.ts
-main.ts

아래는 생성된 코어 파일의 간략한 소개입니다.

⇒ 기본적인 샘플 컨트롤러로써 단일 Route가 있습니다.

⇒ 어플리케이션의 Root 모듈입니다.

⇒ NestFactory라는 핵심 기능을 사용하여 Nest 어플리케이션의 인스턴스를 생성하는 파일입니다.

main.tsTS

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

Nest 어플리케이션 인스턴스를 생성하기 위해서 Core의 NestFactory 클래스를 사용합니다. NestFactory는 응용 프로그램 인스턴스를 만들 수 있는 몇 가지 스태틱 메서드를 제공합니다. create() 메서드는 INestApplication 인터페이스를 충족하는 객체를 반환합니다. 이후에는 어플리케이션이 HTTP 요청을 기다릴 수 있도록 HTTP 리스너를 추가해주고 시작하면 됩니다. Nest CLI로 스캐 폴딩 된 프로젝트는 개발자가 각 모듈을 자체 전용 디렉터리에 보관하는 규칙을 따르도록 권장하는 초기 프로젝트 구조를 생성합니다.