Skip to content

자바스크립트 이벤트 루프 구조 및 동작원리에 대해서 설명해 주세요


자바스크립트가 싱글스레드로 이루어져 있지만 Web API의 다양한 서비스를 동기/비동기적으로 처리하기 위해 이벤트 루프라는 작업 관리자를 사용합니다. 이벤트 루프에는 콜백큐라는 자료구조가 핵심인데요, 네트워크, 사용자 입력과 같은 요청을 별도의 스레드에게 넘긴 뒤 작업이 완료되면 콜백함수 형태로 등록한 함수들이 콜백큐에 들어가 대기하게 됩니다.

콜백큐는 선점형인가요, 비선점형인가요?#

콜백큐는 여러개의 큐로 이루어져 있는 비선점형 방식을 채택했습니다. 큐들 간에는 우선순위가 존재하고, 먼저 틱 계산과 같은 높은 우선순위의 큐를 소진시킨 뒤에 일반 큐를 처리합니다.