이벤트 루프는 자바스크립트에서 비동기 처리를 담당하는 메커니즘이자 장치입니다. 이벤트 루프는자바스크립트의 비동기 작업들을 큐(Queue)에 추가하고 작업들을 순차적으로 처리합니다. 이벤트 루프는 싱글 스레드로 동작하며, 이를 통해 자바스크립트가 비동기 처리를 하면서도 블로킹이나 데드락 등의 문제를 방지하여 더욱 안정적인 비동기 처리를 가능하게 합니다.
이벤트 루프의 특징
이벤트 루프가 왜 중요함?
이벤트 루프 알고리즘
이벤트 루프는 런타임(브라우저 / 노드)에서 비동기 작업을 돕는다. 싱글스레드로 동작하는 자바스크립트 엔진이 왜 여러 작업들이 함께 발생하는 것 처럼 느껴지게 하는지, 자바스크립트 엔진과 이벤트 루프가 어떻게 동작하는지부터 알아보자.
이벤트 루프의 작업을 다루는 순서
콜스택이 비어있다는 전제하에,
1. 마이크로 태스크 큐에 있는 마이크로 태스크를 FIFO(선입선출)로 순차 실행한다.
2. 마이크로 태스크 큐가 비면, 렌더링 작업을 수행한다.
3. 렌더링 작업 후에는 매크로 태스크 큐(=태스크 큐)에 있는 태스크를 실행한다.
4. 매크로 태스크 큐의 작업이 1개 실행되고, 다시 1번으로 돌아간다.
주목할 점은 마이크로 태스크가 모두 처리되지 않으면, 렌더링이 되지 않는다는 것이다. 대표적인 마이크로 태스크 큐에 담길 태스크는 Promise 콜백과 then, catch, finally 콜백, async 함수 등이 있다.
출처
Chat Gpt
참고자료
브라우저의 구조와 동작원리