우리가 어떤 프로그램을 개발할 때, 모든 것을 처음부터 만드는 것은 엄청나게 많은 시간과 노력을 요구 하게됩니다. 이런 문제를 해결하기 위해 우리는 개발 과정에서 웹 프레임워크(Web Framework)를 도입하게 됩니다.
웹 프레임워크(Web Framework)란, 프로그래밍의 특정 부분을 추상화하여, 개발자가 더 높은 수준에서 프로그램을 작성할 수 있게 도와주는 도구입니다. 프레임워크는 ‘틀’이라는 의미로, 개발하는 동안 준수해야하는 규칙과 구조를 제공하게 됩니다.
예를 들어, 차를 만드는 것을 가정해보겠습니다. 차를 처음부터 모든 부품을 하나씩 직접 만드는 것 보다는 이미 만들어진 엔진, 프레임, 타이어 등을 이용하여 차를 조립하는 편이 더 빠르고 효율적일 것입니다.
프레임워크 또한 비슷한 개념으로, 이미 만들어진 기능들을 재사용하고, 이를 조립하여 웹 서비스를 만드는 것입니다.
만약, 웹 프레임워크 없이 서버를 구성하려면, 모든 요청(Request) 및 응답(Response) 처리 로직을 직접 작성해야할 것이고, 이것은 엄청나게 많은 시간이 소모되는 작업될 것입니다. 그러나, Express.js와 같은 웹 프레임워크를 사용한다면 이러한 복잡성을 줄이고 개발 과정을 단순화 할 수 있게 될 것입니다.
**Node.js**를 사용해 구축된 웹 서버, Python의 웹 프레임워크인 **Flask**, Java나 Kotlin으로 만들어진 **Spring** 기반의 웹 서버 등, 모두 웹 서버의 기본적인 역할을 수행합니다. 그렇지만 성능이나 확장성, 사용성 등의 면에서는 각각의 특징과 차이점은 존재할 수 있습니다.
💪 웹 서버의 **기본 개념과 역할을 동일**하더라도, 각각의 웹 서버나 프레임워크는 자신만의 **특징**과 **장점**을 가지고 있습니다. 이를 파악하고 **현재 상황에 가장 적합한 도구를 선택**하는 것이 가장 중요하다고 볼 수 있어요! ☺️3) Express.js 란?Express.js의 가장 큰 특징 중 하나는 미들웨어(Middleware)를 지원하는 것입니다. 미들웨어는 사용자의 요청과 응답 사이에 위치하며, 특정 기능을 수행하는 함수로 생각할 수 있습니다. 예를 들어 인증(Authentication), 로깅(Logging), 에러 처리 핸들러(Exception Handler) 등을 담당하는 다양한 미들웨어를 사용할 수 있게됩니다.
또한, Express.js는 Node.js 환경에서 가장 오래 사용되고 사랑받은 웹 프레임워크이므로, 개발자 커뮤니티가 매우 활발합니다. 이는 개발하며 겪게될 문제를 해결하거나 새로운 기능을 개발하기에 큰 도움을 얻을 수 있게 되는 것입니다. ☺️
Express.js 이외에도 Node.js 환경에서는 다양한 웹 프레임워크가 존재합니다. 예를 들어, Koa는 미들웨어를 더 효과적으로 사용할 수 있게 해주며, Nest.js는 TypeScript와 함께 사용해 효율적인 백엔드 개발을 가능하게 만들어 주는 특징이 존재하죠.