Routing이란?
라우팅(Routing)은 네트워크 상에서 경로를 선택하는 프로세스 또는 그 행위를 일컫는 말이다.
SPA에서 Routing을 사용하는 이유

SPA에서 <a> 태그를 사용할 경우 페이지가 새로고침되며 화면 깜빡임이 발생한다. 다시 말해서 페이지 전체가 새롭게 로딩되는 것인데, 이는 사용자 경험 측면에서 굉장히 좋지 않다.
그렇다면 모든 페이지를 초기 로딩 시점에 전부 렌더링하고, JS 코드로 페이지 전환만 시켜주면 되는거 아닌가? 라는 의문이 생길 수 있는데, 이 경우 생기는 다양한 문제점들이 있다.
1. 초기 로딩 시간 증가
- 페이지가 많아질수록 초기 로딩 시간이 길어진다. 또한, 모든 페이지가 로딩될 때까지 기다려야하므로, 사용자 경험 측면에서 좋지 않다.
2. 메모리의 사용량 증가
- 클라이언트 측 메모리 사용량이 크게 증가한다. 이는 곧 브라우저 성능 저하 및 충돌을 일으킬 수 있다.
3. 특정 페이지 즐겨찾기 / 공유 불가
- URL이 고정되어 변하지 않기 때문에 웹앱에서 특정 페이지를 즐겨찾기에 추가하거나 공유할 수 없다.
4. 뒤로가기 및 앞으로가기 기능 제한
- 웹페이지 내에서 URL이 변경되지 않으므로, 페이지 이동이 인식되지 않아 해당 기능을 이용할 수 없다.
5. 복잡한 상태관리