NestJS 소개

NestJS 는 Node.js에 기반을 둔 웹 API 프레임워크다. 기본적으로 Express 혹은 Fastify를 래핑하여 사용한다. Node.js는 손쉽게 사용 가능하고 뛰어난 확장성을 가지고 있지만, 과도한 유연함으로 인해 SW의 품질이 일정하지 않고 알맞은 라이브러리를 찾기 위해 많은 시간 할애가 필요하다. 이에 반해 NestJS는 데이터베이스, ORM, 설정(configuration), 유효성 검사 등 수많은 기능을 기본 제공하고 있다. 또한 Node.js의 장점인 라이브러리를 통한 확장성 또한 가지고 있다. NestJS는 IoC(inversion of Control, 제어역전), DI(Dependecy Injection, 의존성 주입), AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)와 같은 객체지향 개념을 도입했으며, 기본적으로 타입스크립트를 채택해 타입시스템의 장점을 누릴 수 있다.


Express VS NestJS

Node.js 기반 웹 프레임워크가 갖춰야 할 필 수 기능들 :

  • 최신 Ecma Script 지원
  • Typescript (선택사항이나 사용 추세가 계속 늘어나고 있음)
  • CORS
  • HTTP 헤더 보안 (Express는 helmet을 사용)
  • Configuration
  • Interceptor
  • Middleware
  • Scheduling
  • Logging
  • Testing
  • Swagger 문서화
  • ORM
구분 Express NestJS
확장성 단순하고 자유도가 높아 알맞는 라이브러리를 찾기위해 여러 시도를 해야한다. 미들웨어, IOC, CQRS 등 많은 기능이 프레임워크에 자체적으로 내장되어 있다. 없는 기능은 라이브러리를 적용하면 된다.
TypeScript 추가 설정을 통해 가능하다. 기본 설정이 TypeScript이고 JavaScript로도 작성 가능하다.
커뮤니티 가장 큰 커뮤니티를 가지고 있다. 규모가 작지는 않다.

 

 

개인 기록용입니다. 만약 잘못된 부분이 있다면 댓글로 알려주신다면 감사하겠습니다!

 

 

 

'프레임워크\라이브러리 > Nest.js' 카테고리의 다른 글

[NestJS] 파이프  (1) 2024.02.18
[NestJS] 환경 변수  (0) 2024.02.16
[NestJS] DTO  (1) 2024.02.12
[NestJS] 컨트롤러  (0) 2024.02.08
[NestJS] 설치  (1) 2024.02.06