[NestJS] First steps

곽태민·2023년 6월 19일
0

NestJS

목록 보기
1/8

NestJS Docs를 보고 번역을 해보면서 내가 NestJS에 대해서 대충 알고 있거나 몰랐던 것들에 대해서 개념정리를 해보려고한다.

Setup

SetUp을 할 때, Nest CLI를 사용하면 새 프로젝트를 세팅하는 것이 매우 간단해진다.

npm (node package manager) 이 설치된 상태에서 본인의 OS 터미널에서 아래와 같은 명령어를 입력하여 새로운 Nest 프로젝트를 생성할 수 있다.

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

Typescript의 더 엄격한 기능으로 프로젝트를 생성하려면 --stric 플래그를 nest new 명령에 전달한다.

위 명령어를 입력하면 project-name directroy가 생성되고, 노드 모듈 및 기타 몇 가지 상용구 파일이 설치되면 src/directory가 생성되어 코어 파일로 채워진다.

src
 |-app.controller.spec.ts
 |-app.controller.ts
 |-app.module.ts
 |-app.service.ts
 |-main.ts

각 코어 파일에 대한 간략한 개념은 아래와 같다.

  • app.controller.ts : single router가 있는 기본 컨트롤러
  • app.controller.ts : 컨트롤러에 대한 단위 테스트
  • app.module.ts : 어플리케이션의 루트 모듈
  • app.service.ts : single method를 사용하는 기본 서비스
  • main.ts : 핵심기능인 NestFactory를 사용하여 Nest 어플리케이션 인스턴스를 생성하는 어플리케이션의 엔트리 파일

main.ts는 어플리케이션을 Bootstrap할 비동기 함수가 포함되어 있다.

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

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

Nest 어플리케이션 인스턴스를 생성하기 위해 핵심인 NestFactory 클래스를 사용한다. NestFactory는 어플리케이션 인스턴스 생성을 허용하는 몇 가지 정적 메서드를 노출한다.

create() 메서드는 INestApplication 인터페이스를 충족하는 어플리케이션 객체를 반환한다. 이 객체는 일련의 메서드를 제공한다.

main.ts 예제에서는 어플리케이션이 인바운드 HTTP 요청을 기다리도록 하는 HTTP 수신기를 시작하기만 하면 된다.

인바운드

  • 인바운드 트래픽은 네트워크에 들어오는 정보
  • 메시지가 클라이언트에서 서버로 향하는 것
    ex) 첨부파일을 서버에 저장할 때 (업로드)

아웃바운드

  • 아웃바운드 트래픽은 네트워크에서 나가는 정보
  • 클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 다시 향하는 것
    ex) 첨부파일을 다운로드 할 때
profile
Node.js 백엔드 개발자입니다!

0개의 댓글