💡 Nest.js란?
NestJS는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. Progressive JavaScript를 사용하고 TypeScript로 빌드되어 완벽하게 지원하며 (개발자가 순수 JavaScript로 코딩 가능) OOP, FP, 및 FRP 요소를 사용할 수 있게 해줍니다.
💡 짚고 넘어가기
❓ Nest.js는 내부적으로 어떻게 구성이 되어있나?
- 내부적으로 Nest는 Express(기본값)와 같은 강력한 HTTP 서버 프레임워크를 사용하며 선택적으로 Fastify를 사용하도록 구성할 수도 있다.
- 이러한 공통 Node.js 프레임워크(Express/Fastify) 위에 추상화 수준을 제공하지만 API를 개발자에게 직접 노출한다. 이를 통해, 개발자들은 기본 플랫폼에서 사용할 수 있는 수많은 타사 모듈을 자유롭게 사용이 가능하다.
🤔 그렇다면, Node.js 기반 웹프레임워크 중 Express가 좋을까 Nest.js가 좋을까?
🛠 Express
- 유연함과 확장성 :
- 가볍게 테스트용 서버를 띄울 수 있다는 장점이 있다.
아이디어를 빠르게 검증하는 데에는 좋겠지만, 단순하고 자유도가 높은만큼 자신에게 맞는 라이브러리를 찾기 위해 여러가지 방안을 시도해보고 발품을 팔아야 할 것이다.
- TypeScript 지원 :
🛠 Nest.js
-
유연함과 확장성 :
- 미들웨어, IoC, CQRS등 이미 많은 기능을 프레임워크 자체에 포함하고 있다. 사용자는 문서를 보고 쉽게 따라할 수 있으며, 원하는 기능이 없을 경우 다른 라이브러리를 적용해 사용이 가능하다.
-
TypeScript 지원 :
-
탄생 배경:
- 최근 Node.js로 인해 JS를 이용한 풀스택 개발이 활발해졌고, 한 가지 언어로 개발을 하기 때문에 생산성을 향상시키고 빠른 개발이 가능해졌다.
- 하지만, Node.js의 높은 자유도로 인해 아키텍쳐 구성이 어렵고 효과적이지 못했고, 이를 해결하기 위해 Angular 아키텍쳐 사상을 기반으로 Nest가 등장했다.
-
Nest를 사용하면 이점 :
- Java의 Spring과 같은 규칙을 제공한다. 이로 인해 개발자들이 아키텍쳐의 구성에 대해 고민해야 할 부분들이 많이 줄어든다.
- 기본적으로 제공하는 라우팅, 보안 등의 기능이 만힝 탑재되어 있어 편리하다는 장점이 있다.