라우팅(Routing)
어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정,
즉 선택이 일어나는 일련의 처리과정을 말한다.
정적라우팅(static routing)
const router = useRouter()
router.push('이동할 경로')
- 관리자가 직접 라우팅 테이블에 경로를 설정
- 사전에 지정된 주소로 이동하는 방법
- 네트워크 환경 변화와는 무관하게 항상 같은 경로로만 라우팅 경로의 설정 및 유지 > 고정적이므로, 만약 토폴로지 변화 때 수동으로 직접 작업해야한다
- 장점: 보안이 높고 cpu 부담이 적음
- 단점: 대규모 네트워크의 경우 관리자가 직접 라우팅 테이블에 경로를 설정하는 것에 대한 부담
동적라우팅(dynamic routing)
const router = useRouter()
router.push(`이동할 경로/${동적으로 변할 부분}`)
- 라우팅 프로토콜에 의해서 경로를 자동으로 설정하는 과정
- 장점: 최적 경로 자동 설정
- 단점: 라우터 토폴리지가 변경이 될 때 변경사항을 다른 모든 라우터에게 정송
토폴로지: 컴퓨터 네트워크의 요소(링크, 노드)들을 물리적으로 연결해 놓은 것, 또는 그 연결 방식을 말한다.
/page/number/[폴더명]
- [ ] 대괄호로 폴더명을 감싸면 해당 페이지는 동적으로 경로가 지정되는 페이지가 되며 [ ] 안에 동적 페이지가 존재하는 경로에 임의의 주소를 대입하면 대입한 주소를 쿼리명으로 갖는 페이지로 이동한다
라우터 객체
- 라우터는 라우팅을 하는 녀석
- 페이지 이동과 관련된 기능을 가지고 있는 객체
- 이 객체들을 이용해서 A페이지에서 B페이지로 이동할 때 'B페이지로 라우팅한다' 라고 한다.
- next/Router 모듈에서 useRouter 훅을 불러와 사용할 수 있다.
import { useRouter } from 'next/router'