NestJS란?
2023년 10월 02일쉽게 확장 가능하고 안정적으로 운영할 수 있는 아키텍처가 Node.js에서 필요하다? 그럼 Nest를 쓰면 된다.
개발할 때 사실 매번 새로운 아이디어가 필요한 것이 아니라, 이미 많은 이들이 겪은 문제들에 대해서는 이미 좋은 아이디어가 있고 그 practice에 맞게 잘 구현해나가면 된다. Node.js 씬에서 좋은 practice를 잘 정리하고 쌓고 구조화한 게 Nest다. 그래서 Nest가 쓰인다.
작은 프로젝트를 간단한 프레임워크로 구성하고 이후에 복잡도가 올라가면서 이건 어떻게 붙이지 저건 어떻게 붙이지 고민해본 사람이라면, Nest가 제공하는 아키텍처, 기능의 효능감을 잘 느낄 수 있을 거다.
NestJS 란?
NestJS에 대한 간략한 설명
- Node.js 백엔드 프레임워크
- 타입스크립트를 지원한다.
- 다양한 라이브러리, 프레임워크를 포함한 규모가 큰 프레임워크다.
- http는 express, fastify를 사용할 수 있고
- 테스트에서는 jest를 제공하고
- 여러 라이브러리, 프레임워크를 포함해서 Nest의 방식으로 제공한다.
Express와의 비교
Express 프레임워크와 일대일로 비교하는 것으로 적합하지 않을 수 있다. NestJS가 Express를 포함하고 있는 더 거대한 프레임워크라고 생각하면 좋다.
Nest는 Express가 제공하지 못하는 아키텍처, 의존성 주입, 테스트, 에러, 통합기능을 제공한다.
NestJS의 장점
- 구조 안정성
Node.js 진영에서 백엔드의 구조적 문제를 가장 잘 해결하는 게 NestJS다.
Nest 프레임워크가 제공하는 구조가 있다. 모듈을 기반으로 앱을 구성하게 한다. 그리고 각 모듈은 컨트롤러 그리고 서비스를 비롯한 프로바이더 등으로 구성되어 있다.
Nest 자체가 제공하는 구조 덕분에 개발자가 앱을 쉽게 수정-확장할 수 있고, 안정적으로 유지 보수를 할 수 있다.
- 통합 기능 제공
테스트, Cron Job, http, websocket, db connection 등 을 구현한다면 Nest가 제공하는 방식에 따라 쉽게 적용할 수 있다. 라이브러리를 어떻게 결합해야할지 크게 고민할 필요가 없다.
Validation을 구현하고 싶어? → 이렇게 해
Authorization을 구현하고 싶다면 → 이렇게 해
Cron Job 필요해? → 이렇게 해
Nest가 제안하는 방식에 따라 필요한 기능들을 쉽게 구현할 수 있다.
더 다양한 기능에 대해서는 NestJS - 문서를 참고하자.
- 의존성 주입
NestJS는 의존성 주입을 쉽게 구현할 수 있는 기능을 제공한다. Nest 프레임워크의 IOC 컨테이너가 의존성을 관리해준다.
의존성 주입 덕분에 클래스가 덜 결합되는 방식으로 구현할 수 있고, 테스트의 작업 이 수월해진다.
(‘의존성 주입’에 대해서는 따로 포스팅을 쓰는 것으로)
관련글
- 의존성 주입 (NestJS) : 작성 예정
TAGS
NEST.JS