🌀 Node.js 이벤트 루프 전체 프로세스

JS 코드 → V8 호출 스택 → 이벤트 루프 6페이즈 → libuv 스레드 풀 / epoll까지의 모든 흐름

시작하려면 다음 → 버튼을 누르세요.
Step 0 / 20

🔧 V8 호출 스택

🖥️ 콘솔 출력

📝 JavaScript 코드

🔄 이벤트 루프 6페이즈 (libuv)

⚡ nextTick → microtask 큐 비우기
⏰ TIMERS
setTimeout / setInterval 만료 콜백
⚡ nextTick → microtask
📦 PENDING CALLBACKS
일부 시스템 콜백 (TCP 에러 등)
⚡ nextTick → microtask
⚙️ IDLE / PREPARE
내부용 (libuv가 사용)
⚡ nextTick → microtask
🌐 POLL ← epoll 호출
I/O 이벤트 대기/처리 (fs, 소켓 등)
⚡ nextTick → microtask
✅ CHECK
setImmediate 콜백
⚡ nextTick → microtask
🔚 CLOSE CALLBACKS
socket.on('close') 등
↻ 다시 timers로

📥 큐 상태

process.nextTick 큐 ★ 최우선
마이크로태스크 큐 (Promise.then) 2순위
Timer 힙 (setTimeout)
Poll 큐 (I/O 완료)
Check 큐 (setImmediate)

🔩 libuv 내부

스레드 풀 (UV_THREADPOOL_SIZE=4)

T1
idle
T2
idle
T3
idle
T4
idle

OS 비동기 I/O 인터페이스

epoll / kqueue / IOCP