[Nest.js] Express가 좋을까, NestJS가 좋을까

2023. 1. 7. 14:51나는 이렇게 학습한다/Framework

NestJS의 장점

Node.js의 유연함을 그대로 가져가면서도 프레임워크 내에 유용한 기술을 이미 다수 구현
  • NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로서 Express 또는 Fastify 프레임워크를 래핑하여 동작
    • Express와 Fastify 모두 Node.js를 쉽게 사용하기 위해 만들어진 프레임워크
  • NestJS는 기본 설치 시 Express를 사용
    • Express가 가장 널리 사용되고 있고 수많은 미들웨어가 NestJS와 호환되기 때문

Node.js vs NestJS

  • Node.js
    • 손쉬운 사용
    • 뛰어난 확장성
    • But, 과도한 유연함으로 인해 결과물 소프트웨어의 품질이 일정 X
    • 알맞은 라이브러리를 찾기 위해 사용자가 많은 시간을 할애해야 함
  • NestJS
    • 데이터베이스, 객체 관계 매핑(ORM), 설정(configuration), 유효성 검사 등 수많은 기능을 기본 제공
    • 필요한 라이브러리를 쉽게 설치하여 기능을 확장할 수 있는 Node.js 장점은 그대로 가짐

NestJS 특징

  • 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 재사용성 높임
    • 앵귤러(Angular)로부터 영향을 많이 받음
  • 제어 반전(IoC), 의존성 주입(DI), 관점 지향 프로그래밍(AOP) 같은 객체 지향 개념을 도입
  • 프로그래밍 언어는 타입스크립트를 기본으로 채택
  • 웹 프레임워크가 갖춰야 할 필수 기능을 거의 다 내장하고 있음
1. 최신 ECMA 스크립트 지원
2. 타입스크립트
3. CQRS
4. HTTP 헤더 보안 (Express는 helmet을 사용)
5. 편리한 설정
6. 인터셉터
7. 다양한 미들웨어
8. 스케줄링
9. 로깅
10. 테스팅
11. 스웨거(Swagger) 문서화
12. ORM

Express가 좋을까, NestJS가 좋을까

  • Express는 이미 많은 회사가 채택하여 운용되고 있는 검증된 프레임워크
  • NestJS 역시 Express를 기본으로 채택하고 그 위에 여러 기능을 미리 구현해놓은 것
구분 Express NestJS
유연함/확장성 - 가볍게 테스트용 서버를 띄울 수 있다.
- 아이디어를 빠르게 검증하는 데에 좋다.
- 단순하고 자유도가 높다.
- 자기에게 맞는 라이브러리를 찾기 위해 발품을 팔아야 한다.
- 미들웨어, IoC, CQRS 등 이미 많은 기능을 프레임워크 자체에 포함돼있다.
- 문서를 보고 쉽게 따라할 수 있다.
- 원하는 기능이 없다면 다른 라이브러리를 적용해서 사용하면 된다.
타입스크립트 지원 추가 설정 사용 가능 기본 설정 (바닐라 자바스크립트로도 작성 가능)
커뮤니티 가장 크다 꾸준히 증가 중

Reference

[책] nestjs로 배우는 백엔드 프로그래밍(한용재 저)

반응형