먼저 PC에 Node.js가 설치되어 있는지 확인을 해야 합니다.
$ node -v
v19.8.1
설치 되어있는 것이 확인 되었다면 Nest CLI를 사용하여 새 프로젝트를 생성해보겠습니다.
npm이 설치된 상태에서 OS 터미널에서 다음 명령어를 사용합니다.
$ npm i -g @nestjs/cli
$ nest new project-name
디렉토리 project-name이 생성되고 노드 모듈 및 기타 몇가지 사용구 파일이 설치가 되며 디렉토리가 src/ 생성되어 여러 코어 파일로 채워집니다.
src
ㄴ app.controller.spec.js
ㄴ app.controller.ts
ㄴ app.module.ts
ㄴ app.service.ts
ㄴ main.ts
핵심 파일들에 대한 설명입니다.
단일 경로가 있는 기본 컨트롤러
컨트롤러에 대한 기본 단위 테스트
응용 프로그램의 루트 모듈입니다.
단일 메서드를 사용하는 기본 서비스입니다.
NestFactory 핵심 기능을 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 엔트리 파일입니다.
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(8000);
}
bootstrap();
Nest 애플리케이션 인스턴스를 생성하기 위해 코어 NestFactory 클래스를 사용합니다.
NestFactory 응용 프로그램 인스턴스를 만들 수 있는 몇가지 정적 메서드를 노출합니다.
이 create() 메서드는 인터페이스를 충족하는 응용 프로그램 개체를 반환합니다.
이 앱은 인바운드 http 요청(8000번 포트)을 기다리도록 하는 http 수신기 역할을 합니다.
Nest는 플랫폼에 구애받지 않는 프레임워크를 목표로 합니다. 플랫폼 독립성은 개발자가 여러 유형의 응용 프로그램에서 활용할 수 있는 재사용 가능한 논리적 부분을 생성할 수 있게 합니다. 기술적으로 Nest는 어댑터가 생성되며 모든 노드 HTTP 프레임워크와 함께 작동할 수 있습니다. 기본적으로 지원되는 두 가지 HTTP 플랫폼이 있습니다. express와 fastify. 필요에 적합한 것을 선택할 수 있습니다.
Express는 노드용으로 잘 알려진 미니멀리스트 웹 프레임워크입니다. 커뮤니티에서 구현한 많은 리소스가 포함된 실전 테스트를 거친 프로덕션 준비 라이브러리입니다. 패키지 @Nestjs/platform-express는 기본적으로 사용됩니다.
Fastify는 최대 효율성과 속도를 제공하는데 중점을 둔 고성능 및 낮은 오버헤드 프레임워크입니다.
설치가 완료되면 명령어를 사용하여 인바운드 http 요청을 수신하는 애플리케이션을 시작할 수 있습니다.
$ npm run start
파일의 변경 사항을 감지하고 애플리케이션을 자동 재실행하는 명령어도 있습니다.
$ npm run start:dev
이러한 명령어는 package.json 파일 안에 존재합니다. 더 많은 명령어들이 있기 때문에 필요한 명령어를 찾아서 실행하면 됩니다.
NestJS 공식문서
https://docs.nestjs.com/first-steps