결정 01
필터 상태를 클라이언트가 아니라 URL에 둔다
- 문제
- 숙소·축제 목록에는 지역·유형·기간 필터가 있습니다. 처음에는 클라이언트 상태로 만들었는데, 관광 사이트의 콘텐츠는 사람들이 서로 링크로 보내는 경우가 많다는 점을 놓쳤습니다. 누군가 '이 조건으로 찾은 펜션 목록'을 카톡으로 보내고 싶어도 링크에 담기지 않았습니다.
- 선택
- 모든 필터를 search params로 옮겼습니다. 상태 변경은 곧 URL 변경이고, 화면은 URL을 읽어 그립니다. 클라이언트 스토어는 UI 토글처럼 공유할 필요가 없는 것만 담당하게 했습니다.
- 결과
- 필터가 걸린 목록을 그대로 링크로 보낼 수 있게 됐습니다. 부수 효과로 각 조합이 고유 URL을 갖게 되어 검색 엔진이 색인할 수 있는 페이지 수 자체가 늘었고, 뒤로 가기도 사용자가 기대하는 대로 동작했습니다.