83. Javascript event loop

yeah·2023년 9월 18일
0

Today I Learned

목록 보기
70/70
post-thumbnail

Mission: Javascript event loop 관련 질문 정리

📌

Javascript event loop에 대해서 설명해주세요.

JavaScript의 이벤트 루프(Event Loop)는 자바스크립트의 비동기 동작을 관리하는 핵심 메커니즘입니다. 이를 간단히 설명하면

  • 호출 스택(Call Stack): 코드 실행에 사용되며 함수 호출을 기록합니다. 스택에 있는 함수가 실행 중일 때 다른 함수 호출은 대기합니다.
  • 이벤트 큐(Event Queue): 비동기 작업과 이벤트 핸들러(예: 클릭, 타이머 완료)에서 발생한 이벤트를 대기시키는 곳입니다.
  • 메시지 큐(Message Queue): 이벤트 큐와 유사하게 작동하며, 비동기 작업 및 이벤트를 저장합니다.
  • 이벤트 루프(Event Loop): 호출 스택에서 현재 실행 중인 작업이 없을 때 이벤트 큐(또는 메시지 큐)에서 이벤트를 가져와 호출 스택에 추가합니다. 이를 통해 비동기 코드가 실행되며, 프로그램이 논블로킹(non-blocking)으로 동작합니다.

    간단히 말해, 이벤트 루프는 호출 스택을 모니터링하고 비동기 작업이 완료되면 해당 작업을 호출 스택에 넣어 실행합니다. 이를 통해 자바스크립트는 동시성(concurrency)을 제공하면서도 데드락(deadlock)과 같은 문제를 피할 수 있습니다. 이벤트 루프는 비동기 코드를 관리하고 웹 브라우저에서는 브라우저 이벤트를 처리하는 데 사용되며, Node.js에서는 파일 시스템 접근 및 네트워크 요청과 같은 비동기 작업을 관리합니다.
profile
기록과 회고

0개의 댓글