[javascript] Vue Router의 히스토리 모드와 해시 모드

Vue Router는 Vue.js 애플리케이션에서 클라이언트 사이드 라우팅을 구현하는데 사용되는 공식 라우팅 라이브러리입니다. 이 라이브러리는 히스토리 모드와 해시 모드 두 가지 라우팅 모드를 지원합니다. 각 모드는 고유한 특징과 용도가 있으며, 프로젝트의 요구사항에 맞게 선택하여 사용할 수 있습니다.

히스토리 모드 (History Mode)

Vue Router의 히스토리 모드는 HTML5 History API를 이용하여 라우팅을 처리하는 방식입니다. 이 모드는 실제 서버의 URL을 사용하여 라우팅을 처리하기 때문에 URL이 깔끔하고 예쁘게 보입니다. 예를 들어, “/home”, “/about”, “/contact” 등과 같이 경로를 의미하는 URL을 사용할 수 있습니다.

히스토리 모드를 사용하려면 Vue Router 설정에서 mode: 'history' 옵션을 추가해야 합니다.

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

히스토리 모드를 사용할 때는 서버 측 구성과 함께 설정이 필요하며, 단일 페이지 애플리케이션이 아닌 경우 서버 측에서도 모든 경로에 대해 Vue 앱을 서빙할 수 있어야 합니다.

해시 모드 (Hash Mode)

해시 모드는 URL의 해시를 사용하여 라우팅을 처리하는 방식입니다. 예를 들어, “/#/home”, “/#/about”, “/#/contact”와 같은 형태로 URL이 표시됩니다. 이 모드는 간단한 설정과 서버 측 구성 없이 바로 사용할 수 있으며, 별다른 추가 작업 없이 Vue 애플리케이션을 서빙할 수 있습니다.

기본적으로 Vue Router는 해시 모드를 사용하고 있으므로 별도의 설정이 필요하지 않습니다.

어떤 모드를 선택해야 하는가?

히스토리 모드와 해시 모드 중 어떤 모드를 선택해야 할지는 프로젝트의 요구사항과 환경에 따라 다를 수 있습니다.

따라서 프로젝트의 특성과 환경을 고려하여 적합한 라우팅 모드를 선택해야 합니다. Vue Router는 이러한 선택의 자율성을 제공하여, 개발자가 프로젝트에 맞게 적절한 라우팅 모드를 선택할 수 있도록 도와줍니다.

이상으로 Vue Router의 히스토리 모드와 해시 모드에 대해 알아보았습니다.

참조: