[NestJS] Introduction

JeungJoo Lee
CrocusEnergy
Published in
4 min readSep 17, 2020

1. 소개

Typescript를 지원하고 Node.js 서버 사이드 확장이 가능한 효율적인 프레임워크이고 OOP (Object Oriented Programming), FP (Functional Programming) 그리고 FRP (Functional Reactive Programming) 을 지원한다.

  • OOP ( Object Oriented Programming )
  • FP ( Functional Programming )
  • FRP ( Functional Reactive Programming )

HTTP Server Framework 으로 기본적으로는 Express를 지원하고 있지만 Fastify 라는 것도 사용할 수 있다. Nest 는 Express 를 사용하던 Fastify 를 사용하던 Node.js 프레임웍의 추상화 레벨을 제공한다. 개발자는 Nest 에서 제공하는 추상화 API 만 사용하면 된다.

  • Express
  • Fastify

2. 프레임워크 철학

최근 몇 년간 Javascript는 Front / Backend 사이드 에서 거의 링구아 프라카(lingua franca) 의 역할을 하고 있다. Front-End 에서는 Javascript 를 기반으로 훌륭한 프로젝트들이 많이 있는데 그 중 Angular, React 그리고 Vue 등이 대표적이다. 이러한 프로젝트들은 빠르고, 테스트가 가능하고 확장이 가능하긴하지만 수많은 라이브러리, helpers 그리고 tool들을 제공하긴 했지만 어플리케이션 아키텍처에 대한 부분의 문제를 효과적으로 해결하진 못했다.

Nest는 개발자와 팀이 테스트가 가능하고, 확장성이 있고 느슨한 결합과 유지보수가 용이한 애플리케이션을 만들 수 있는 즉시 사용 가능한 애플리케이션 아키텍처를 제공한다. 이러한 부분은 Angular 프레임워크에 의해 크게 영감을 받았다고 한다.

❓**’링구아 프랑카(lingua franca)’** : 서로 모국어를 달리하는 사람들의 의사소통을 위해 습관적으로하는 제 3의 언어 국제어라고 생각하면 쉬울 듯하다.

3. 사전 설치

설치는 간단하다. NodeJS 가 설치 되어있고 NPM(Node Package Module) 이 있다는 전제하에 아래와 같이 설치 한다.

npm i -g @nestjs/cli

그리고 가장 기초적인 boilerplate를 제공하는 프로젝트를 nestjs 공식 Github 에서 제공하고 있으니 아래와 같이 clone 을통해 확인해보자.

git clone <https://github.com/nestjs/typescript-starter.git> nest-starter-kit
cd nest-starter-kit
npm install
npm run start

위에 clone 부터 install 그리고 npm run start 를 통해 실행해보자

위와 같이 서버가 정상적으로 실행이 되고 http://localhost:3000 으로 GET 으로 호출하게 되면 아래와 같이 hello world 메시지가 나오게 된다.

간단하게 NestJS 가 어떠한 철학을 가지고 있고 Express 를 기본적으로 내장하고 있다는 것을 알게 되었다. Express 외에도 다양한 라이브러리들을 NestJS 에서 사용할 수 있도록 All In One 으로 제공하고 있으니 편리한 점이 많다. 무엇보다도 Typescript 로 개발 할 수 있다는 점과 Setting 과정이 번거롭지 않다는 것이 매력적이다.

다음 글. [NestJS] starter-kit bolierplate 구조 살펴보기 & PostgreSQL Docker 준비

--

--