본문 바로가기
Computer Science/JavaScript

자바스크립트 Chapter 11 JavaScript Engines

by Write and Remember 2019. 5. 1.

 

자바스크립트 핵심 컨셉 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, Task Queue)와 Event Loop는

 

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

 

자바스크립트 Chapter 9 Message Queue and Event Loop

자바스크립트 핵심 컨셉 33가지 Chapter 9 Message Queue and Event Loop The Call Stack 자바스크립트 엔진에는 현재 실행 중인 함수와 그 이후에 실행될 함수를 추적하는 스택(Stack: LIFO) 구조인 단일 호출..

jeongw00.tistory.com

 

Chapter 9에서 다룬 내용이다.

 

Web API에서 작업이 끝난 것을

 

Callback Queue로 넘어가고

 

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

 

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

 

Call Stack으로 넘겨준다.

 

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

 

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

댓글0