CS/기타
이벤트 루프(Event Loop)란?
여행 가고싶다
2023. 4. 5. 20:01
이벤트 루프에 대한 설명 전 자바스크립트의 특징을 알아보자면,
자바스크립트는 싱글 스레드 기반의 언어로 한 번에 하나의 작업만 처리할 수 있다.
이벤트 루프는 이러한 자바스크립트의 특징으로 한 번에 한 가지 일만 처리할 수 있어서 비동기적으로 처리하기 위한 방법이라고 할 수 있다.
이벤트가 발생시 호출되는 콜백 함수들을 콜백 큐에 전달하고 콜백 큐에 담겨있는 콜백 함수들을 콜스택으로 넘겨준다.
나눠서 얘기하면,
1. 이벤트 발생!
2. setTimeout같은 콜백함수를 다시 날려주는 함수들의 이벤트 실행 시 콜백 큐로 넘겨줌.
3. 콜백 큐를 콜스택으로 다시넘겨주는 역할을 하는 게 바로 이벤트 루프.
위와 같은 과정을 통해서 싱글스레드 언어인 자바스크립트가 비동기처럼 작동할 수 있게 된다.