**스케줄러(Scheduler)**는 특정 시간이나 간격에 따라 작업을 자동으로 실행할 수 있게 해주는 기능입니다. 이는 주기적인 작업(예: 백업, 이메일 전송, 데이터 수집 등)을 자동으로 처리하는 데 유용하며, 다양한 스케줄링 방식이 존재합니다. Node.js에서 주로 사용되는 스케줄링 방법에는
setTimeout
,setInterval
, 그리고 타사 라이브러리(예:node-schedule
,cron
)를 이용한 방법이 있습니다.
setTimeout
, setInterval
setTimeout
은 특정 시간이 지난 후 한 번만 작업을 실행하는 함수입니다.
setTimeout(() => {
console.log('3초 후에 이 메시지가 출력됩니다.');
}, 3000); // 3초 후에 실행
setInterval
은 일정한 시간 간격마다 반복적으로 작업을 실행하는 함수입니다.
clearInterval()
을 사용하여 멈출 수 있습니다.
const intervalId = setInterval(() => {
console.log('이 메시지는 5초마다 출력됩니다.');
}, 5000);
setTimeout(() => {
clearInterval(intervalId);
console.log('더 이상 반복되지 않습니다.');
}, 15000); // 15초 후에 멈춤
node-schedule
은 크론(Cron) 스타일로 정교한 스케줄링 작업을 설정할 수 있는 라이브러리입니다. 복잡한 주기적인 작업을 쉽게 설정할 수 있도록 해줍니다.
node-schedule
의 주요 기능과 특징
node-schedule
은 크론 스타일의 문자열을 사용하여 작업을 예약할 수 있습니다. 예를 들어, 매일 특정 시간에 작업을 실행하거나 매주 특정 요일에 작업을 예약하는 것이 가능합니다.node-schedule
은 시스템 시간이 바뀌지 않는 한 정확하게 설정된 시간에 작업을 실행합니다. 이는 특정한 시간에 작업을 해야 하는 경우에 유용합니다.