nest js란? 기초 설치, 설계, 특징

2021. 1. 16. 16:19React, Javascript

반응형

 

 

개요

 

Node js는 프론트에서 끄적이던 자바스크립트를 서버단으로 가져와 훌륭한 백엔드를 구성할 수

 

있도록 도와준 고마운 아이였다.

 

하지만 인간은 그것으로 끝나지 않고 끊임없이 Node js의 불편한 점들을 개선할 프레임워크들을 만들어 왔다.

 

그래서 Node js 계열에도 몇가지 웹 프레임워크가 생겨났다.

 

그 중 대가리를 뽑으라면 역시 Express 일 것이다.

 

 

하지만 Express도 프레임워크단에서 지원해 주는 기능이 매우 협소했다. 편리함을 추구하는 닝겐들에겐

 

그 next를 원하게 했다. 그래서 등장한 아이가 Nest JS 이다.

 

NestJS는 NodeJS 프레임워크인 Express나 Fastify 위에 올라타 해당 프레임워크의 기능도 쓸 수 있으면서

 

나름의 체계를 가지고 독자적인 프레임워크 규칙들을 제시한 훌륭한 웹 프레임워크다

 

 

 

Nest JS의 주요 특징

 

 

1. Typescript 활용 가능

 

그렇다. Nestjs는 기본적으로 Typescript를 지원한다.

 

무근본 자바스크립트에 근본을 담은 Typescript는 글을 쓰는 현 시점까지 매우 가파르게 성장 중이다.

 

이런 근본을 Express에 도입하려면 매우 복잡스런 과정들로 인해 개발자란 직업에 협오를 갖게 한다.

 

하지만 Nest JS는 기본이 근본인 것이다.

 

<Typescript 로고>

 

 

2. OOP, FP, FRP 

 

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

NestJS는 이 3가지를 모두 지원한다.

 

먼저 OOP. 가장 오래되고 프로그래밍에 기초적인 철학으로 많이 퍼져있는 객체지향 프로그래밍이다.

 

사실 OOP가 좋은 방식인지는 개인적으로 많은 의문을 가지고 있지만 수많은 엔터프라이즈 시스템들이 이 방식으로

 

소프트웨어를 생산하고 있으니 OOP인 곳에 NestJS를 도입해도 문제될 것은 없다.

 

 

다음으로 FP입니다. 

 

wiki에 따르면

 

함수형 프로그래밍(functional programming)은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나

 

라고 한다.

 

람다식의 개념을 생각하면 될것이다. 자바스크립트에서도 아래와 같은 문법이 많이 쓰이니 이것을 지원하는 것은

 

당연한 것이겠다.

 

sayHi = name => alert("Hi, " + name);
sayHi("B급 코딩");

 

 

다음으로 FRP이다.

 

간단하게 말하면 FP를 하던중 Async한 상황을 만나게 될때 프로그래밍 하는 기법이다.

 

이는 서버에서 데이터를 받아와서 다양한 화면구성을 만들때만 해도 꼭 필요한 방식이다.

 

따라서 NestJS는 이 모든 프로그래밍 철학을 잘 구현하도록 지원하고 있다.

 

머 요즘 프로그래밍 언어가 거의 다 제공하는 것이긴 하지만..

 

 

 

 

3. 협업에서의 체계성

 

 

웹 사이트를 만들때면 많은 개발자들이 협업을 해야하고 프로그래밍 특성상 개인의 성향이 매우 많이 표출되어

 

머지된 소스코드들은 이미 산으로 가기 마련이다.

 

이를 위해 Java는 Spring을 사용하여 최소한의 규칙들을 지키게 하였고,

 

Python의 Django도 마찬가지이다.

 

여기에 Node에는 NestJS가 있다고 해도 과언이 아니다

 

밑에서 보겠지만 Cli를 통해 생성되는 컨트롤러, 모듈, 서비스 등의 구조 기반으로 최소한의 규칙들을 정해둔 것이다.

 

코드의 일관성은 유지보수에 매우 중요한 요소이다.

 

자바스크립트로 백엔드를 구성한다면 반드시 고려해봄직 하다.

 

 

 

 

 

NestJS 설치

 

자 이제 설치해 보자.

 

매우 간단하다.

 

일단 Node JS가 설치되어 있어야 한다.

 

그리고 아래의 명령어를 수행한다.

npm i -g @nestjs/cli

 

이제 설치는 끝났다.

 

간단한 Cli 확인을 위해 nest를 커멘드 창에 쳐보자.

 

 

 

 

쭉 살펴보니 프로젝트를 만들려면 일단 application 생성을 해야할 것으로 보인다.

 

아래와 같이 applicationgenerate하는 명령을 수행한다.

nest g application

 

그러면 프로젝트의 이름을 물어온다. 이름을 대충 정해서 넣어보자.

 

그럼 위 구조를 가진 프로젝트가 생성된다.

 

이제 package.json을 확인해 보자.

 

 

만들어진 프로젝트 실행에 관련된 사항들이 scripts 안에 보일 것이다.

 

이제 프로젝트에 필요한 모듈들을 다운로드 하자

 

npm install을 실행해준다.

 

npm run start

 

그 다음 위 명령을 통해 만들어진 프로젝트를 확인해보자.

 

 

명령 수행 뒤 브라우져에 localhost:3000을 입력하면 nest가 우리를 반겨주는 것을 볼 수 있다.

 

다음 nest 시간에는 간단한 프로젝트 구조를 설명해 보고 DB연동을 통해 간단한 API를 만들어 보겠다.

반응형