[javascript] Vue Router의 동기 비동기 라우팅

Vue.js는 웹 애플리케이션을 구축하기 위한 유연하고 강력한 프론트엔드 프레임워크로서 많은 개발자들에게 인기를 끌고 있습니다. Vue.js 애플리케이션을 만들 때 라우팅은 필수적인 요소입니다. Vue Router는 Vue 애플리케이션의 라우팅을 관리하기 위한 공식 라우팅 라이브러리로서, 애플리케이션 내에서 다양한 URL 경로에 대한 뷰를 관리하고 컴포넌트 간의 전환을 처리합니다. 이 라이브러리는 동기비동기 라우팅을 지원합니다.

동기 라우팅

동기 라우팅은 말 그대로 URL 경로에 해당하는 뷰의 컴포넌트가 동기적으로 로드되는 방식입니다. 즉, 링크를 클릭했을 때 해당 URL에 맞는 컴포넌트를 바로 로드합니다. 이 방식은 초기 로딩 시 모든 라우트의 컴포넌트를 미리 받아오기 때문에 초기 로딩 속도에 영향을 미칠 수 있습니다.

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: Home
    },
    {
      path: '/about',
      component: About
    }
  ]
})

위의 코드에서 router 객체의 routes 속성에 등록된 각 라우트의 component 속성은 동기적으로 로드됩니다.

비동기 라우팅

비동기 라우팅은 라우트 컴포넌트를 실제로 필요한 시점에 비동기적으로 로딩하는 방식입니다. 이는 코드 분할을 통해 처음 로딩 시 필요한 컴포넌트만 받아오기 때문에 초기 로딩 시간을 단축시킬 수 있습니다.

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: () => import('./components/Home.vue')
    },
    {
      path: '/about',
      component: () => import('./components/About.vue')
    }
  ]
})

위의 코드에서 router 객체의 routes 속성에 등록된 각 라우트의 component 속성은 비동기적으로 로드됩니다. import 함수를 사용하여 필요한 컴포넌트를 동적으로 불러오는 것을 볼 수 있습니다.

결론

동기 및 비동기 라우팅은 각각의 장단점을 가지고 있으며, 실제 상황에 따라 적합한 방식을 선택해야 합니다. 초기 로딩 속도가 중요한 경우에는 비동기 라우팅을 사용하여 필요한 컴포넌트만 로드하고, 그렇지 않은 경우에는 동기 라우팅을 사용할 수 있습니다. Vue Router의 이러한 유연성은 다양한 프로젝트에 적합한 라우팅 솔루션을 제공합니다.

참고 자료