본문 바로가기
카테고리 없음

Node.js 라우터 사용법 5가지

by excel-master 2025. 4. 10.
반응형
```html Node.js 라우터 사용법 5가지

Node.js는 서버 사이드에서 JavaScript를 실행할 수 있게 해주는 런타임입니다. 라우터는 Node.js에서 클라이언트의 요청을 적절한 핸들러로 연결해주는 중요한 역할을 합니다. 이 글에서는 Node.js 라우터의 사용법을 중심으로 실용적인 팁과 사례를 제공하겠습니다.

1. 기본적인 라우터 설정

Node.js의 라우팅은 주로 Express.js 프레임워크를 통해 이루어집니다. Express.js를 사용하면 요청 URL에 따라 다른 핸들러를 설정할 수 있습니다. 기본적인 라우터 설정은 다음과 같습니다.


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

// 기본 라우터 설정
app.get('/', (req, res) => {
    res.send('홈페이지입니다.');
});

app.listen(3000, () => {
    console.log('서버가 3000번 포트에서 실행 중입니다.');
});

위 코드는 기본적인 Express 애플리케이션을 설정하고, 루트 경로('/')에 대한 GET 요청을 처리합니다. 이제 여러 경로를 추가해보겠습니다.

2. 다양한 HTTP 메소드 지원

Express 라우터는 다양한 HTTP 메소드를 지원합니다. 예를 들어, POST, PUT, DELETE 요청에 대한 핸들러를 설정할 수 있습니다. 다음은 다양한 메소드를 처리하는 예제입니다.


app.post('/submit', (req, res) => {
    // 데이터 처리 로직
    res.send('데이터가 제출되었습니다.');
});

app.put('/update', (req, res) => {
    // 데이터 업데이트 로직
    res.send('데이터가 업데이트되었습니다.');
});

app.delete('/delete', (req, res) => {
    // 데이터 삭제 로직
    res.send('데이터가 삭제되었습니다.');
});

위 예제에서는 POST, PUT, DELETE 요청을 처리하는 방법을 보여줍니다. 이를 통해 RESTful API를 구축할 수 있습니다.

3. URL 파라미터와 쿼리 스트링

Express 라우터는 URL 파라미터와 쿼리 스트링을 쉽게 처리할 수 있습니다. 다음은 URL 파라미터를 사용하는 예제입니다.


app.get('/user/:id', (req, res) => {
    const userId = req.params.id;
    res.send(`사용자 ID는 ${userId}입니다.`);
});

위와 같이 URL에서 :id 부분을 변수로 사용하여, 요청에 따라 동적인 응답을 생성할 수 있습니다. 쿼리 스트링을 처리하는 방법도 알아보겠습니다.


app.get('/search', (req, res) => {
    const query = req.query.q;
    res.send(`검색어는 ${query}입니다.`);
});

이렇게 하면 사용자가 ?q=검색어와 같은 형식으로 쿼리 스트링을 전달할 수 있습니다.

4. 미들웨어 활용

Express의 강력한 기능 중 하나는 미들웨어를 사용하여 요청과 응답을 처리할 수 있다는 점입니다. 미들웨어를 통해 요청의 유효성을 검사하거나, 인증을 처리할 수 있습니다.


function authMiddleware(req, res, next) {
    const isAuthenticated = true; // 인증 로직
    if (isAuthenticated) {
        next(); // 다음 미들웨어 또는 라우터로 이동
    } else {
        res.status(401).send('인증이 필요합니다.');
    }
}

app.use(authMiddleware); // 모든 요청에 대해 인증 미들웨어 적용

미들웨어를 사용하면 코드의 재사용성을 높이고, 요청 처리 흐름을 더 명확하게 관리할 수 있습니다.

5. 에러 핸들링

라우팅 과정에서 발생할 수 있는 에러를 적절히 처리하는 것도 중요합니다. Express에서는 에러 핸들링 미들웨어를 통해 이를 쉽게 관리할 수 있습니다. 다음은 에러 핸들링의 예제입니다.


app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('서버 오류가 발생했습니다.');
});

위와 같이 에러 핸들링 미들웨어를 정의하면, 애플리케이션에서 발생하는 오류를 중앙에서 관리할 수 있습니다.

실용적인 팁

Node.js 라우터를 효과적으로 활용하기 위한 5가지 실용적인 팁을 소개합니다.

1. RESTful API 디자인 원칙 준수

RESTful API를 설계할 때는 HTTP 메소드에 따라 리소스를 적절히 매핑하는 것이 중요합니다. 예를 들어, GET 요청은 데이터를 조회하는 데 사용하고, POST 요청은 데이터를 생성하는 데 사용합니다. 이를 통해 API의 일관성을 유지할 수 있습니다.

2. 라우터 모듈화

라우터를 모듈화하여 관리하면 코드의 가독성과 유지보수성을 높일 수 있습니다. 각 라우팅 파일을 별도로 생성하고, 이를 메인 애플리케이션에 연결하는 방식으로 구성해보세요. 예를 들어, 사용자 관련 라우터는 userRoutes.js 파일에 정의할 수 있습니다.

3. 미들웨어 체인 활용

여러 미들웨어를 체인처럼 연결하여 요청을 처리하는 방식이 가능합니다. 예를 들어, 인증, 로깅, 요청 수정 등의 미들웨어를 차례로 연결하여 복잡한 로직을 간단하게 구성할 수 있습니다.

4. 정적 파일 서빙

Express는 정적 파일을 쉽게 서빙할 수 있는 기능을 제공합니다. 이를 통해 이미지, CSS, JavaScript 파일 등을 클라이언트에 제공할 수 있습니다. express.static() 미들웨어를 사용하여 정적 파일을 설정해보세요.

5. CORS 설정

다른 도메인에서 API를 호출할 때는 CORS(Cross-Origin Resource Sharing) 설정이 필요합니다. Express에서 CORS를 활성화하려면 cors 미들웨어를 설치하고 사용하면 됩니다. 이를 통해 보안 문제를 해결할 수 있습니다.

사례 연구


다음은 Node.js 라우터의 활용 사례 3가지를 소개합니다.

사례 1: 블로그 API 구축

블로그 플랫폼을 개발하면서 RESTful API를 구축하기 위해 Express.js를 사용했습니다. 사용자들은 게시물을 작성하고, 수정하고, 삭제할 수 있는 기능을 제공했습니다. 각 게시물에는 제목, 내용, 작성자 등의 정보가 포함되며, 다음과 같은 라우팅을 설정했습니다.

메소드 경로 설명
GET /posts 모든 게시물 조회
POST /posts 새 게시물 작성
PUT /posts/:id 특정 게시물 수정
DELETE /posts/:id 특정 게시물 삭제

이러한 구조를 통해 블로그 API의 일관성을 유지하고, 각 요청에 대한 명확한 핸들러를 설정할 수 있었습니다.

사례 2: 사용자 인증 시스템

사용자 인증 시스템을 구축하기 위해 JWT(JSON Web Token)를 사용했습니다. 사용자가 로그인하면 JWT를 발급하고, 이후의 요청에서는 이 토큰을 검증하여 인증된 사용자만 접근할 수 있도록 했습니다. 다음과 같은 라우팅을 설정했습니다.

메소드 경로 설명
POST /login 사용자 로그인
GET /protected 인증된 사용자만 접근 가능

미들웨어를 사용하여 JWT를 검증하고, 인증된 사용자만 보호된 라우트에 접근할 수 있도록 설정했습니다. 이를 통해 보안을 강화할 수 있었습니다.

사례 3: 쇼핑몰 API

쇼핑몰 플랫폼을 개발하면서 상품 관리와 주문 처리를 위한 API를 구축했습니다. 각 상품은 카테고리, 가격, 재고 정보를 가지며, 사용자들은 상품을 검색하고 장바구니에 추가할 수 있도록 했습니다. 다음과 같은 라우팅을 설정했습니다.

</table
메소드 경로 설명
GET /products 모든 상품 조회
POST /products 새 상품 추가
PUT /products/:id 특정 상품 수정
DELETE /products/:id 특정 상품 삭제
반응형