안동민 개발노트 아이콘

안동민 개발노트

1장 : NestJS 소개와 기본 개념

개발 환경 설정

NestJS의 특징과 아키텍처를 확인했으니, 이제 NestJS 개발 환경을 직접 설정합니다. 복잡해 보일 수 있으므로 아래 절차를 단계별로 따라가며 구성 요소를 하나씩 점검합니다.


Node.js 및 npm(또는 Yarn) 설치

NestJS는 Node.js 위에서 동작하는 프레임워크이므로, 가장 먼저 Node.js를 설치해야 합니다. Node.js를 설치하면 패키지 매니저인 npm(Node Package Manager) 도 함께 설치됩니다. npm은 NestJS 프로젝트를 생성하고 필요한 라이브러리를 설치할 때 사용됩니다.

만약 이미 Node.js가 설치되어 있다면, 터미널(또는 명령 프롬프트)을 열고 다음 명령어를 입력하여 버전을 확인해 보세요.

node -v
npm -v

최신 LTS(Long Term Support) 버전의 Node.js를 사용하는 것을 권장합니다. 만약 설치되어 있지 않거나 업데이트가 필요하다면, Node.js 공식 웹사이트에서 여러분의 운영체제에 맞는 설치 파일을 다운로드하여 설치해 주세요.

npm 대신 Yarn을 사용하고 싶다면?

Yarn은 npm과 유사한 또 다른 패키지 매니저입니다. npm보다 빠르고 안정적이라는 장점이 있어 많은 개발자가 선호하기도 합니다. 만약 Yarn을 사용하고 싶다면, Node.js 설치 후 다음 명령어를 통해 Yarn을 전역으로 설치할 수 있습니다.

npm install -g yarn

이 책에서는 주로 npm 명령어를 사용하지만, Yarn을 선택해도 대부분의 명령어는 유사하거나 쉽게 변환할 수 있습니다.


NestJS CLI 설치

NestJS CLI(Command Line Interface)는 프로젝트 생성, 컴포넌트(모듈, 컨트롤러, 서비스 등) 생성, 빌드 명령을 제공합니다. 표준 구조를 빠르게 만들고 반복 작업을 줄일 때 사용합니다.

터미널에 다음 명령어를 입력하여 NestJS CLI를 전역으로 설치합니다.

npm install -g @nestjs/cli

설치가 완료되면, 다음 명령어로 NestJS CLI의 버전을 확인하여 정상적으로 설치되었는지 확인할 수 있습니다.

nest -v

아래 다이어그램은 설치 명령이 각각 어떤 환경 조건을 확인하는지와 실패 시 먼저 볼 지점을 묶어 보여줍니다.


첫 NestJS 프로젝트 생성

이제 NestJS 개발 환경 설정의 마지막 단계입니다! NestJS CLI를 사용하여 우리의 첫 NestJS 프로젝트를 생성해 보겠습니다. 프로젝트를 생성할 디렉토리로 이동한 후, 다음 명령어를 입력하세요.

nest new project-name

여기서 project-name은 여러분이 만들고자 하는 프로젝트의 이름입니다. 예를 들어, my-nestjs-app이라는 이름으로 프로젝트를 생성하고 싶다면 다음과 같이 입력합니다.

nest new my-nestjs-app

명령어를 실행하면 NestJS CLI가 몇 가지 질문을 할 수 있습니다.

  • Which package manager would you like to use?: 사용할 패키지 매니저를 선택하라는 질문입니다. npm 또는 yarn 중 하나를 선택하고 Enter를 누르세요.

선택을 완료하면 NestJS CLI가 프로젝트에 필요한 파일과 폴더를 자동으로 생성하고, 의존성 패키지들을 설치하기 시작합니다. 이 과정은 잠시 시간이 소요될 수 있습니다.


프로젝트 실행 및 확인

모든 설치가 완료되면, 생성된 프로젝트 디렉토리로 이동하여 NestJS 애플리케이션을 실행해 볼 수 있습니다.

cd my-nestjs-app # 여러분이 지정한 프로젝트 이름으로 변경해주세요
npm run start:dev

npm run start:dev 명령어를 실행하면 NestJS 애플리케이션이 개발 모드로 시작됩니다. 이 모드에서는 코드 변경 시 자동으로 애플리케이션이 재시작되어 편리합니다.

애플리케이션이 성공적으로 실행되면, 터미널에 다음과 유사한 메시지가 출력됩니다.

[Nest] 12345   - 01/01/2023, 12:00:00 PM     LOG [NestFactory] Starting Nest application...
[Nest] 12345   - 01/01/2023, 12:00:00 PM     LOG [InstanceLoader] AppModule dependencies initialized +1ms
[Nest] 12345   - 01/01/2023, 12:00:00 PM     LOG [RoutesResolver] AppController {/}: +4ms
[Nest] 12345   - 01/01/2023, 12:00:00 PM     LOG [RoutesResolver] AppController {/hello, GET}: +4ms
[Nest] 12345   - 01/01/2023, 12:00:00 PM     LOG [NestApplication] Nest application successfully started +5ms

이제 웹 브라우저를 열고 http://localhost:3000으로 접속해 보세요. 화면에 Hello World!가 보이면 NestJS 개발 환경 설정이 완료된 것입니다.


Node.js, NestJS CLI 설치, 첫 NestJS 프로젝트 생성, 실행 확인까지 점검했습니다. 다음 절부터는 생성된 모듈, 컨트롤러, 서비스가 요청 처리 흐름에서 어떤 책임을 갖는지 확인합니다.

다음 절에서는 이렇게 생성된 프로젝트의 기본 구조를 살펴보고, NestJS가 어떻게 동작하는지에 대한 큰 그림을 이해하는 시간을 갖겠습니다.