Node.js – 서버 구축 – Express 프레임워크 – 라우팅 – 0 – 정적 라우팅

ES6(ECMAScript 2015) - 객체 리터럴 확장 - 2 - 프로토타입 축약
Node.js – 서버 구축 – Express 프레임워크 – 라우팅 – 0 – 정적 라우팅

Node.js – 서버 구축 – Express 프레임워크 – 라우팅 – 1 – 동적 라우팅

서버 구축 – Express 프레임워크 소개

Node.js는 자바스크립트를 사용하여 서버 측 애플리케이션을 개발할 수 있는 런타임 환경입니다. Node.js를 사용하면 자바스크립트를 이용하여 서버를 구축하고 웹 요청을 처리할 수 있습니다. Express는 Node.js를 기반으로한 웹 애플리케이션을 개발하기 위한 빠르고 유연한 웹 프레임워크입니다. Express는 간결한 API를 제공하여 서버 개발을 더욱 편리하게 만들어줍니다.

라우팅이란?

라우팅은 클라이언트의 요청이 서버에 도달했을 때, 해당 요청을 처리할 적절한 핸들러로 연결해주는 과정을 말합니다. Express 프레임워크는 라우팅을 위해 강력한 기능을 제공하며, 라우팅은 웹 애플리케이션의 핵심적인 부분입니다.

동적 라우팅이란?

동적 라우팅은 URL 경로의 일부를 매개변수로 사용하여 동적으로 핸들러를 지정하는 방식입니다. 예를 들어, /users/:id와 같은 경로를 가진 요청이 들어오면, :id 부분에 해당하는 값을 매개변수로 추출하여 적절한 핸들러로 라우팅합니다. 이를 통해 다양한 경로에 대한 요청을 단일 핸들러에서 처리할 수 있습니다.

Express에서의 동적 라우팅

Express에서 동적 라우팅을 사용하기 위해서는 경로에 콜론(:)을 사용하여 매개변수를 정의합니다. 예를 들어, /users/:id와 같은 경로를 정의할 수 있습니다. 이 경우, /users/ 다음에 오는 경로는 매개변수로 사용되며, 해당 값을 추출하여 핸들러에 전달합니다.

아래는 Express에서 동적 라우팅을 사용하는 예시입니다:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // userId를 이용하여 해당 사용자 정보를 조회하거나 처리하는 로직을 작성합니다.
  res.send(`사용자 ID: ${userId}`);
});

위의 예시에서는 /users/ 다음에 오는 경로가 :id로 정의되어 있습니다. 클라이언트의 요청이 /users/1과 같이 들어온다면, req.params.id를 통해 매개변수로 전달된 값인 1을 추출할 수 있습니다. 그 후, 해당 값으로 사용자 정보를 조회하거나 처리하는 로직을 작성하고, 응답을 반환할 수 있습니다.

동적 라우팅 활용 예시

동적 라우팅은 매우 유연하게 사용할 수 있습니다. 예를 들어, 사용자 프로필 페이지를 구현한다고 가정해보겠습니다. 사용자의 고유한 ID를 사용하여 프로필 정보를 조회하고 표시해야 합니다. 이때 동적 라우팅을 활용하여 각 사용자의 프로필을 표시할 수 있습니다.

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // userId를 이용하여 사용자 프로필 정보를 조회하는 로직을 작성합니다.
  const userProfile = getUserProfile(userId);
  res.render('profile', { userProfile });
});

위의 예시에서는 /users/:id 경로로 들어오는 요청을 처리합니다. req.params.id를 통해 매개변수로 전달된 사용자 ID를 추출하여 사용자 프로필 정보를 조회하는 로직을 작성합니다. 그 후, 해당 정보를 템플릿으로 렌더링하여 클라이언트에 전달합니다.

주의해야 할 점

  1. Express에서 동적 라우팅을 정의할 때, 경로의 순서에 주의해야 합니다. 정적인 경로(예: /users/profile)와 동적인 경로(예: /users/:id)가 함께 사용될 경우, 동적인 경로가 정적인 경로보다 뒤에 위치해야 합니다. 그렇지 않으면 정적인 경로로 인식되어 동적 라우팅이 제대로 동작하지 않을 수 있습니다.
  2. 동적 라우팅을 사용할 때, 경로의 정의와 일치하는 패턴을 사용해야 합니다. 예를 들어, /users/:id 경로를 정의한 경우, /users/abc와 같은 요청은 매개변수로 abc를 전달하여 처리됩니다. 그러나 /users/abc/def와 같은 경로는 일치하지 않아 다른 라우팅 규칙에 따라 처리될 수 있습니다.

Express의 동적 라우팅은 웹 애플리케이션에서 다양한 경로에 대한 요청을 처리하는 데 유용하게 사용될 수 있습니다. 동적 라우팅을 통해 매개변수를 활용하여 유연하고 효율적으로 핸들러를 연결할 수 있습니다. Express 프레임워크의 다양한 기능과 함께 사용하면 웹 애플리케이션 개발을 보다 쉽고 빠르게 할 수 있습니다.

이상으로 동적 라우팅에 대한 소개를 마치겠습니다. 더 궁금한 점이 있으시면 언제든지 물어보세요!

답글 남기기