Wine 요구사항

와인 데이터를 가격별로 필터링을 하는 기능을 스크롤 바로 구현하는 과정에서의 트러블 슈팅이다!

스크롤을 움직여 값이 변경될 때 해당 가격 범위안에 있는 데이터를 가져와 페이지에 출력시키는 것을 목표로 하였다.

디바운스 훅

문제상황

스크롤을 움직일 때마다 값이 변경되어 수 많은 API 요청을 하는 문제가 발생하였다.

https://blog.kakaocdn.net/dn/mC7Et/btsJGKkI4tp/rDDavppVDyItCDPvFNReZ0/img.gif

해결방안

useDebounce훅 사용

https://blog.kakaocdn.net/dn/xcYKo/btsJGuPYUPg/lufkSKZl22mx0VrQkLVTT1/img.gif

디바운싱은 값이 계속 바뀌는 상황에서 특정 시간 동안 변경이 없을 때만 동작을 수행하도록 한다.

예를 들어, 검색 입력 필드에서 사용자가 입력할 때마다 API 요청을 보낸다면, 디바운싱을 통해 입력이 끝난 후 일정 시간(delay)이 지난 시점에만 요청이 이루어지게 할 수 있다.

와인 가격 범위를 설정할 때, 사용자가 드래그 중인 중간 값보다 최종적으로 멈춘 값이 중요하다!

쓰로틀링은 특정 주기마다 요청을 보내므로 드래그 중간의 값으로도 API 요청이 발생할 수 있어 불필요한 중간 데이터 요청이 많아질 수 있다.