CS/기타

이벤트 루프(Event Loop)란?

여행 가고싶다 2023. 4. 5. 20:01

이벤트 루프에 대한 설명 전 자바스크립트의 특징을 알아보자면,

 

자바스크립트는 싱글 스레드 기반의 언어로 한 번에 하나의 작업만 처리할 수 있다.

 

이벤트 루프는 이러한 자바스크립트의 특징으로 한 번에 한 가지 일만 처리할 수 있어서 비동기적으로 처리하기 위한 방법이라고 할 수 있다.

브라우저의 기본 동작

이벤트가 발생시 호출되는 콜백 함수들을 콜백 큐에 전달하고 콜백 큐에 담겨있는 콜백 함수들을 콜스택으로 넘겨준다.

 

나눠서 얘기하면,

 

1. 이벤트 발생!

2. setTimeout같은 콜백함수를 다시 날려주는 함수들의 이벤트 실행 시 콜백 큐로 넘겨줌.

3. 콜백 큐를 콜스택으로 다시넘겨주는 역할을 하는 게 바로 이벤트 루프.

 

위와 같은 과정을 통해서 싱글스레드 언어인 자바스크립트가 비동기처럼 작동할 수 있게 된다.