Nestjs > Express
NestJS 선택
- nestJS에서는 architecture와 OOP로 개발하도록 처음부터 구성되어 있어 express로 아키텍처를 구성하고, OOP로 개발하기 위해 필요한 초기 세팅 등에서 시간을 절약할 수 있음
- express로 아키텍쳐 및 OOP 개발 프로젝트를 세팅하기 위해서는 제로 베이스에서 프로젝트를 세팅하거나 관련 라이브러리를 사용하여야 하는데, nest는 이미 구성하여 제공하기 때문에 프로젝트 세팅 작업에서 시간을 아낄 수 있음
- middleware로 모든 것을 해결해야 하는 express에 비해 nest에서는 필요에 따라 guard, interceptor, pipeline, filter 등을 사용할 수 있음. 또 라이프 사이클이 정해져 있어 구조적이며 유지보수에 편리함
- 우리 프로젝트 구현에 필수인 socket.io를 지원
- webSocketGateway 방식으로, express에서보다 쉽게 socket 통신에 아키텍처 적용이 가능
- nestJS에서는 typescript를 공식 지원
- express에서도 라이브러리를 설치하여 typeScript 사용이 가능하지만, nest와는 다르게, express에서 제공하는 기본 객체들에 원하는 지정 타입을 입히는 작업 등이 상당히 번거로움
- 공식 문서가 굉장히 잘 되어 있어 refer하며 개발하기 편리함
- swagger 문서 자동 생성
- express에서는 swagger 문서를 위해 별도 문서화 작업이 필요했는데, nest에서는기본 api 문서를 자동으로 생성해 줌
- 참고자료
Documentation | NestJS - A progressive Node.js framework
[Nest.js] 심화 - 제어의 역전 IoC(Inversion of Control)와 의존관계 주입 DI(Dependency Injection)
[NestJS] IoC, DI, Singleton