> [!date] published: 2025-05-16
## debounce
특정 시간동안 이벤트가 발생하지 않으면 마지막 이벤트를 처리하는 것.
연속적인 이벤트가 발생할 때 마지막 하나의 이벤트만 처리한다.
![[1fd50b1c-35f2-4d9c-841f-1e4285d1e5f3.png]]
## what is debounce?
전자공학에서 유래한 말이다. 스위치를 눌렀다 떼는 그 사이에 기계적인 진동에 의해서 접점이 붙었다 떨어지는 것이 반복되는데, 이 때 아주 짧은 시간 안에 여러 번의 신호가 전송되고 마이크로칩에 여러번의 클릭 이벤트가 등록된다. (요것이 bounce)
중복된 이벤트를 모두 해결할 필요는 없으므로, 마이크로칩은 물리적으로 스위치를 연속해서 두번 누를 수 없는 간격 동안에 발생한 이벤트의 처리를 무시하는 식으로 중복 이벤트 문제를 해결한다. (bounce 문제를 해결하니까 이 방법이 **debounce**)
![[0ab9271a-6785-4192-97f0-51c5501ec794.png]]
**참고:**
- [Debounce – How to Delay a Function in JavaScript (JS ES6 Example)](https://www.freecodecamp.org/news/javascript-debounce-example/)
- [debounce - Wiktionary, the free dictionary](https://en.wiktionary.org/wiki/debounce)
- [채터링 - 나무위키](https://namu.wiki/w/%EC%B1%84%ED%84%B0%EB%A7%81)