우선 Express와 Nesjs에 대한 설명을 간단하게 진행하기 앞서 Framework에 대한 기본 개념을 짚고 넘어가려 한다.
프로그래밍 시장에 Nodejs가 들어오면서 웹 개발자들은 JS 언어를 활용해 백엔드를 설계할 수 있게 되었고 그 때부터 NodeJS를 이용하여 백엔드 서버를 구축하는 기업들이 증가하고 커뮤니티가 급속도록 성장하기 시작하였다.
수요가 많아짐에 따라 NodeJS 개발자들은 NodeJS의 불편한 점을 인지하게 되었고 그걸 개선하고자 FRAMEWORK
를 개발하기 시작하였다.
사실 개발자 매체에서는 NodeJS도 프레임워크가 아니냐라는 토론을 많이 하는 것으로 알려져 있지만 우리가 기억해야 할 근본적인 것은
NodeJS는 자바스크립트의 런타임 환경
이라는 것이다.
웹 개발에 있어 자주 사용되는 코드들을 구조화하여 개발자들이 조금 더 효율적으로 웹 개발을 할 수 있도록 도와주는 도구이다
*간혹 개발자들은 라이브러리
와 웹 프레임워크
간의 개념에 헷갈릴 수 있는데, 쉽게 생각해서 라이브러리
는 내가 주체가 되어 사용 하고 싶을 때 해당 라이브러리 내에 있는 코드를 쓰는 것이지만 웹 프레임워크
는 설계된 구조가 이미 정해져 있기에 내가 따라야 하는 것이 큰 차이이다.
위에 설명된 단점은 사실상 프레임워크의 단점이라기보단 어느 도구던, 언어던 가지고 있는 단점들이기에 무시하고 지나가도 상관이 없고 수 많은 개발자들이 이미 자신의 프로젝트의 상황에 맞는 프레임워크를 활용하여 개발을 진행하고 있다.
사실 필자도, 이미 ExpressJS
를 활용하여 프로젝트를 2번 정도 진행해보았고 이제 NestJS
를 배우려고 시도하기에 이 둘의 공통점과 차이점 그리고 어떤 것이 어떤 상황에서 더 나을 것인지 공부를 해보기 위해 글을 써본다.
NodeJS에는 다양한 프레임워크가 있지만, 필자가 직접 사용해볼 ExpressJS
와 NestJS
만 비교해보려고 한다. 그래도 어떤 프레임워크가 있는지 간단히 알아보자
*전 세계 기준으로 간략하게 알아본 것입니다.
웹과 앱 개발
에 적합하다리얼타임
앱을 개발하는데 용이하다.엔터프라이즈 급
의 웹 및 앱 개발에 특화된 웹 프레임워크으로 Express와 Fastify와의 연동에도 용이하다. 위에 언급된 프레임 워크 외에도 Connect, LoopBack, AdonisJS등이 있지만..사실 아직 Express도 제대로 다뤄보지 못한 주니어 개발자로써는 이 정도만 알고 넘어가는 것도 벅차다..
아래 표를 통해 전 세계에서 가장 많이 쓰이는 NodeJS 프레임워크가 무엇인지 알 수 있다.