Express.js 프레임워크

윤태규·2023년 11월 23일
  1. Express.js의 이해
    1) 웹 프레임워크(Web Framework) 📌 **웹 프레임워크(Web Framework)**는 웹 서비스를 빠르게 구현할 수 있게 도와주는 도구입니다.

우리가 어떤 프로그램을 개발할 때, 모든 것을 처음부터 만드는 것은 엄청나게 많은 시간과 노력을 요구 하게됩니다. 이런 문제를 해결하기 위해 우리는 개발 과정에서 웹 프레임워크(Web Framework)를 도입하게 됩니다.

웹 프레임워크(Web Framework)란, 프로그래밍의 특정 부분을 추상화하여, 개발자가 더 높은 수준에서 프로그램을 작성할 수 있게 도와주는 도구입니다. 프레임워크는 ‘틀’이라는 의미로, 개발하는 동안 준수해야하는 규칙과 구조를 제공하게 됩니다.

예를 들어, 차를 만드는 것을 가정해보겠습니다. 차를 처음부터 모든 부품을 하나씩 직접 만드는 것 보다이미 만들어진 엔진, 프레임, 타이어 등을 이용하여 차를 조립하는 편이 더 빠르고 효율적일 것입니다.

프레임워크 또한 비슷한 개념으로, 이미 만들어진 기능들을 재사용하고, 이를 조립하여 웹 서비스를 만드는 것입니다.

만약, 웹 프레임워크 없이 서버를 구성하려면, 모든 요청(Request) 및 응답(Response) 처리 로직을 직접 작성해야할 것이고, 이것은 엄청나게 많은 시간이 소모되는 작업될 것입니다. 그러나, Express.js와 같은 웹 프레임워크를 사용한다면 이러한 복잡성을 줄이고 개발 과정을 단순화 할 수 있게 될 것입니다.

  • 2) 일반적인 웹 서버와 Node.js로 만들게 될 웹 서버 비교
    📌 웹 서버(Web Server)는 어떤 기술이나 프레임워크를 사용해서 만들어지든 핵심적인 기능인 클라이언트 요청에 대한 응답을 제공하는 것은 변하지 않습니다.
    **Node.js**를 사용해 구축된 웹 서버, Python의 웹 프레임워크인 **Flask**, Java나 Kotlin으로 만들어진 **Spring** 기반의 웹 서버 등, 모두 웹 서버의 기본적인 역할을 수행합니다. 그렇지만 성능이나 확장성, 사용성 등의 면에서는 각각의 특징과 차이점은 존재할 수 있습니다.
    💪 웹 서버의 **기본 개념과 역할을 동일**하더라도, 각각의 웹 서버나 프레임워크는 자신만의 **특징**과 **장점**을 가지고 있습니다. 이를 파악하고 **현재 상황에 가장 적합한 도구를 선택**하는 것이 가장 중요하다고 볼 수 있어요! ☺️
    3) Express.js 란?
    **Express.js는 Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 가장 대표적인 웹 프레임워크입니다.** 이를 통해 개발자들은 효율적이고 빠르게 백엔드 서버를 구축할 수 있게됩니다.

Express.js의 가장 큰 특징 중 하나는 미들웨어(Middleware)를 지원하는 것입니다. 미들웨어는 사용자의 요청과 응답 사이에 위치하며, 특정 기능을 수행하는 함수로 생각할 수 있습니다. 예를 들어 인증(Authentication), 로깅(Logging), 에러 처리 핸들러(Exception Handler) 등을 담당하는 다양한 미들웨어를 사용할 수 있게됩니다.

또한, Express.js는 Node.js 환경에서 가장 오래 사용되고 사랑받은 웹 프레임워크이므로, 개발자 커뮤니티가 매우 활발합니다. 이는 개발하며 겪게될 문제를 해결하거나 새로운 기능을 개발하기에 큰 도움을 얻을 수 있게 되는 것입니다. ☺️

Express.js 이외에도 Node.js 환경에서는 다양한 웹 프레임워크가 존재합니다. 예를 들어, Koa는 미들웨어를 더 효과적으로 사용할 수 있게 해주며, Nest.js는 TypeScript와 함께 사용해 효율적인 백엔드 개발을 가능하게 만들어 주는 특징이 존재하죠.

  • 4) 웹 서버와 Express.js의 차이점
    • Express.js와 웹 서버(Web Server)는 동일하지 않습니다!
    • Express.js는 웹서버 자체가 아니라, 웹 서버를 구현하는데 도움을 주는 도구입니다. 즉, Node.js를 위한 웹 프레임워크입니다. 우리는 웹 서버를 구현할 때 Express.js 프레임워크를 사용하게 될 것입니다.
profile
끝까지 가자

0개의 댓글