본문 바로가기
🎪 놀고있네/Javascript

[JS] JavaScript Engine의 종류

by 냥장판 2019. 12. 13.
반응형

목표: JavaScript에 대해 알아보자.

요약

  1. JavaScript는 Client-side scripting language이다.
  2. JavaScript를 해석하는 Engine(V8, Rhino, Chakra, Webkit 등)은 여러가지가 있다.

 

 

웹 페이지는 HTML, CSS, JavaScript로 구성되어있다.  
1) HTML은 웹페이지의 컨텐츠를 제공한다. 
2) CSS는 HTML의 구성요소들에 색상, 글씨체와 같은 디자인 요소를 관리한다. 
3) JavaScript는 웹페이지와 사용자 간에 상호작용을 위한 동작(behavior) 중심의 스크립트 언어이다.

 

Source: Quora

 

1. JavaScript는 Client-side scripting language

 

JavaScript는 client-side에 사용되는 스크립트 언어이다. client-side는 사용자의 컴퓨터에서 스크립트가 동작하는 것을 말한다.

반대로, server-side는 web server, web application server, framework, database 등에서 필히 구동, 실행되어야지만 동작되는 것을 말한다.

 

Source: https://www.techwebspace.com/server-side-vs-client-side-programming-languages/

 

2. JavaScript를 해석하는 Engine의 종류

JavaScript의 엔진은 일반적으로 Google의 V8이 가장 유명하다.

사실 JavaScript 엔진은 V8 엔진 이외에도 다양한하다.

 

엔진의 기본역할은 JavaScript를 해석하는 것이다.

JavaScript엔진의 종류에 대해서 알아보겠다.

  • V8 Engine
    • C++로 작성된 JS Engine 이다.
    • 엔진의 역할은 Interpreter를 사용하는 대신 JavaScript code를 machine code로 변환한다. 
    • 재단/사용처: Google/Chrome, Node JS
  • Rhino Engine
    • Java로 작성된 JS engine 이다.
    • SpiderMonkey의 Java 버전이라고 보면 된다.
    • 엔진의 역할은 Interpreter 및 Compiler로 JavaScript code를 Java bytecode(Java의 class 파일)로 변환한다.
    • 단점은 bytecode를 생성하는 데 컴파일 시간이 길고, 생성된 class(Java bytecode)를 불러오는 것에 많은 리로스가 든다.
    • 재단/사용처: Mozilla 
  • SpiderMonkey Engine
    • C로 작성된 JS engine 이다.
    • Rhino의 C 버전이라고 보면 된다.
    • 엔진의 역할은 Interpreter 및 Compiler로 JavaScript Script code를 C language code로 변환한다. 
    • 재단/사용처: Mozilla/Firefox 
  • Chakra Engine
    • 재단/사용처: Microsoft/IE 9+, Edge browser
  • Webkit (Rendering) Engine
    • 재단/사용처: Apple/Safari
  • Rendering Engine: 웹브라우저에 레이아웃을 랜딩하는 Engine (요청한 HTML을 웹브라우저가 읽음 > 분석 > 파싱(Parsing) > 화면 출력)

 

이 외에도 여러 종류의 JavaScript Engine이 존재한다.


 

반응형

'🎪 놀고있네 > Javascript' 카테고리의 다른 글

[JS] HTML에서 JavaScript 분리하기  (4) 2020.04.21
[JS] JavaScript 출력하기 - alert 메소드  (0) 2020.03.30
[JS] JavaScript 사용하기  (0) 2020.03.13
[JS] JavaScript 란  (4) 2020.03.09
[JS] JavaScript Engine 이란  (3) 2019.12.14

댓글