반응형

NestJS란 무엇인가?

NestJS는 Node.js 기반 백엔드 프레임워크로, TypeScript를 기본으로 사용하는 것이 특징입니다.

Angular 아키텍처에서 영향을 받아 모듈 기반 구조와 Dependency Injection(DI) 구조를 제공합니다.

Express는 자유도가 높은 대신 프로젝트가 커질수록 구조가 복잡해질 수 있지만
NestJS는 처음부터 구조화된 서버 아키텍처를 제공합니다.

주요 특징

  • TypeScript 기반
  • 모듈 구조 (Module / Controller / Service)
  • Dependency Injection 지원
  • Express 또는 Fastify 기반
  • 대규모 프로젝트에 적합

이번 글에서는 다음 과정을 정리합니다.

1️⃣ Node.js 설치
2️⃣ NestJS CLI 설치
3️⃣ NestJS 프로젝트 생성
4️⃣ 서버 실행


1. Node.js 설치

NestJS를 사용하려면 먼저 Node.js를 설치해야 합니다.

Windows에서 Node.js 설치

4

1️⃣ Node.js 공식 사이트 접속

https://nodejs.org

2️⃣ LTS 버전 다운로드

LTS(Long Term Support) 버전을 사용하는 것이 안정적입니다.

Node.js LTS
 

3️⃣ 설치 실행

다운로드한 .msi 파일을 실행합니다.

설치 과정

Next
Next
Next
Install
Finish
 

특별한 설정 없이 기본 옵션 그대로 설치하면 됩니다.


macOS에서 Node.js 설치

macOS는 두 가지 방법이 있습니다.

방법 1️⃣ 공식 설치 파일 사용 (가장 쉬움)

4

1️⃣ Node.js 공식 사이트 접속

https://nodejs.org

2️⃣ macOS LTS 다운로드

node-vXX.pkg
 

3️⃣ 설치 실행

Next → Install
 

방법 2️⃣ Homebrew 사용 (개발자 추천)

Homebrew가 설치되어 있다면 터미널에서 실행합니다.

 
brew install node
 

설치 확인

 
node -v
npm -v
 

2. Node.js 설치 확인

터미널 또는 명령 프롬프트에서 다음 명령을 실행합니다.

 
node -v
npm -v
 

정상 설치되었다면 다음처럼 출력됩니다.

v20.x.x
10.x.x
 

3. NestJS CLI 설치

이제 NestJS 프로젝트를 생성하기 위해 Nest CLI를 설치합니다.

 
npm install -g @nestjs/cli
 

설치 확인

 
nest --version
 

CLI가 정상적으로 설치되면 버전이 출력됩니다.


4. NestJS 프로젝트 생성

이제 프로젝트를 생성합니다.

 
nest new my-nest-app
 

명령을 실행하면 다음 메시지가 나타납니다.

Which package manager would you like to use?
 

선택

npm
 

설치가 완료되면 프로젝트가 생성됩니다.


5. NestJS 프로젝트 구조

프로젝트가 생성되면 다음 구조가 만들어집니다.

my-nest-app
├ src
│ ├ app.controller.ts
│ ├ app.module.ts
│ ├ app.service.ts
│ └ main.ts
├ package.json
├ tsconfig.json
└ nest-cli.json
 

각 파일 역할

파일설명
main.ts 서버 시작
app.module.ts 애플리케이션 모듈
app.controller.ts API 요청 처리
app.service.ts 비즈니스 로직

NestJS는 Controller / Service / Module 구조로 동작합니다.


6. NestJS 서버 실행

프로젝트 폴더로 이동합니다.

 
cd my-nest-app
 

개발 서버 실행

 
npm run start:dev
 

서버가 실행되면 다음 주소로 접속합니다.

http://localhost:3000
 

브라우저에 접속하면 다음 메시지가 나타납니다.

Hello World!
 

7. NestJS가 인기 있는 이유

1️⃣ 구조화된 백엔드 프레임워크

Spring Boot와 비슷한 구조라
대규모 프로젝트에 적합합니다.


2️⃣ TypeScript 기본 지원

  • 타입 안정성
  • 유지보수성 향상

3️⃣ Express / Fastify 선택 가능

기본은 Express지만
Fastify로 변경하면 더 높은 성능을 얻을 수 있습니다.

반응형

+ Recent posts