[javascript] 이벤트 루프의 호출 스택과 이벤트 큐의 관계

자바스크립트에서 비동기 동작을 관리하는 핵심 메커니즘은 이벤트 루프이벤트 큐입니다. 이 둘은 함께 작동하여 비동기 작업을 조율하고 실행합니다.

호출 스택

호출 스택은 현재 실행 중인 함수의 목록을 나타내며, 함수가 호출되면 해당 함수의 실행 컨텍스트가 스택에 푸시되며, 함수 실행이 완료되면 해당 컨텍스트가 스택에서 팝됩니다.

이벤트 루프

이벤트 루프는 호출 스택과 함께 작동하며, 이벤트 루프가 호출 스택이 비어 있을 때 이벤트 큐의 첫 번째 이벤트를 호출 스택으로 이동시킵니다.

이벤트 큐

이벤트 큐는 비동기적으로 처리해야 할 작업들의 대기열을 의미하며, 이벤트 루프가 호출 스택이 비어있을 때, 이벤트 큐에 있는 작업을 호출 스택으로 옮겨 실행합니다.

이렇듯 호출 스택과 이벤트 큐는 함께 작동하여 자바스크립트의 비동기 처리를 담당하며, 이벤트 루프가 이 둘을 조율하여 신속하고 효과적으로 실행될 수 있도록 도와줍니다.

자세한 내용은 MDN Web Docs - Concurrency model and the event loop을 참고하세요.