자바스크립트 JS/리액트 React 노드 Node JS 공부일지

노드 js 입문 공부 일지 6. 라우팅(routing)

Tomitom 2022. 11. 24. 17:19
반응형

 

 

라우팅(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 에 대한 응답을 확인할 수 있습니다. 

여기까지 라우터에 대해서 알아보았습니다. 

이 다음으로는 뷰 엔진에 대해서 알아볼게요. 

반응형