강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

super0872님의 프로필 이미지
super0872

작성한 질문수

프론트엔드 마스터클래스

16. 이벤트 루프

이벤트루프 설명에 대한 질문입니다.

작성

·

4

·

수정됨

0

16강 이벤트루프 첫 부분 강의자료에서 표현되어 있는 부분인데

이벤트 루프 안에 들어간 것이 콜스택, 힙, 태스크 큐, 마이크로 태스크 큐, 렌더링 파이프라인 이다

콜스택/힙은 V8 엔진이 관리하고, 이벤트 루프는 브라우저가 별도로 관리하는 것으로 알고 있는데, 강의에서는 이벤트 루프 안에 콜스택/힙이 포함되어 있다고 설명되어 있어 이 부분이 조금 혼란스러워 질문드립니다.

제가 참고한 링크입니다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Execution_model#agent_execution_model

https://html.spec.whatwg.org/multipage/webappapis.html#event-loops

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. super0872님.

이벤트 루프와 관련된 혼란스러움에 대해 설명드리겠습니다. 주어진 내용에서 말씀하신 바와 같이 이벤트 루프는 JavaScript의 비동기 처리 모델에서 매우 핵심적인 역할을 합니다.

이벤트 루프 개념 요약

  1. 콜스택과 힙:

    • 콜스택은 JavaScript의 실행 컨텍스트가 관리되는 곳으로, 현재 실행 중인 함수와 그 함수가 호출한 다른 함수 정보들이 쌓여 있습니다.
    • 은 메모리가 동적으로 할당되는 곳으로, 객체나 함수 등의 데이터가 저장됩니다.
    • 이 두 부분은 V8 엔진이 관리하며, JavaScript의 기본적인 실행 환경을 구성합니다.
  2. 이벤트 루프:

    • 이벤트 루프는 비동기적으로 동작하는 코드의 실행 순서를 결정하는 메카니즘입니다.
    • 이벤트 루프 자체는 브라우저나 Node.js와 같은 런타임 환경이 관리합니다.
  3. 태스크 큐와 마이크로태스크 큐:

    • 태스크 큐는 이벤트 루프가 관리하는 큐로, 비동기작업 (예: setTimeout) 이 완료된 이후 실행될 콜백들이 저장됩니다.
    • 마이크로태스크 큐는 프로미스의 then이나 catch와 같은 마이크로태스크가 쌓이게 되는 곳으로, 우선순위가 높은 작업들이 실행됩니다.

한 번에 이해하기 어려운 이유

강의 설명에서는 여러 요소들을 하나의 큰 흐름으로 설명하기 위해 ‘이벤트 루프 안에 있다’고 접근했을 수 있습니다. 이는 JavaScript의 전반적인 비동기 처리 구조를 포괄적으로 이해하는 데 유용할 수 있습니다. 각각의 요소는 사실상 독립적이지만 협력하여 동작합니다.

위 링크들을 참고하시면 더 깊은 이해를 도울 수 있을 것입니다. 특히 MDN의 자바스크립트 실행 모델 문서는 JavaScript의 비동기 처리 모델을 이해하는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

super0872님의 프로필 이미지
super0872

작성한 질문수

질문하기