ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 Chapter 11 JavaScript Engines
    Computer Science/JavaScript 2019.05.01 19:41

     

    자바스크립트 핵심 컨셉 33가지

     

    Chapter 11 JavaScript Engines

     

    이번 장에서 살펴볼 내용은 자바스크립트 엔진이다.

     

    우선 브라우저별로 자바스크립트 엔진은 약간 상이하며

     

    대표적으로 Google V8 엔진을 살펴보자.

     

    V8은 Chrome과 Node js에서 사용한다.

     

    또한 V8 엔진은 Google이 C++으로 제작한 오픈소스이다.

     

    출처: https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf

     

    Memory Heap은 메모리 할당이 일어나는 곳

     

    Call Stack은 코드 실행에 따라 스택이 쌓이는 곳이다.

     

    자바스크립트는 싱글 스레드 기반 언어이므로

     

    한 번에 한 작업만 순차적으로 처리할 수 있다.

     

    즉 위의 그림처럼 Call Stack이 하나다.

     

    출처: https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf

     

    위의 그림을 자세히 살펴보면,

     

    자바스크립트 엔진과 더불어 자바스크립트에

     

    관여하는 다른 요소들이 많다.

     

    그래서 자바스크립트는 싱글 스레드 기반 언어이지만

     

    막히지 않고(Non-Blocking) 동작하게 된다.

     

    Web API는 비동기적 작업을 처리한다.

     

    예를 들면,

     

    DOM의 이벤트 처리, 일정 시간 뒤에 동작, AJAX 통신 작업 등이 있다.

     

    Callback Queue(Message Queue)와 Event Loop는

     

    2019/04/28 - [Computer Science/JavaScript] - 자바스크립트 Chapter 9 Message Queue and Event Loop

     

    Chapter 9에서 다룬 내용이다.

     

    Web API에서 작업이 끝난 것을

     

    Callback Queue로 넘어가고

     

    EventLoop는 Call Stack이 비어있는지 확인하고

     

    Callback Queue에 가장 먼저 들어온 순서대로

     

    Call Stack으로 넘겨준다.

     

    대략적인 큰 그림으로 자바스크립트가 어떻게

     

    실행되고 있는지는 알았다.

     

    엔진의 깊이 있는 내부는 다음에 다시 살펴봐야겠다.

    댓글 0