쓰로틀링(Throttling)과 디바운싱(Debouncing)은 주로 사용자 인터페이스에서 발생하는 이벤트에 대해 불필요한 연산을 줄이기 위한 기술로 사용
❓쓰로틀링(Throttling)
- 개념: 특정 함수가 일정 시간 동안 N번 이상 실행되지 않도록 제한하는 기술임
- ex) 사용자가 스크롤을 할 때마다 이벤트 핸드러가 실행되는 것을 막기 위해, 일정 시간 동안 한 번만 이벤트 핸들러가 실행되도록 제한하는 것을 의미함
- 사용하는 이유
빠른 연속적인 이벤트(ex. 스크롤, 윈도우 리사이징)에서 과도한 연산을 줄이기 위함
서버 API 호출의 빈도를 줄이기 위해 사용하기도 함. 이를 통해 서버의 부하를 감소시킬 수 있음
❓디바운싱(Debouncing)
- 개념; 연속된 이벤트가 발생할 경우, 마지막 이벤트로부터 일정 시간이 경과한 후에만 함수를 실행하는 기술
- ex) 사용자가 검색어를 입력하는 도중에 서버로 검색 요청을 보내는 것이 아니라, 사용자가 검색어 입력을 완료하고 일정 시간동안 추가 입력이 없을 때 한 번만 서버로 검색 요청을 보내는 것을 의미함
- 사용하는 이유
연속적인 이벤트 발생 시 불필요한 함수 실행 또는 서버 요청을 최소화하기 위함
사용자의 실질적인 마지막 동작에만 반응하고자 할 때 유용함
쓰로틀링과 디바운싱은 주로 사용자 인터페이스의 이벤트 처리와 관련하여 불필요한 연산을 줄이기 위해 사용하는 기술입니다.쓰로틀링은 특정 함수가 일정 시간 동안 N번 이상 실행되지 않게 제한하는 방법입니다. 예를 들면, 사용자가 스크롤을 할 때, 그 스크롤 이벤트 핸들러를 일정한 주기로만 실행하게 하는 것입니다. 이는 과도한 연산을 방지하고, 때로는 서버의 API 호출 빈도도 줄여 서버 부하를 감소시키는 데 효과적입니다.반면, 디바운싱은 연속된 이벤트가 발생할 때 마지막 이벤트 이후 일정 시간이 경과한 후에만 함수를 실행하게 하는 방법입니다. 예를 들면, 사용자가 검색어를 입력할 때 실시간으로 서버에 검색 요청을 보내는 대신, 사용자가 입력을 멈춘 후 일정 시간동안 추가 입력이 없을 때만 서버로 검색 요청을 보냅니다. 이는 불필요한 함수 호출이나 서버 요청을 최소화하며, 사용자의 최종적인 의도에 더 정확하게 반응하게 해줍니다.요약하면, 쓰로틀링은 이벤트 처리를 일정한 시간 간격으로 제한하는 반면, 디바운싱은 마지막 이벤트가 발생한 후 일정 시간을 기다린 후 이벤트를 처리합니다. 두 기술 모두 성능 최적화와 사용자 경험 향상을 목적으로 사용됩니다.
'IT > 면접' 카테고리의 다른 글
Q. SEO란 무엇이고 SEO를 진행하는 방법에 대해 설명 (0) | 2023.08.31 |
---|---|
Q. 자바스크립트와 타입스크립트의 차이, 장/단점에 대해 설명 (0) | 2023.08.31 |
react 클래스형과 함수형의 차이를 설명, 주로 사용하는 방식과 그 이유 (0) | 2023.08.31 |
Q. 리액트 라이프사이클 메소드에 대한 설명 (0) | 2023.08.24 |
Q. 라이프사이클이 의미하는 바 (0) | 2023.08.24 |