개발에 AtoZ까지

[NestJS] 정의와 Express 비교 본문

백엔드/Node.js

[NestJS] 정의와 Express 비교

AtoZ 개발자 2022. 9. 18. 13:20
반응형

목차

  1. NestJS란?
  2. NestJS 와 Express 비교
  3. 마무리

NestJS 란?

NestJS는 Express의 단점을 보완하기 위해 출시된 웹 API프레임워크 입니다. Express는 과도한 유연함으로 인해 SW의 품질이 일정하지 않고 알맞은 라이브러리를 찾기 위해 많은 시간을 할애해야하는 단점이 있습니다.
이런 단점을 해결하기 위해 NestJS는 데이터베이스, ORM, 유효성검사등의 수많은 기능이 프레임워크 자체에서 기본적으로 제공하고 있습니다. 그러면서도 필요한 라이브러리등을 손쉽게 설치하고 기능을 확장 시킬수도 있습니다. NestJS는 객체 지향적인 프레임워크로 IoC(Inversion of Control, 제어역전), DI(Dependency Injection, 의존성 주입), AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)이 도입되어 있습니다.
언어레벨에서는 TS를 기본으로 채택되어 있어 타입시스템의 장점을 누릴 수 있습니다.

NestJS는 express와 별개가 아닌 express를 기반으로 동작합니다
정확히는 Nest로 작성된 소스코드를 Express 나 Fastify에서 실행 가능한 자바스크립트 소스코드로 컴파일하여 동작하게 됩니다.

NestJS 와 Express 비교

  Express NestJS
유연성 O O
확장성 O O
TS 지원 추가 설정 필요 기본 탑재
장점 Top1 커뮤니티 시장이 큼 일정한 SW 품질 확보
단점 Top1 지나친 유연성 러닝커브 존재
추천 가벼운 프로젝트 진행시 유용 익숙하다면 어디에서든 좋을듯

마무리

현재 회사에서 NestJS를 기반으로 백엔드 서버를 운영하고 있다. NestJS를 사용하면서 느낀점을 몇가지 공유하려고 한다. 첫번째는 확실히 객체지향 개념이 도입된 프레임워크라서 그런지 Spring과 비슷하다는 느낌을 많이 받았다. 아키텍쳐도 그렇지만 육안으로 바로 확인되는것이 데코레이터이다.
NestJS의 단점?인 러닝커브가 높다는 점은 다른 객체지향 프레임워크를 사용한 경험이 있는 개발자에게는 조금은 낮지 않을까 싶다.
두번째는 테스트 코드 작성이 편하다는 점이다. NestJS는 Jest를 이용한 unit test와 e2e test을 기본적으로 지원해준다.
그리고 마지막 세번째는 유지보수가 편하다는 점이다. NestJS는 퀄리티 높은 좋은 아키텍쳐와 구조를 갖고 있기 때문에 여러 개발자와 협업하는데 문제 없고 이로 인해 유지보수하는데 편하다는것을 느꼈다.

반응형

'백엔드 > Node.js' 카테고리의 다른 글

[NestJS Document 파헤치기] Controller  (0) 2022.10.23
Comments