Thief of Wealth
article thumbnail

- 자바스크립트 엔진이란 무엇인가?

개발자가 작성한 자바스크립트 코드를 해석하고 실행히켜주는 역할을 하는 것이다.

즉, 자바스크립트 코드를 실행하는 프로그램 혹은 인터프리터인 것이다.

+ 즉, 자바스크립트를 해석하는 것이다. (Rendering Engine과는 다름)

 

- 대표적인 자바스크립트 엔진은?

대표적인 자바스크립트 엔진으로 Google V8이 있다. V8은 크롬과 노드js에서 사용한다.

ex)

V8 : 오픈소스로 구글에서 개발했습니다. C++로 작성되었으며, 구글 크롬과 Node.js에서 사용됩니다. 가장 유명합니다.

SpiderMonkey : 최초의 자바스크립트 엔진입니다. 넷스케이프 네비게이터 웹 브라우저를 위해 브랜던 아이크에 의해 개발되었습니다. 지금은 모질라 파이어폭스에 사용됩니다.

Rhino : 모질라 재단에서 운영합니다. 오픈소스이며, 전체가 자바로 개발되었습니다.

JavaScriptCore : 오픈소스, 니트로라는 이름으로도 알려져 있으며 애플이 사파리를 위해 개발했습니다.

Chakra(Jscript9) : 인터넷 익스플로러용입니다.

Chakra(JavaScript) : 마이크로소프트 엣지용입니다.

Nashron : 오픈JDK의 일환으로 오픈소스이며 Oracle Java Languages and Tool Group이 개발하였습니다. 

JerryScript : 사물인터넷을 위한 경량 엔진입니다.

 

- 자바스크립트 엔진은 무엇으로 이루어져 있는가?

자바스크립트 엔진은 Memory HeapCall Stack로 이루어져 있다.

 

- 각각을 설명해보시오

메모리힙은 말 그대로 메모리 할당이 일어나는 곳이고

콜 스택은 코드 실행에 따라서 호출 스택이 쌓이는 곳을 일컫는다.

 

 

- 자바스크립트 엔진은 그것들을 사용해서 어떻게 자바스크립트를 동작시키나요?

대표적인 자바스크립트 엔진인 V8을 예로 들어서 설명하겠습니다.

 

1. 엔진은 자바스크립트 코드를 가져와서 Parser에게 넘긴다.

2. Parser는 파싱을 통해서 AST(Abstact Syntax Tree)로 변환시킨다.

3. AST를 인터프리터를 통해서 byte code로 변환 시킨다.

4. bytecode를 실행하여 실제 작동하게 한다.

5. 자주 사용하는 코드는 TruboFan(최적화 담당 컴파일러)으로 보내진다.

6. TruboFan은 이 코드를 Optimized Machine Code로 컴파일하고 사용한다.

'개발 > FrontEnd Interview' 카테고리의 다른 글

함수의 동작 방식  (0) 2021.03.24
이벤트 루프란?  (0) 2021.03.21
자바스크립트에서 함수란 무엇인가?  (0) 2021.03.20
SPA 란 무엇일까요?  (0) 2021.03.16
[redux] 리덕스란?  (0) 2021.02.23
profile on loading

Loading...