NestJS 기본 구조에 대해 알아보자

Setup

Nest CLI를 이용하여 프로젝트를 세팅하는 방법은 다음과 같다.

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

<project-name> 이름을 가진 디렉토리가 생성될 것이며, node modules를 포함한 여러 파일들이 설치될 것이다. /src 디렉토리를 확인해 보면 다음 파일들이 생성되어 있을 것이다.

src
├── app.controller.spec.ts      // A basic controller with a single route
├── app.controller.ts           // The unit tests for the contoller
├── app.module.ts               // The roote module of the application
├── app.service.ts              // A basic service with a single method
└── main.ts                     // The entry file of the apploication which uses the core function NestFactory to create a Nest application instance

main.ts 에는 비동기 함수가 포함되어 있는데, 이 함수는 우리의 어플리케이션을 실행시킨다.

// src/main.ts

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

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

Nest application instance를 생성하기 위해 NestFactory 라는 class를 사용한다. NestFactory는 application instance를 만들기 위한 몇몇의 static method들을 제공한다. create() method는 INestApplication interface를 만족하는 application object를 리턴한다. 어플리케이션에서는 HTTP Listener를 사용하여 HTTP request를 처리한다.

HTTP Listener
HTTP 프로토콜을 사용하여 클라이언트에서 요청을 수신하는 서버 사이드 어플리케이션 구성 요소. 클라이언트로부터 HTTP 요청을 수신하는 네트워크 역할을 담당하며, 이를 처리하고 응답을 반환하는데 필요한 정보를 추출하여 어플리케이션의 다른 부분으로 전달한다. 이를 통해 어플리케이션은 클라이언트와 통신하고, 데이터를 검증하고, 로깅 및 감사 추적과 같은 작업을 수행한다. HTTP Listener는 일반적으로 HTTP 요청의 목적지를 식별하기 위해 IP 주소 및 포트 번호와 같은 정보를 사용한다.

Running

설치가 완료되면, 다음 명령어를 통해 어플리케이션을 실행할 수 있다.

$ npm run start

위의 명령어는 HTTP listener에 명시되어 있는 포트 3000번으로 어플리케이션을 실행한다. 만약 파일에 변화가 생긴 경우, 그 변화를 즉각적으로 보고 싶다면 다음 명령어를 사용하여 어플리케이션을 실행하면 된다.

$ npm run start:dev

위의 명령어로 실행하면, 자동으로 다시 컴파일해주고, 서버를 다시 로딩 해준다.

댓글남기기