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









