Node.js, TypeScript 기반 NestJS 프로젝트 생성 방법

NestJS 프로젝트 생성 방법

Node.js 위에서 실행되는 TypeScript 서버 프레임워크인 NestJS 프로젝트 생성 방법입니다.
로컬에 Node.js 및 npm이 설치되어 있어야 정상적으로 설치가 가능합니다.

Node.js 및 npm 설치 확인

node --version
npm --version

Nest CLI 설치

npm i -g @nestjs/cli

Nest CLI 정상 설치 확인

nest --version

NestJS 프로젝트 생성

nest new 프로젝트명

설치 중 패키지 매니저는 npm을 선택하면 됩니다.

NestJS 프로젝트 구조

프로젝트명/
├── src/
│   ├── app.controller.spec.ts # app.controller.ts에 대한 단위테스트 파일
│   ├── app.controller.ts # API 엔드 포인트 작성 파일 (요청을 처리하는 컨트롤러)
│   ├── app.module.ts # 애플리케이션 모듈 구성 파일
│   ├── app.service.ts # 서비스 로직 관리 파일
│   └── main.ts # 애플리케이션 시작 파일
├── test/ # E2E (End-to-End) 테스트 관련 파일 폴더
│   ├── app.e2e-spec.ts
│   └── jest-e2e.json
├── package.json # 스크립트 및 라이브러리 의존성 관리 파일
├── nest-cli.json # Nest CLI 설정 파일
└── tsconfig.json # 타입스크립트 설정 파일

큰 틀에서는 위와 같은 구조로 NestJS 프로젝트가 생성됩니다.
E2E 테스트는 실제 사용자 요청부터 응답까지 전체 흐름이 정상인지 테스트합니다.

NestJS 프로젝트 실행 방법

npm run start
또는
npm run start:dev # 개발 중  변경사항 자동 반영
또는
npm run build # 빌드
node dist/main.js # 빌드된 프로젝트 실행

프로젝트 정상 실행 확인 명령어

curl localhost:3000

NestJS 프로젝트 생성 직후에는 Hello World! 라는 문자열이 출력되어야 합니다.


리눅스 서버에서 PM2 라이브러리로 NestJS 프로젝트 실행 방법

프로젝트 의존성 폴더 생성

npm install # package.json 기준으로 의존성 설치 (package-lock.json이 있으면 함께 참고)
npm ci # package-lock.json 기준으로 의존성 설치 (동일한 의존성 버전을 정확히 재현하여 배포 환경에서 권장)

프로젝트를 서버에 올린 뒤에는 의존성 패키지를 설치하여 node_modules 폴더를 생성해야 실행할 수 있습니다.

PM2 설치

npm i -g pm2

Node.js 기반 프로젝트를 실행시키고 관리하기 위해서 PM2 패키지를 설치합니다.

PM2 정상 설치 확인

pm2 --version

PM2 사용하여 NestJS 프로젝트 실행

npm run build # 빌드
pm2 start dist/main.js --name "프로세스명"

실행 중 프로세스 목록 확인

pm2 list

Node 기반 프로세스가 실행되고 있는 것을 볼 수 있습니다.

로그 확인

pm2 logs

PM2 프로세스 중지 방법

pm2 stop 프로세스명

PM2 프로세스 중지 및 삭제 방법

pm2 delete 프로세스명