ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

쓰로틀 ( Throttle )

 


이벤트를 시간 간격을 가지고 실행시키는 기법입니다.

잦은 이벤트 호출 (Overclock) 성능 저하 와 UX 가 좋지 못하므로 고려해야 합니다.

서버에 요청을 보내는 함수나, 스크롤 함수에 많이 사용됩니다. 

 

How?

Delay 이내로 연속적으로 발생된 이벤트에 대해서는 무시한다.

일정 시간 동안 들어오는 요청을 모아서, 한번만 수행 되도록 합니다.

 

고찰

무한스크롤 (스크롤을 내릴 때 api에서 새 글을 불러옴)을 구현 시,
사용자가 스크롤을 내리는 동안에도 조금씩 새 글을 불러오게 구현해본다.
ex) 

function throttle(callback, limit = 100) {
    let waiting = false
    return function() {
        if(!waiting) {
            callback.apply(this, arguments)
            waiting = true
            setTimeout(() => {
                waiting = false
            }, limit)
        }
    }
}
 
 
//실행
window.addEventListener("mousemove", throttle(() => {
    dispThrottle.textContent = ++mouseThrottleCount
}, 500))

 

728x90