나만보는개발공부블로그

NestJS-시작하기 본문

Web Development/Back

NestJS-시작하기

alexrider94 2021. 9. 25. 00:15

NestJS란?

확장성 가능한 NodeJS기반의 서버 프레임워크이다. Typescript를 기본적으로 지원하고 OOP기반과 FP 그리고 FRP의 요소들을 조합한다. 내부적으로 Fastify를 선택적으로 구성할 수 있고 기본적으로 Express와 같은 강력한 HTTP 서버 프레임워크를 사용한다.

 

* Fastify를 사용할려면 Adapter를 이용해야하는데 특정 모듈을 아래와 같이 설치하고 앱을 구성할때 
FastifyAdapter 를 사용하면 된다.
npm i --save @nestjs/platform-fastify

 

실습해보기

먼저 nestjs/cli를 설치해서 nestjs 구조를 쉽게 구성할 수 있다. 

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

생성을 완료하게 되면 src안에 다음과 같은 파일 구조가 생긴다.

app.controller.spec.ts
app.controller.ts
app.module.ts
app.service.ts
main.ts

컨트롤러랑 모듈과 서비스는 다음에 알아보고 일단 메인 파일에 대해서 알아보자.

main.ts는 다음과 같이 짜여져있다.

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 애플리케이션 인스턴스를 구성하기 위해서 NestFactory의 create함수를 사용하고있고 app이 인스턴스가 된다.

그리고 app의 listen함수안에 포트를 인자로 비동기형식으로 받아내고 있다. create함수안의 인자로 AppModule을 받고 있는데 앱의 모듈구조를 기반으로 만드는것이다. 그리고 bootstrap()함수를 실행하여 nest기반의 서버가 실행된다.