setTimeout vs Promise.then vs queueMicrotask
·
Frontend Development
브라우저/Node.js 런타임에서 비동기 코드의 실행 순서를 정확히 이해하는 것은 디버깅과 성능 최적화의 출발점입니다. 특히 마이크로태스크 큐는 렌더링 타이밍과 상태 일관성에 직접적인 영향을 주므로, 실무에서 정확한 모델을 갖추는 것이 중요합니다.핵심 개념 정리Call Stack: 자바스크립트가 함수를 동기적으로 실행하는 스택.Web APIs(환경): 타이머, DOM, Fetch 등 비동기 작업이 대기하는 영역.Task Queue(매크로태스크 큐): setTimeout, setInterval, setImmediate(Node) 등이 들어가는 큐.Microtask Queue(마이크로태스크 큐): Promise.then/catch/finally, queueMicrotask, MutationObserver 등..