본문 바로가기

TIL

왜 Express 프레임워크를 쓰셨나요?(Why)

Express, 왜 써?

 

코드 과제를 하면서 "백엔드 프레임워크는 사용하지 않으셔도 됩니다. (선택, 감점 및 가점없음.)"라는 문구를 발견했다. 그래서 나는 스스로에게 물었다. "Express를 사용하는 이유가 뭘까?"

처음에는 간단한 농담이었다. "아마 그냥 편해서?" 하지만 조금 더 생각해보니 그 이유는 더 깊었다.

Express는 JavaScript로 백엔드를 구축하는 데 필요한 필수적인 도구라고 볼 수 있다. 그렇다면 왜 이렇게 필수적일까?

첫 번째 이유는 바로 간결함이다. Express는 단순하고 직관적인 API를 제공한다. 이것은 개발자가 코드를 빠르게 작성하고 유지보수하기 쉽게 만든다. 또한 미들웨어를 사용하여 기능을 쉽게 추가하고 확장할 수 있다.

두 번째 이유는 커뮤니티와 생태계의 지원이다. Express는 Node.js 생태계에서 가장 인기 있는 프레임워크 중 하나이며, 따라서 다양한 패키지, 문서, 그리고 지원이 존재한다. 이는 개발자가 문제를 해결하고 새로운 기능을 구현하는 데 큰 도움이 된다.

세 번째 이유는 유연성이다. Express는 개발자에게 많은 자유를 제공한다. 원하는 대로 라우팅을 구성하고 커스텀 미들웨어를 작성할 수 있다. 이는 프로젝트의 요구사항에 따라 최적의 솔루션을 찾을 수 있도록 해준다.

이러한 다양한 이유로, Express를 사용하는 것은 단순히 선택이 아니라 필수적인 이유가 되었던 것이다...!

 

단순하고 직관적인 API를 제공

 

 

여기에서 첫번째 이유인 간결함에 대해서 예시코드와 함께 직관적으로 느껴보도록 하자!

 

아래는 순수한 Node.js와 Express를 사용하여 간단한 HTTP 서버를 설정하고 라우팅을 정의한 코드를 나타내었다.

이 둘을 비교하여 얼마나 Node.js가 간결하고, 직관적인지 살펴보고자 하자.


< 순수한 Node.js를 사용한 HTTP 서버 >

한 다양한 이유로, Node.js 로 HTTP 서버를 만들 때는 각 URL에 대해 if문으로 라우팅해줘야 하는 꽤나 복잡한 과정을 거쳐야 한다...

const http = require('http');

// HTTP 서버 생성
const server = http.createServer((req, res) => {

// 요청 URL에 따른 응답 설정
  if (req.url === '/') {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Welcome to my website!');
  } else if (req.url === '/about') {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('About us page');
  } else {
    res.writeHead(404, {'Content-Type': 'text/plain'});
    res.end('404 Not Found');
  }
});

// 서버를 지정한 포트에서 실행
server.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});



< Express를 사용한 HTTP 서버 >

한 다양한 이유로, 반면에, express 를 사용하면 코드가 훨씬 간결해지고 읽기 쉬워집니다.

자 이제 다들 아래 코드를 보시죠..!

또한 라우팅을 정의할 때도 HTTP 메소드(POST, GET 등)를 명시적으로 사용할 수 있어, 요청과 응답을 더 편리하게 다룰 수도 있게 되었습니다.

 

 

const express = require('express');
const app = express();

// 루트 경로에 대한 라우팅 정의
app.get('/', (req, res) => {
  res.send('Welcome to my website!');
});

// '/about' 경로에 대한 라우팅 정의
app.get('/about', (req, res) => {
  res.send('About us page');
});

// 404 에러 처리
app.use((req, res) => {
  res.status(404).send('404 Not Found');
});

// 서버를 지정한 포트에서 실행
app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});



또한, Express의 미들웨어 (app.use(req, res, next))를 사용하면 HTTP 요청을 처리하고 응답을 생성하는 과정을 더욱 유연하게 제어할 수 있습니다.

 

이상으로, Node.js에서 왜 프레임워크로 express를 쓰셨나요라는 면접관의 질문에 자신있게 답변할 수 있게 되었다.

이 글을 보는 모든 취준생분들도, 의문을 품었던 분들도 의구심이 해소돼셨으면 합니다!!

 

 

 

그럼 오늘도 다들 건승...!