자바스크립트의 단일 스레드 환경에서 이벤트 루프가 비동기 작업을 관리함
태스크 큐는 매크로/마이크로 태스크로 구분되며 실행 순서에 영향
Promise는 마이크로 태스크로, setTimeout보다 먼저 실행됨
자바스크립트 이벤트 루프는 호출 스택과 태스크 큐를 순환하며 비동기 작업을 관리한다. 구체적으로, 호출 스택이 비어있을 때 태스크 큐에서 콜백을 가져와 실행한다. 따라서 단일 스레드 환경에서도 비동기적인 동작을 가능하게 한다.
태스크 큐는 매크로 태스크와 마이크로 태스크로 구분되며, 실행 순서가 다르다. Promise는 로, 보다 먼저 실행된다. 반면, 는 이 완전히 비워진 후에 실행된다는 차이점이 있다.
이벤트 루프를 이해하면 비동기 코드의 실행 순서를 정확히 예측할 수 있다. 따라서 Promise와 setTimeout의 실행 순서 차이를 인지하여 UI 업데이트와 서버 요청 간의 충돌을 방지할 수 있다. 결과적으로 디버깅 시간 단축 및 코드 안정성 확보에 기여한다.