본문 바로가기

Programming/Node.js

4. Node 기능 살펴보기 (3) - 노드 내장 객체 : 타이머 1

node js logo image

 

 

 

 

여기서 말하는 '타이머'라는 기능은, 우리가 익히 사용했던 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
immediate2
즉시 실행
1 interval 1초 간격으로 실행
1.5 timeout 1.5초 후 실행
2 interval 1초 간격으로 실행
2.5 timeout2
interval
 

 

 

바로 이해가 가시나요? 우선 순서대로 차근차근 살펴본 다음, 다음 아티클에서 다시 살펴보도록 하겠습니다. 좀 더 디테일한 원리를 이해하고 싶다면 초반 아티클에서 살펴본 함수의 실행 구조를 다시 살펴보겠습니다. 

 

 

1. Node.js 핵심 개념 이해 (2) - Event Driven, Context [2/2]

앞선 내용에서, 자바스크립트와 노드의 이벤트 관련 원리들에 대해서 기본적인 설명을 진행했습니다. 이번 아티클을 읽기 위한 사전 지식이니 혹시라도 기억이 나지 않는다면 다시 한번 살펴보

nozeroslope.tistory.com