AngularJS는 라우팅 기능(Route)을 제공하여 접속된 url에 해당하는 페이지 소스를 보여줄 수 있습니다. 이때 적용된 코드에서 아래와 같은 코드를 쉽게 만날 수 있습니다.
angular.module().config(function($locationProvider) {
  $locationProvider.html5Mode(true);
  ...
});

위 코드의 html5Mode()의 역할은 무엇이고 어떤 기능을 하는지 알아봅니다.

# locationProvider.html5Mode() 사용하는 이유

html5Mode()의 값을 true로 설정하는 경우 html5의 history API를 참조하여 url관련 기능을 사용할 수 있게합니다. 여기서 내부적으로 pushstate()를 사용할 수 있게하죠. 즉...

  • html5의 history API에서 pushState()를 사용할 수 있음
  • 라우팅 주소창에 # 없이 사용이 가능

만약 위 설정이 없는 경우 해쉬(#) 기호를 사용하여 주소를 변경하는 방법이 비동기 방식의 페이지 전환을 위하여 사용됩니다. 하지만 true로 변경할 경우 해당 url로 변환하면서 view의 콘텐츠 역시 동적으로 바뀔 수 있습니다.


! 참고사항그렇다면 항상 true만 사용하는가? 그건 아닙니다. 일부러 false값을 주어 사용하는 경우도 존재하는데 그 예 중 하나로 hashbang을 사용하는 경우입니다. # 기호를 사용하여 콘텐츠를 조작하는 경우 false값을 주어 사용하기도 합니다.