Skip to content

자바스크립트 이벤트 루프

이벤트 루프는 싱글 스레드인 자바스크립트가 비동기적으로 작동하는 것처럼 보이게 한다.

자바스크립트 내부에 콜 스택이 존재한다.
그리고 모든 실행된 함수는 콜 스택으로 들어가 실행된다.
이때, DOM 이벤트 함수, timer 함수나 Promise 함수는 콜스택에서 브라우저의 Web API로 이동되어 실행된다.
(이때 콜스택의 남은 함수들은 Web API와 별도로 실행중이다)
Web API에서 실행이 끝난 함수들은 바로 콜 스택으로 복귀하는 것이 아니라, 콜백큐로 보내진다.
그리고 이벤트 루프가 콜 스택과 콜백 큐를 감시하고 있다가 콜 스택이 비었을 때, 콜백큐의 함수들을 순차적으로 콜 스택으로 보내준다.
이렇듯 이벤트 루프는 비동기 작업을 처리하는 핵심 로직으로. 이벤트 루프를 통해서 비동기 작업의 순서와 일관성을 유지할 수 있게 해준다.