JavaScript에서 특정 작업 사이에 일시적인 대기(sleep), 즉 지연(delay)을 주고 싶다면 setTimeout() 함수를 사용하면 됩니다. 이 함수는 시간 값을 밀리초(millisecond) 단위로 받습니다.
밀리초 단위 이해하기
1000밀리초 = 1초
2000밀리초 = 2초
5000밀리초 = 5초
예제: 5초 지연 후 두 값 더하기
아래 예제에서는 두 개의 값을 더하는 연산에 5초, 즉 5000밀리초의 지연을 적용해 보겠습니다.
var firstValue = 10;
var secondValue = 20;
var result = firstValue + secondValue;
setTimeout(function() {
}, (5 * 1000));
console.log("The result=" + result);
위 코드에서 setTimeout()은 콜백 함수를 5초 후에 실행하도록 설정합니다. 즉, 프로그램이 해당 지점에서 5초간 대기한 뒤 다음 작업을 진행하게 됩니다.
프로그램 실행 방법
Node.js 환경에서 위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node 파일명.js
여기서는 파일 이름이 demo95.js라고 가정하겠습니다.
node demo95.js
실행 결과
위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo95.js
The result=30
참고 사항
JavaScript는 기본적으로 단일 스레드 기반으로 동작하며, setTimeout()은 코드 실행을 완전히 멈추는 것이 아니라 비동기(asynchronous) 방식으로 콜백 함수의 실행을 예약하는 역할을 합니다. 따라서 정확한 순차적 지연이 필요하다면 콜백 함수 내부에 실행할 코드를 작성하거나, ES2017부터 지원되는 async/await와 Promise를 함께 활용하는 것이 좋습니다.