- Published on
자바스크립트 지연 검색 delay search
- Authors

- Name
- Deokgoo Kim
- 프로덕트 엔지니어 (8년차)
- Social links
- GitHub
최근 프로젝트를 보고 느낀점이 무의미한 API호출이 쌓여
재앙으로 닥치는것을 보아 이러한 작은 성능개선 한가지 정리하고자 합니다.
검색엔진을 구현할때 API호출을 줄이는 방법으로서 지연 호출을
하는 방법에 대해서 알아보겠습니다.
알아야할 것들
- setTimeout
- clearTimeout
setTimeout은 비동기적으로 설정한 delay 이후에 실행할 수 있도록 하는 함수입니다.
clearTimeout은 setTimeout을 취소할 수 있습니다. MDN 참고
(macroTask queue에서 event loop를 통해 call stack으로 넘어간다.)
구현
구현 방법은 싱글톤과 유사합니다. setTimeout으로 delay 이후에 API 호출 하는데 도중에 입력이 들어오면 기존 setTimeout을 죽이고 새로운 setTimeout을 만드는 것입니다. (클로저 사용해서 구현할겁니다)
const createDelay = (__callback, ms) => {
let instance;
return () => {
clearTimeout(instance);
instance = setTimeout(() => __callback(), ms);
}
}
const fetchData = () => {
...fetchAPI Call
}
const delaySearch = createDelay(fetchData, 250);
개인적으로 delay는 250ms ~ 500ms가 유저 친화적이라고 생각합니다.
아래는 사용 예 입니다.
관련 글
2022년 8월 10일
[이슈] safari invalid date
safari invalid date issue
2026년 5월 31일
React Suspense 변천사와 React 19 실전 패턴
Suspense는 더 이상 로딩 스피너용이 아닙니다. React 19에서 비동기 데이터 스트리밍의 핵심이 된 Suspense의 진화 과정과 시니어 개발자를 위한 필수 디자인 패턴 3가지를 소개해보려고 합니다.
2026년 5월 5일
[대딸깍의 시대] 소프트웨어 엔지니어는 무엇을 공부해야 할까요?
AI 시대, 프롬프트 엔지니어링이 대세인 지금, 소프트웨어 엔지니어는 무엇을 공부해야 할까요? 변하지 않는 본질을 찾아가는 한 개발자의 고민과 방향성을 공유합니다.
댓글
새 글 알림 받기
실무에서 바로 써먹을 수 있는 개발 팁과 경험담을 받아보세요
개인정보는 뉴스레터 발송 목적으로만 사용되며, 언제든 구독을 해지할 수 있습니다.