자바스크립트 이벤트 루프, 실행 순서가 헷갈릴 때 바로 이해하는 방법 목차 이벤트 루프가 필요한 이유 콜 스택, 태스크 큐, 마이크로태스크 큐를 분리해서 보기 실제로 어떤 순서로 실행되는가 실험 환경은 이렇게 준비하면 충분합니다 브라우저에서 실행 순서를 직접 확인해보기 Node.js에서는 무엇이 다를까 실무에서 자주 틀리는 포인트 실행 순서 버그를 잡는 가장 현실적인 방법 빠른 답 이벤트 루프는 콜 스택이 비었을 때 대기 중인 작업을 실행 순서에 맞게 넘겨주는 구조입니다. Promise.then, queueMicrotask는 보통 setTimeout보다 먼저 실행되며, 이유는 마이크로태스크가 더 높은 우선순위를 가지기 때문입니다. setTimeout(fn, 0)은 즉시 실행이 아니라 현재 동기 코드가 끝난 뒤 다음 턴으로 미루는 동작에 가깝습니다. 실행 순서 버그를 잡을 때는 콜 스택, 마이크로태스크, 매크로태스크를 분리해서 로그로 확인해야 합니다. 초안을 발행용 글로 다시 정리하고 있습니다. 빠른 답 을 짧게 다듬고, 브라우저·Node.js에서 바로 실행해 볼 수 있는 설정과 예제를 중심으로 본문을 재구성하겠습니다.# 자바스크립트 이벤트 루프, 실행 순서가 헷갈릴 때 바로 이해하는 방법 빠른 답 이벤트 루프는 콜 스택이 비는 시점마다 대기 중인 작업을 확인하고, 우선순위에 맞게 다시 실행 흐름에 올리는 런타임 메커니즘입니다. Promise.then , queueMicrotask , await 이후 코드는 보통 setTimeout(..., 0) 보다 먼저 실행됩니다. 이들은 마이크로태스크로 처리되기 때문입니다. setTimeout(fn, 0) 은 즉시 실행이 아니라 현재 동기 코드와 현재 턴의 마이크로태스크가 끝난 뒤 다음 태스크로 넘기는 예약에 가깝습니다. 실행 순서가 꼬일 때는 코드를 동기 , 마이크로태스크 , 매크로태스크 로 나눠 로그를 찍으면 원인을 가장 빨리 찾을 수 있습니다. 이벤트 루프가 필요한 이유 자바스크립트는 ...