Node.js비동기

타이머와 주기 작업

`setTimeout`, `setInterval`, `clearInterval`을 이용해 지연 실행과 주기 작업을 구성하는 기본 패턴입니다.

마지막 수정 2026년 3월 19일

기본 패턴

javascript
const intervalId = setInterval(() => {
  console.log("polling...");
}, 1000);

setTimeout(() => {
  clearInterval(intervalId);
  console.log("stopped");
}, 5000);

설명

  • setTimeout은 한 번만, setInterval은 반복 실행입니다.
  • 상태 체크, 로그 전송, 단순 폴링 작업에서 자주 보입니다.
  • 주기 작업은 종료 조건을 반드시 같이 두어야 서버가 불필요하게 계속 돌지 않습니다.

짧은 예제

javascript
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

await delay(300);
console.log("after 300ms");

빠른 정리

함수설명
setTimeout(fn, ms)한 번 실행
setInterval(fn, ms)반복 실행
clearTimeout(id)timeout 취소
clearInterval(id)interval 취소

주의할 점

setInterval 안 작업이 오래 걸리면 호출이 밀리거나 겹친 것처럼 보일 수 있어, API 폴링은 재귀 setTimeout이 더 안전할 때도 많습니다.