더북(TheBook)

다음 예제는 블로킹 방식의 코드입니다. 콘솔 결과를 미리 예측해보세요.

function longRunningTask() {
  // 오래 걸리는 작업
  console.log('작업 끝');
}

console.log('시작');
longRunningTask();
console.log('다음 작업');

결과는 다음과 같습니다.

콘솔

시작
작업 끝
다음 작업

작업을 수행하는 데 오래 걸리는 longRunningTask 함수가 있고, 이 함수가 블로킹 방식의 I/O 작업을 한다고 생각해봅시다. 이 작업이 완료되기 전까지는 이어지는 console.log('다음 작업')이 호출되지 않습니다.

이번에는 setTimeout을 사용해서 코드를 바꿔보겠습니다.

function longRunningTask() {
  // 오래 걸리는 작업
  console.log('작업 끝');
}
console.log('시작');
setTimeout(longRunningTask, 0);
console.log('다음 작업');

결과는 다음과 같습니다.

콘솔

시작
다음 작업
작업 끝
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.