여기서 말하는 '타이머'라는 기능은, 우리가 익히 사용했던 setTimeout, setInterval, setImmediate 같은 함수를 의미합니다. 간단하게 살펴보도록 하겠습니다.
· setTimeout(callback, ms) : 주어진 밀리초 이후에 콜백 함수를 실행한다.
· setInterval(callback, ms) : 주어진 밀리초마다 콜백 함수를 반복 실행한다.
· setimmediate(callback) : 콜백 함수를 즉시 실행한다.
위에서 설명한 함수들은 모두 각각의 아이디를 반환하게되고, 이 아이디를 이용해 해당 타이머를 취소할 수도 있습니다. 각각 clearTimeout(id) / clearInterval(id) / clearImmediate(id) 입니다.
일단 설명만으로는 정확히 사용 방법이 와닿지 않을 수 있습니다. 아래 예제를 보고, 실행 순서와 출력 결과를 예상해 봅시다.
const timeout = setTimeout( () => {
console.log('1.5초 후 실행');
}, 1500 );
const interval = setInterval( () => {
console.log('1초 간격으로 실행')
}, 1000 );
const timeout2 = setTimeout( () => {
console.log('실행되지 않음');
}, 3000 );
setTimeout( () => {
clearTimeout(timeout2);
clearInterval(interval);
}, 2500 );
const immediate = setImmediate( () => {
console.log('즉시 실행');
} );
const immediate2 = setImmediate( () => {
console.log('실행되지 않음');
} );
clearImmediate(immediate2);
우선은 위 코드만 보고, 출력 결과를 예상해 보도록 하겠습니다. 정답은 아래와 같습니다.
/* 출력
즉시 실행
1초 간격으로 실행
1.5초 후 실행
1초 간격으로 실행
*/
위 결과를 이해하기 위해서, 시간대 별로 실행되는 함수를 순서대로 작성해 보겠습니다.
초 | 실행 | console |
0 | immediate |
즉시 실행 |
1 | interval | 1초 간격으로 실행 |
1.5 | timeout | 1.5초 후 실행 |
2 | interval | 1초 간격으로 실행 |
2.5 |
바로 이해가 가시나요? 우선 순서대로 차근차근 살펴본 다음, 다음 아티클에서 다시 살펴보도록 하겠습니다. 좀 더 디테일한 원리를 이해하고 싶다면 초반 아티클에서 살펴본 함수의 실행 구조를 다시 살펴보겠습니다.
'Programming > Node.js' 카테고리의 다른 글
4. Node 기능 살펴보기 (3) - 노드 내장 객체 : process 1 (0) | 2024.04.02 |
---|---|
4. Node 기능 살펴보기 (3) - 노드 내장 객체 : 타이머2 (0) | 2024.04.01 |
4. Node 기능 살펴보기 (3) - 노드 내장 객체 : console (0) | 2024.03.28 |
4. Node 기능 살펴보기 (3) - 노드 내장 객체 : global (0) | 2024.03.27 |
4. Node 기능 살펴보기 (2) - 모듈 사용하기 : __filename, __dirname (0) | 2024.03.26 |