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 프로세스명