Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다.
많은 node.js 개발자들이 웹 서버를 만들 때 선택하는 프레임워크이죠. 각 종 라이브러리와 미들웨어가 내장돼어 있어 개발하기 편리하고 사용자가 많아 가장 래퍼런스 서칭이 쉬우며 개발자들이 자유로운 구조로 쉽게 개발하기 좋다는 장점이 있습니다.
Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. 이 프레임워크는 타입스크립트를 기반으로 구축되어 완벽하게 지원하며 OOP(객체지향 프로그래밍), FP(함수형 프로그래밍), FRP(함수형 반응형 프로그래밍)의 요소를 결합합니다.
Nest는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지 관리가 용이한 애플리케이션을 만들 수 있도록 즉시 사용 가능한 애플리케이션 아키텍처를 제공합니다.
각 장단점이 있는 것 같습니다.
가볍고 빠른 웹 서버 구축을 위해서라면 Express가 더 유리할 것 입니다. 또한 커뮤니티가 커서 쉽고 빠른 서칭이 가능합니다. 하지만 정해져있는 아키텍쳐가 없는 만큼 더 자유로울순 있지만 규모가 커지면서 개발자마다 아키텍처가 달라 유지보수에 어려움을 겪을수 있습니다.
또한 개발자가 필요한 라이프 사이클의 모든 미들웨어를 직접 개발해야 합니다. 자유롭다는 장점이 있지만 자유로움을 커버하기 위한 단점들도 분명히 존재하는 것 같습니다.
어느정도 규모가 있는 프로젝트인 경우 NestJS가 조금 더 적합할 것으로 보입니다. Express보다 더 무겁고 자유롭지 못해 정해져있는 아키텍처가 있지만 그만큼 통일성이 있으며 많은 기능들이 내포되어 있어 조금 더 편리하게 개발할 수 있습니다.