본문 바로가기
javascript pure/javascript 코어 개념

10. 이벤트 루프(Event Loop) - 1

by leo2114 2024. 2. 16.
반응형

이벤트 루프의 개념과 동작 원리

이벤트 루프는 JavaScript의 비동기성을 관리하고 실행 순서를 조절하는 핵심적인 메커니즘입니다. 이를 이해하면 JavaScript의 동작 원리를 파악하는 데 큰 도움이 됩니다. 이번 챕터에서는 이벤트 루프의 개념과 동작 원리를 알아보고, 간단한 코드 예제를 통해 실제 동작을 살펴보겠습니다.

1. 이벤트 루프의 개념

이벤트 루프는 JavaScript 엔진이 비동기적인 작업을 처리하고 실행 순서를 관리하는 메커니즘입니다. JavaScript는 싱글 스레드 언어이기 때문에 이벤트 루프를 통해 동시에 여러 작업을 처리할 수 있습니다. 이벤트 루프는 콜 스택과 태스크 큐를 기반으로 동작합니다.

2. 이벤트 루프의 동작 원리

  • 콜 스택: 함수 호출이 스택에 쌓이고 실행됩니다. 함수가 실행을 마치면 스택에서 제거됩니다.
  • 태스크 큐: 비동기 작업이 완료되면 이벤트 루프에 의해 태스크 큐에 이벤트가 추가됩니다. 이벤트 루프는 콜 스택이 비어있을 때마다 태스크 큐에서 이벤트를 가져와 실행합니다.
  • 이벤트 루프: 콜 스택이 비어있을 때마다 태스크 큐에서 이벤트를 가져와 실행하여 비동기 작업을 처리합니다.

3. 예제 코드

아래는 간단한 비동기 작업을 처리하는 예제 코드입니다.

console.log('Start');

setTimeout(() => {
  console.log('Async task 1');
}, 0);

setTimeout(() => {
  console.log('Async task 2');
}, 0);

console.log('End');

 

위의 코드에서 'Start', 'End'가 먼저 출력되고, 그 후에 'Async task 1', 'Async task 2'가 출력됩니다. 이는 setTimeout 함수가 비동기적으로 실행되기 때문에 발생하는 현상입니다. setTimeout 함수의 콜백 함수는 태스크 큐에 추가되어 이벤트 루프에 의해 실행됩니다.

4. 결론

이벤트 루프는 JavaScript의 비동기적인 동작을 관리하고 실행 순서를 조절하는 핵심 메커니즘입니다. 이를 통해 JavaScript는 싱글 스레드 환경에서도 효율적으로 다양한 작업을 처리할 수 있습니다. 이해하기 어려운 개념이지만, 이벤트 루프를 이해하면 JavaScript의 동작 원리를 깊이 이해하는 데 도움이 됩니다.

반응형