# Threshold Slider Filter ## 언제 쓰는가 - 사용자가 "얼마 이상만 보기" / "반경 N km 이내만" 같은 수치 임계값을 즉시 바꾸면서 결과를 확인하고 싶을 때 - 슬라이더 드래그 중에 매 프레임 서버 요청을 보내면 안 될 때 (디바운스 필요) - UI 반응성(값 표시)과 서버 부하(fetch) 를 분리해서 최적화해야 할 때 ## 핵심 구조 - **이중 상태 분리**: - UI 상태(슬라이더 position): `onChange`에 즉시 업데이트 → 숫자 표시도 즉시 반영 - 서버 파라미터: `useEffect` + `setTimeout(300ms)`로 디바운스 후 반영 - **반응형 레인지**: `` 로 네이티브 사용, 값 라벨은 `tabular-nums` 폰트로 폭 고정 - **단위 표기**: min/max가 의미를 가지면 label에 단위 표시 (예: "회", "km") - **명시적 최소/최대**: 코드 상수로 한계값을 정의해 UI/서버 양쪽에서 동일 범위 사용 - **컨테이너 책임**: 슬라이더는 prop으로 값/onChange만 받는 pure 컴포넌트, 디바운스는 컨테이너의 useEffect에 둠 ## 코드 예시 ```jsx // FilterBar.jsx (pure)