라우팅(routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정입니다.
즉, 경로에 따라 적절한 데이터를 전송할 수 있도록 하는 것이 라우팅이에요.
아래는 웹에서 라우팅을 사용한 예입니다.
네이버 금융 국내증시 : https://finance.naver.com/sise/
네이버 금융 해외증시 : https://finance.naver.com/world/
같은 서버(https://finance.naver.com) 에 위치하고 있으나 / 뒤에 있는 키워드에 따라서 주어지는 최종적인 정보가 달라집니다. 라우팅은 이렇게 경로에 따라서 주어지는 주소를 다르게 하는 것을 말합니다.
/ 뒤에 붙는 키워드를 루트rout 라고 합니다.
express 를 사용하면 라우팅을 관리할 수 있습니다.
express 객체 자체에도 주소에 따른 처리를 담당하는 메소드가 존재합니다.
const express = require ('express')
그러나 express 안의 Router 객체를 사용하면, 주소에 따른 처리만 담당하는 객체를 따로 관 리할 수 있기 때문에 모듈화를 통한 효율적인 관리가 가능합니다.
const myRouter = express.Router()
라우터가 루트를 받아서 루트에 따른 get 혹은 post 등의 메소드를 통해 세분화를 할 수 있습니다.
use를 사용하면 서버에 요청이 왔을 때 무엇을 할지에 대한 광범위하고 범용적인 처리가 가능하지만,
라우팅을 하게 되면 특정 루트에 대한 특정 처리를 별도로 할 수 있습니다.
라우터 객체를 사용해 요청을 처리하는 기본 형태는 다음과 같습니다.
myRouter.route("URL").메소드((request, response) => {
// 처리할 동작의 정의
}
=> 메소드로는 요청 메소드와 동일한 이름이 사용됩니다. get, post 등
아래 예제를 통해서 라우터를 직접 사용해볼게요.
const { request } = require("express")
const express = require("express")
const app = express()
const myRouter = express.Router()
myRouter.route("/").get((request, response)=>{ //마이라우터. 아무것도 없이 비어있는 홈 화면일 때. get 요청을 처리하겠다.
response.send("랜딩 페이지에 들어왔습니다.")
})
myRouter.route("/sise").get((request, response)=>{ //마이라우터. /sise 화면일 때 get 요청을 처리하겠다.
response.send("국내 증시 페이지에 들어왔습니다.")
})
myRouter.route("/world").get((request, response)=>{ //마이라우터. /get 화면일 때 get 요청을 처리하겠다.
response.send("해외 증시 페이지에 들어왔습니다.")
})
// 홈 주소를 축으로 마이라우터가 라우팅을 처리하겠다.
app.use("/", myRouter)
app.listen(4003, () => console.log("4003번에서 구동 중이에요."))
홈 주소를 축으로 myRouter 가 라우팅을 처리합니다.
해당 구동화면을 확인해볼게요.
라우팅 된 루트들에 대해서도 페이지 이동을 확인합니다.
/ 에 입력된 루트대로 get response 에 대한 응답을 확인할 수 있습니다.
여기까지 라우터에 대해서 알아보았습니다.
이 다음으로는 뷰 엔진에 대해서 알아볼게요.
'자바스크립트 JS > 리액트 React 노드 Node JS 공부일지' 카테고리의 다른 글
노드 js 입문 공부 일지 8. 웹소켓 (실시간 데이터 교환) (0) | 2022.12.16 |
---|---|
노드 js 입문 공부 일지 7. express 뷰 엔진, PUG 설치하기 (0) | 2022.11.24 |
노드 js 입문 공부 일지 5. post 요청하기 (nodemon 실행하기) (0) | 2022.11.24 |
노드 js 입문 공부 일지 4. get 메소드로 요청 받기 (nodemon 사용하기) (1) | 2022.11.22 |
노드 js 입문 공부 일지 3. 첫 서버 만들기 http , NPM & express (0) | 2022.11.22 |