디바운싱과 쓰로틀링

가연·2023년 5월 26일

디바운싱(Debouncing)

연이어 발생한 이벤트를 하나의 그룹으로 묶어서 처리하는 방식으로 주로 그룹에서 마지막, 혹은 처음에 처리된 함수를 처리하는 방식으로 사용되곤 한다.

debouncing trailing edge

연속적으로 들어오는 입력중에 마지막 입력만 실행하게 하는 기법이다.

  • window의 resize이벤트에서 마지막 변할때만 실행시키고 싶다면 사용한다.
  • input 입력할때마다 api 요청을 할때 사용한다.

debouncing leading edge

연속적으로 들어오는 입력중에 처음의 입력만 실행하게 하는 기법이다.

  • 제출을 누르는데 엔터로 꾹누르는 경우 처음의 요청만 보내고 뒤는 무시할수 있도록 하게 할때 사용한다.

쓰로틀링(throttling)

: 이벤트를 몇 번이나 발생 시키든 일정한 시간 간격으로 한번만 실행하도록 하는 것

예) 무한스크롤 : 컨텐츠가 끝까지 스크롤 되면 다음 페이지의 데이터들을 불러와야 한다.

만약 쓰로틀링 없이 무한스크롤을 구현한다면 마지막 페이지에서 스크롤 이벤트가 여러번 일어날 수 있다. 그래서 데이터를 여러번 불러와서 속도 관련 성능 저하가 일어날 수 있을 것 이다.

디바운싱을 사용하여 무한스크롤을 구현하면 어떻게 될까?
-> 마지막 페이지에서 스크롤 시 스크롤 다 하고 나서 데이터 받는 함수가 실행되므로 데이터를 늦게 받을수도 있을 것 같다.

2개의 댓글

comment-user-thumbnail
2023년 5월 26일

오오 무한 스크롤시 개인적으로 궁금했던 내용이었는데 감사합니다!

답글 달기
comment-user-thumbnail
2023년 5월 31일

디바운싱과 쓰로틀링의 개념 대해서 잘 이해할 수 있었어요~!❤️

답글 달기