오늘부터 NestJS를 사용하여 프로젝트를 만들면서 공부해 볼 것이다.
기존에 진행했었던 프로젝트들은 NodeJS / Express를 기반으로 서버를 구축했었다.
NestJS를 사용하면 팀 프로젝트를 했을 때 아키텍처의 구조를 동일하게 가져가서 유지보수 하기 쉬울 것이다.
(물론 개인 프로젝트를 진행중이지만 사실 공부 목적이다..!)
Nest JS란?
Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.
프로그레시브 JavaScript를 사용하고 TypeScript로 구축되어 완벽하게 지원하며(그래도 개발자는 순수 JavaScript로 코딩할 수 있음) OOP(Object Oriented Programming), FP(Functional Programming) 및 FRP(Functional Reactive Programming) 요소를 결합합니다.
Nest JS는 내부적으로 어떻게 구성되었나요?
내부적으로 Nest는 Express(기본값)와 같은 강력한 HTTP 서버 프레임워크를 사용하며 선택적으로 Fastify도 사용하도록 구성할 수 도 있습니다!
Nest는 이러한 일반적인 Node.js 프레임워크(Express/Fastify) 이상의 추상화 수준을 제공하지만 API를 개발자에게 직접 노출하기도 합니다. 이를 통해 개발자는 기본 플랫폼에서 사용할 수 있는 수많은 타사 모듈을 자유롭게 사용할 수 있습니다.
Nest JS의 철학
Node (및 서버 측 JavaScript)를 위한 훌륭한 라이브러리, 도우미 및 도구가 많이 존재하지만 이들 중 어느 것도 아키텍처의 주요 문제를 효과적으로 해결하지 못합니다.
Nest는 개발자와 팀이 테스트 가능하고 확장 가능하며 느슨하게 결합되고 쉽게 유지 관리할 수 있는 애플리케이션을 만들 수 있는 즉시 사용 가능한 애플리케이션 아키텍처를 제공합니다. 아키텍처는 Angular에서 크게 영감을 받았습니다.
Nest JS CLI로 Nest JS 시작하기
NestJS를 이용해서 프로젝트를 시작할 때 Nest CLI를 이용하면 간단히 프로젝트를 시작할 수 있습니다.
Nest CLI를 이용해서 아래의 명령어를 작성하면 새 프로젝트 디렉토리가 생성되고 초기 핵심 Nest 파일 및 지원 모듈로 디렉토리가 채워져 프로젝트의 기존 기본 구조가 생성됩니다.
$ npm i -g @nestjs/cli
$ nest new project-name
이렇게 한 후 NestJS가 잘 설치되어 있는지 확인하려면 "nest --version" 명령어를 이용하시면 됩니다.
출처 - Nest JS 공식 문서 - https://docs.nestjs.com/
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea
docs.nestjs.com