쓰로틀링, 디바운싱에 대해 설명해주세요.

최관수·2023년 9월 13일
0

기술면접

목록 보기
28/58

내용 정리

  • 쓰로틀링(throttling)은 간단히 말해 마지막 함수가 호출된 후 일정 시간이 지나기 전에 다시 호출되지 않도록 하는 것을 의미합니다. 예컨대 스크롤 이벤트는 빈번하게 실행되기 때문에 별도의 복잡한 함수가 실행된다면 상당한 렉이 발생할 수 있습니다. 이럴 때 몇 초에 한 번, 또는 몇 밀리초에 한 번씩만 실행되게 제한을 두는 쓰로틀링을 걸어둡니다.
  • 디바운싱(debouncing)은 연달아 호출되는 함수들 중 마지막 함수, 혹은 가장 처음 함수만 호출하도록 하는 것을 말합니다. 요즘 익숙한 자동완성 검색에 주로 사용한다고 볼 수 있는데, 예를 들어 ‘디바운싱’이라는 키워드를 검색하는데 매번 키 입력이 있을 때마다 검색이 된다면 ‘디ㅂ’ 같은 불필요한 호출이 생기게 됩니다. 이때 setTimeout 같은 함수로 일종의 타이머를 세팅해서 입력을 다 끝내고 200ms 뒤에 호출을 하게 설정할 수 있습니다. 그 외에 다양한 예시가 있겠지만 블로그 글쓰기 에디터의 자동저장 기능 같은 거에 사용될 수 있습니다.

꼬리 질문

  • 쓰로틀링이나 디바운싱을 적용해 본 경험이 있나요?

참고자료

profile
평소엔 책과 영화와 음악을 좋아합니다. 보편적이고 보통사람들을 위한 서비스 개발을 꿈꾸고 있습니다.

0개의 댓글