* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.

* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.

1. Router

  • 애플리케이션의 라우팅 시스템을 구성하는 핵심 요소.

  • 클라이언트가 요청하는 경로(URL)와 HTTP 메서드(GET, POST 등)에 따라 알맞은 처리를 수행하는 역할.

  • URL 경로와 요청 메서드 매핑 / 미들웨어 기능도 수행 / 모듈화 가능 등의 특징을 지닌다.



Router는 왜 사용하는 것인가?

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

app.use(express.json());

// 사용자 관련 라우트
app.get('/users', (req, res) => {
  res.send('Get all users');
});
app.post('/users', (req, res) => {
  res.send('Create a user');
});
app.put('/users/:id', (req, res) => {
  res.send(`Update user with ID ${req.params.id}`);
});
app.delete('/users/:id', (req, res) => {
  res.send(`Delete user with ID ${req.params.id}`);
});
  • 코드가 길어지고, 복잡해질수록, 하나의 파일에서 모든 라우트를 관리하는 것은 가독성 / 유지보수성 측면에서 효율적이지 못하게 된다.
const express = require('express');
const router = express.Router();

const userRoutes = require('./userRoutes');

router.use('/users', userRoutes);

module.exports = router;
  • 따라서 라우터들을 기능별로 분리하고, 이를 중앙에서 처리할 중앙 라우터를 구현한 뒤, 메인 서버 파일에서는 중앙 라우터 파일만 호출하면 된다.

  • 기능별로 나누어 각 파일에서 독립적으로 개발할 수 있고, 새로운 기능을 추가하거나 수정할 때의 유지보수가 용이해진다. 각 파일이 특정 도메인(사용자 관리, 제품 관리 등)을 처리하므로 라우트의 목적과 기능을 쉽게 이해할 수도 있고, 여러 프로젝트에서 해당 모듈을 언제든 쉽게 가져와 사용할 수도 있다.

profile
프론트엔드 개발자를 준비하고 있습니다.

0개의 댓글