시작

Routing

작성일 2026.06.29 수정일 2026.06.29 조회 15

기본 정보

  • 명칭: 라우팅
  • 영문명: Routing
  • 분류: 웹 애플리케이션 구조
  • 주요 용도: URL과 페이지 또는 기능 연결
  • 관련 기술: HTTP, URL, REST API, SPA

개요

라우팅(Routing)은 사용자가 요청한 URL을 적절한 페이지나 기능으로 연결하는 과정을 의미한다.

예를 들어 사용자가 /login으로 접속하면 로그인 페이지를 보여주고, /board/1로 접속하면 게시글 번호 1을 출력하도록 연결하는 것이 라우팅이다.

현대 웹 개발에서는 서버뿐만 아니라 프론트엔드 프레임워크에서도 라우팅 기능을 제공한다.


라우팅 구조

사용자

↓

URL 요청

↓

Router

↓

Controller 또는 Component

↓

응답(Response)

동작 과정

브라우저

↓

URL 입력

↓

웹 서버

↓

Router

↓

해당 기능 실행

↓

결과 반환

URL 예시

/

/login

/register

/board

/board/15

/profile/cloud

각 URL은 서로 다른 기능으로 연결된다.


서버 라우팅

서버가 요청을 처리하는 방식이다.

브라우저

↓

웹 서버

↓

PHP

↓

HTML 생성

↓

브라우저

대표 기술


PHP 라우팅 예시

<?php

$uri = $_SERVER['REQUEST_URI'];

switch ($uri) {

    case "/":
        include "home.php";
        break;

    case "/login":
        include "login.php";
        break;

    case "/board":
        include "board.php";
        break;

    default:
        http_response_code(404);
        include "404.php";
}

MVC 라우팅

URL

↓

Router

↓

Controller

↓

Model

↓

View

↓

사용자

MVC 패턴에서는 Router가 Controller를 선택하는 역할을 한다.


프론트엔드 라우팅

SPA에서는 JavaScript가 페이지를 변경한다.

Browser

↓

JavaScript Router

↓

Component 변경

↓

화면 변경

페이지를 새로고침하지 않고 화면만 변경한다.


React Router 예시

import { BrowserRouter, Routes, Route } from "react-router-dom";

function App() {
    return (
        <BrowserRouter>
            <Routes>
                <Route path="/" element={<Home />} />
                <Route path="/login" element={<Login />} />
            </Routes>
        </BrowserRouter>
    );
}

Next.js 파일 기반 라우팅

app/

├── page.tsx

├── login/

│   └── page.tsx

├── board/

│   └── page.tsx

폴더 구조만으로 URL이 생성된다.

폴더URL
app/page.tsx/
app/login/page.tsx/login
app/board/page.tsx/board

동적 라우팅

URL의 일부를 변수처럼 사용할 수 있다.

/board/15

↓

15

Next.js

app/

└── board/

    └── [id]/

        └── page.tsx

URL

/board/15

id = 15


PHP 예시

$id = $_GET["id"];

echo "게시글 번호 : " . $id;

URL

/board.php?id=15

REST API 라우팅

라우팅은 API에서도 사용된다.

MethodURL설명
GET/users회원 조회
GET/users/1회원 상세
POST/users회원 생성
PUT/users/1회원 수정
DELETE/users/1회원 삭제

URL 파라미터

/products/100

100은 상품 ID이다.


Query String

/products?page=2&sort=price
이름
page2
sortprice

정적 라우팅

미리 정의된 URL

/login

/about

/contact

동적 라우팅

실행 중 생성되는 URL

/post/10

/post/11

/post/12

리다이렉트

다른 URL로 이동한다.

header("Location: /login");
exit;

404 라우팅

존재하지 않는 URL 처리

사용자

↓

없는 URL

↓

404 페이지

라우팅과 URL Rewrite

라우팅은 URL Rewrite와 함께 자주 사용된다.

예시

기존

board.php?id=10

↓

Rewrite

↓

/board/10

SEO와 가독성을 향상시킬 수 있다.


장점

  • URL 구조 관리 용이
  • 유지보수 향상
  • 사용자 경험 개선
  • SEO 최적화
  • 코드 구조 개선

단점

  • 초기 설계가 중요
  • 잘못된 라우팅은 유지보수가 어려움
  • SPA에서는 History API 이해 필요

대표 활용 분야

  • 웹사이트
  • 관리자(Admin) 시스템
  • 쇼핑몰
  • 커뮤니티
  • 블로그
  • SaaS
  • 모바일 API
  • CMS

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • RESTful URL 설계
  • URL은 의미 있게 작성
  • 동적 라우팅 최소화
  • 404 페이지 제공
  • URL Rewrite 적용
  • Query String 남용 금지
  • 라우터와 Controller 역할 분리
  • 권한 검사(Middleware) 적용
  • HTTPS 사용
  • SEO를 고려한 URL 설계

라우팅과 함께 사용하는 기술


대표 활용 사례

  • 로그인 페이지
  • 게시판
  • 쇼핑몰 상품 상세
  • 회원 프로필
  • 관리자 페이지
  • REST API 서버
  • 블로그 글 조회
  • 커뮤니티 게시글

관련 문서


출처

  • MDN Web Docs
  • React Router 공식 문서
  • Next.js 공식 문서