개발공부/Node.js

라우트? 라우터?

zing! 2025. 1. 24. 04:01

    우트와 라우터는 비슷하지만 다르다. 강의를 듣다보니 트와 터 진짜 열불나게 헷갈린다.

    라우트(Route): 특정 HTTP 메서드와 경로(URL Path)를 기반으로 요청을 처리하는 규칙 . 
    라우터(Router) : 요청과 경로를 처리하기 위한 객체.   express.Router()로 생성 
      라우트(Route) 라우터(Router)
    역할 HTTP 요청-응답 규칙 정의 여러 라우트를 그룹화
    스코프 단일 경로와 동작 처리 기능별로 라우트 관리

    라우트 (route) ?

    URL Path : URL의 Host(도메인)다음에 오는 부분ex) /skin : https://www.tistory.com/skin 

    • 특정 HTTP 메서드(GET, POST 등)와 경로(URL Path)를 기반으로 요청을 처리하는 규칙을 작성하는 것
    • Express에서는 app.get(), app.post() 등의 메서드를 사용해 라우트를 정의할 수 있다.

    ▶ 서버와 리소스 접근의 기초: IP, DNS, URL

    라우트 기본 구조

    app.METHOD(PATH, HANDLER);
    • METHOD: HTTP 메서드(GET, POST, PUT, DELETE 등)를 나타낸다
    • PATH: 요청 URL의 경로 (예: "/", "/about", "/user/:id")
    • HANDLER: 요청을 처리할 함수

    라우터의 기본 작동 방식

    • URL(경로)와 HTTP 메서드(GET, POST, PUT, DELETE 등)에 따라 동작을 처리한다.
    • 특정 URL 요청 → 그에 맞는 응답을 처리하는 역할
    • 라우터는 사용자가 어떤 URL로 요청했을 때 서버가 어떤 응답을 줄지를 정의하는 역할을 한다.

    라우터 만드는 과정

    1. express.Router( )로 라우터 객체 생성.
    2. 라우터에 URL과 동작(GET, POST 등)을 정의.
    3. app.use( )를 통해 라우터를 애플리케이션에 연결.
    4. 라우터를 여러 파일로 나눠서 관리(모듈화)

    라우터 객체 생성 : express.Router() 사용해 라우터를 생성(특정 경로에 대한 요청 처리 담당)

     

    const globalRouter = express.Router();
    const userRouter = express.Router();
    const videoRouter = express.Router();

    라우터 핸들러 함수 작성 : 각각의 라우트에서 요청을 처리할 핸들러 함수를 정의

    const handleHome = (req, res) => res.send("Home");
    const handleEditUser = (req, res) => res.send("Edit User");
    const handleWatchVideo = (req, res) => res.send("Watch video");

    라우터에 (route)라우트 등록 : 각 라우터에 특정 경로를 처리하는 핸들러를 등록

    globalRouter.get("/", handleHome);
    userRouter.get("/edit", handleEditUser);
    videoRouter.get("/watch", handleWatchVideo);

    라우터를 애플리케이션에 연결: 각 라우터를 애플리케이션의 경로와 연결

    app.use("/", globalRouter);
    app.use("/videos", videoRouter);
    app.use("/users", userRouter);

    글로벌 라우터란?

    • 공통적으로 필요한 URL 경로들을 묶어서 관리하는 라우터
    • 애플리케이션의 어디에서나 접근할 수 있기 때문에, 독립적으로 처리한다. 
    • 홈, 로그인, 회원가입, 메인 페이지 등

    로컬 라우터(Local Router)란?

    • 로컬 라우터는 특정 기능이나 리소스에 국한된 라우트를 처리하는 라우터를 의미

    글로벌 라우터와 로컬 라우터 비교

      글로벌 라우터 로컬 라우터
    적용 범위 애플리케이션 전체에서 공통적으로 사용됨 특정 기능이나 리소스에 국한됨
    주요 목적 앱의 최상위 구조를 관리 특정 리소스의 CRUD 작업 등을 처리
    관리 방식 글로벌한 설정과 공용 기능 중심 모듈화된 기능 중심 관리
      /, /login, /register /users, /posts, /products