개발공부/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로 요청했을 때 서버가 어떤 응답을 줄지를 정의하는 역할을 한다.
라우터 만드는 과정
- express.Router( )로 라우터 객체 생성.
- 라우터에 URL과 동작(GET, POST 등)을 정의.
- app.use( )를 통해 라우터를 애플리케이션에 연결.
- 라우터를 여러 파일로 나눠서 관리(모듈화)
라우터 객체 생성 : 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 |