Oh My AlgorithmEN
←
JavaScript 런타임
← 전체 카탈로그

JavaScript 런타임

Node.js의 콜백·마이크로태스크와 이벤트 루프

Node.js 이벤트 루프

원리와 활용

동기 코드가 끝나면 준비된 작업을 순서에 따라 처리합니다.

활용 비동기 실행 순서와 지연 이해

I/O 콜백 안에서 네 작업을 예약합니다. 예약이 곧바로 실행을 뜻하지는 않으며 현재 동기 코드가 먼저 끝나야 합니다.

동기 코드실행 중우선 처리nextTick실행 대기후속 처리Promise실행 대기즉시 예약setImmediate실행 대기타이머setTimeout실행 대기Node.js ≥20 · CommonJS I/O
↔ 드래그하여 이동
fs.readFile('data.txt', () => { /* schedule callbacks */ });
자세히 알아보기

Node.js 20+의 CommonJS I/O 콜백 안에서 nextTick·Promise·setImmediate·setTimeout(0)을 예약하는 예제입니다. 이 조건에서는 nextTick, Promise, immediate, timer 순서로 관찰됩니다. 최상위 코드의 immediate와 timer 순서를 일반화하지 않습니다. Node 20의 libuv 변경으로 타이머 처리는 poll 뒤에 이뤄지며 긴 동기 작업은 이벤트 루프의 다른 콜백도 지연시킵니다.

학습 주제