Express vs NestJS

유지민·2023년 10월 4일
0

Express란?

Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다.
많은 node.js 개발자들이 웹 서버를 만들 때 선택하는 프레임워크이죠. 각 종 라이브러리와 미들웨어가 내장돼어 있어 개발하기 편리하고 사용자가 많아 가장 래퍼런스 서칭이 쉬우며 개발자들이 자유로운 구조로 쉽게 개발하기 좋다는 장점이 있습니다.

Express 특징

  • 가벼운 Express, 빠르고 간편하게 서버를 구축하고 테스트할 수 있습니다.
  • 가장 많이 보편적으로 사용되기 때문에 구글링을 통해 많은 래퍼런스를 참조할 수 있습니다.
  • 개발자 마음대로 구조 및 아키텍쳐를 구성할 수 있습니다.
  • 기본적으로 javascript를 지원하며 typescript를 사용하려면 추가 세팅 과정이 필요합니다.

NestJS란?

Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. 이 프레임워크는 타입스크립트를 기반으로 구축되어 완벽하게 지원하며 OOP(객체지향 프로그래밍), FP(함수형 프로그래밍), FRP(함수형 반응형 프로그래밍)의 요소를 결합합니다.

Nest는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지 관리가 용이한 애플리케이션을 만들 수 있도록 즉시 사용 가능한 애플리케이션 아키텍처를 제공합니다.

NestJS 특징

  • 미들웨어, IoC, CQRS 등 이미 많은 기능을 프레임워크 자체에 포함하고 있습니다. 사용자는 문서를 보고 쉽게 따라할 수 있습니다. 원하는 기능이 없다면 다른 라이브러리를 적용해서 사용하면 됩니다.
  • Typescript가 기본 설정입니다. 바닐라 자바스크립트로도 작성 가능합니다.
  • Express보단 커뮤니티가 작지만 꾸준히 증가하고 있습니다.
  • 자유로운 Express와 다르게 아키텍처가 정해져 있습니다. 아키텍처가 통일되어 있으므로 개발자들은 서로 작성한 코드의 구조를 쉽게 파악할 수 있습니다.

어떤 프레임워크를 사용할까?

각 장단점이 있는 것 같습니다.
가볍고 빠른 웹 서버 구축을 위해서라면 Express가 더 유리할 것 입니다. 또한 커뮤니티가 커서 쉽고 빠른 서칭이 가능합니다. 하지만 정해져있는 아키텍쳐가 없는 만큼 더 자유로울순 있지만 규모가 커지면서 개발자마다 아키텍처가 달라 유지보수에 어려움을 겪을수 있습니다.
또한 개발자가 필요한 라이프 사이클의 모든 미들웨어를 직접 개발해야 합니다. 자유롭다는 장점이 있지만 자유로움을 커버하기 위한 단점들도 분명히 존재하는 것 같습니다.

어느정도 규모가 있는 프로젝트인 경우 NestJS가 조금 더 적합할 것으로 보입니다. Express보다 더 무겁고 자유롭지 못해 정해져있는 아키텍처가 있지만 그만큼 통일성이 있으며 많은 기능들이 내포되어 있어 조금 더 편리하게 개발할 수 있습니다.

profile
개발 취준생

0개의 댓글