NestJS First Steps

paduck·2024년 6월 10일
0

NestJS

목록 보기
2/24

Language

최신 언어 기능을 사용하기 때문에, 순수 자바스크립트로 사용하려면 Babel 컴파일러가 필요

TypeScript: 자바스크립트에 타입을 추가한 언어로 타입은 코드가 더 안전하고 오류가 적게 만들어줌
Babel: 최신 자바스크립트 코드를 구형 브라우저에서도 실행할 수 있게 변환해주는 도구

Prerequisites

먼저 Node.js (버전 >= 16)이 설치되어 있어야 합니다.

Node.js: 서버에서 자바스크립트를 실행할 수 있게 해주는 환경입니다.

Setup

Nest CLI을 사용(권장)

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

Typescript 의 strict 옵션은 --strict 추가

  • project-name 디렉토리 생성

  • 노드 모듈과 몇 가지 다른 기본 파일들이 설치

  • src/ 디렉토리가 생성되고 여러 핵심 파일들로 채워짐

    	src
    	├── app.controller.ts
     		(단일 경로를 가진 기본 컨트롤러)
    	├── app.controller.spec.ts
    	    (컨트롤러의 단위 테스트)
    	├── app.module.ts
    	    (애플리케이션의 루트 모듈)
    	├── app.service.ts
    	    (단일 메서드를 가진 기본 서비스)
    	└── main.ts
    	   		(`NestFactory`를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 엔트리 파일)
         

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();

NestFactory 클래스로 App 인스턴스가 생성

  • 몇 가지 정적 메서드를 제공
    create() 메서드는 INestApplication 인터페이스를 만족하는 애플리케이션 객체를 반환
    • 몇 가지 메서드를 제공
  • 예제는 단순히 HTTP 리스너를 시작하여 애플리케이션이 들어오는 HTTP 요청을 기다림

Platform

플랫폼 독립성을 지향하며, 재사용성 보장
기술적으로, 어댑터가 만들어지면 어떤 Node HTTP 프레임워크와도 함께 작업 가능

플랫폼설명
platform-expressExpress는 Node를 위한 잘 알려진 간결한 웹 프레임워크입니다. 이는 테스트를 거친, 프로덕션 준비가 된 라이브러리로 많은 커뮤니티 자원이 구현되어 있습니다. @nestjs/platform-express 패키지가 기본적으로 사용됩니다. 많은 사용자가 Express로 충분히 만족할 수 있으며, 별도의 조치가 필요하지 않습니다.
platform-fastifyFastify는 최대 효율성과 속도를 제공하는 것을 목표로 하는 고성능, 저비용 프레임워크입니다. 사용하는 방법은 여기에서 읽어보세요.
  • 각 플랫폼은 자체 애플리케이션 인터페이스를 노출
    • NestExpressApplication OR NestFastifyApplication
    • NestFactory.create() 메서드에 타입을 전달하면, 해당 플랫폼에만 있는 메서드를 사용
const app = await NestFactory.create<NestExpressApplication>(AppModule);

Running the application

애플리케이션을 시작:

$ npm run start

개발 프로세스를 가속화하려면 (빌드 속도가 20배 빨라짐), -b swc 플래그를 start 스크립트에 전달하여 SWC 빌더를 사용: npm run start -- -b swc

파일의 변경을 감지하려면 다음 명령어를 사용하여 애플리케이션을 시작:

$ npm run start:dev
  • 이 명령어는 파일을 감시하여, 자동으로 다시 컴파일하고 서버를 다시 로드

Linting and formatting

CLI 에는 린터포매터가 사전 설치

각각 eslintprettier

  • 최대 안정성과 확장성을 보장하기 위해, 기본 eslintprettier CLI 패키지를 사용

  • 준비된 npm 스크립트도 제공

# eslint로 린트 및 자동 수정
$ npm run lint

# prettier로 포맷팅
$ npm run format
profile
학습 velog

0개의 댓글