쓰로틀링과 디바운싱의 개념과 사용하는 이유에 대해서 설명해주세요.

dowon kim·2023년 8월 22일
0

쓰로틀링과 디바운싱은 이벤트를 처리할 때 특정 작업의 실행 빈도를 제한하는 기술입니다. 사용자 인터페이스와 상호작용할 때 특히 유용합니다. 이 두 기술은 비슷해 보이지만, 사용하는 시나리오와 동작 방식에 차이가 있습니다.

쓰로틀링 (Throttling)

쓰로틀링은 일정 시간 동안 이벤트 핸들러가 한 번만 실행되도록 제한합니다. 예를 들어, 100ms마다 한 번씩만 실행되게 할 수 있습니다.

사용 이유:

  • 스크롤, 리사이즈와 같은 빈번하게 발생하는 이벤트의 처리 빈도를 제한하여 성능 문제를 예방합니다.
  • 서버 요청을 제한하여 서버 부하를 줄입니다.

예시:

  • 사용자가 웹사이트를 스크롤하면서 실시간으로 무언가 업데이트해야 하는 경우 (예: 무한 스크롤)

디바운싱 (Debouncing)

디바운싱은 연속된 이벤트가 발생하면 일정 시간 동안 대기한 후 마지막 이벤트 발생 후에만 처리를 수행합니다. 예를 들어, 사용자가 검색어를 입력하는 동안 검색을 수행하지 않다가, 사용자가 입력을 멈추고 일정 시간이 지나면 검색을 실행합니다.

사용 이유:

  • 불필요한 중간 처리를 제거하여 리소스를 절약합니다.
  • 사용자가 완료한 작업에만 반응하여 UX를 개선합니다.

예시:

  • 실시간 검색어 제안 기능. 사용자가 키 입력을 멈춘 후 일정 시간이 지나면 검색을 실행합니다.

결론

쓰로틀링과 디바운싱은 서로 다른 시나리오에서 사용되며, 이벤트 처리의 성능과 사용자 경험을 향상시키는 데 중요한 역할을 합니다. 빈번한 이벤트 처리가 필요한 상황에서 적절히 이 기술들을 활용하면 애플리케이션의 반응성과 효율성을 높일 수 있습니다.

면접에서 할 대답

쓰로틀링은 일정 시간 동안 이벤트 핸들러가 한 번만 실행되도록 제한하며, 성능 문제를 예방하는 데 사용됩니다. 디바운싱은 연속된 이벤트 발생 후 일정 시간 대기하고 마지막 이벤트만 처리하여 리소스를 절약합니다. 두 기술은 사용자 인터페이스와 상호작용할 때 특히 유용하며, 빈번한 이벤트 처리의 반응성과 효율성을 높이는 데 중요합니다.

profile
The pain is so persistent that it is like a snail, and the joy is so short that it is like a rabbit's tail running through the fields of autumn

0개의 댓글