JavaScript 엔진과 V8엔진

mango·2023년 8월 13일
0

🚄JavaScript

목록 보기
1/1

자바스크립트의 핵심인 '엔진 (Engine)'에 대해 이야기 하겠습니다.

자바스크립트 엔진

JavaScript 엔진은 자바스크립트 코드를 읽고 해석하여 실행 가능한 형태로 만들어주는 주요 컴포넌트다.

이 엔진은 코드를 파싱하고 컴파일 후 실행하는 단계로 이루어진다.

  • 파싱 (Parsing): 자바스크립트 코드를 이해할 수 있는 구조로 변환하는 과정이다.
    코드를 읽고 추상적인 구조로 변환한다
  • 컴파일 (Compilation): 파싱된 코드를 실행 가능한 형태로 변환하는 과정이다.
    컴파일 단계에서 코드 최적화도 수행되어 실행 속도를 향상 시킨다.
  • 코드 실행: 컴파일된 코드를 실행하여 원하는 동작을 수행한다. 이 단계에서 변수 할당, 함수 호출, 객체 생성 등이 실행되는 것이다.

주요 자바스크립트 엔진은 다음과 같다.

  1. V8 (Google): 구글에서 개발한 오픈 소스 자바스크립트 엔진으로, Chrome 브라우저와 Node.js 에서 사용된다.
  2. SpiderMonkey (Mozilla): Mozila Firefox 브라우저의 기본 자바스크립트 엔진이다.
  3. JavaScriptCore (Webkit): Apple Safari 브라우저에서 사용되는 자바스크립트 엔진으로, WebKit 프로젝트의 일부.
  4. Chakra (Microsoft): 이전 Microsoft Edge, 최신 버전 Edge는 Chromium 엔진 기반으로 V8을 사용함

V8 엔진

자바스크립트 엔진 중에서도 가장 유명한 것 중 하나가 바로 Google 의 V8 엔진이다.

오픈소스이므로 깃허브에서 다운받을 수 있다.

V8 깃허브
V8 공식문서

C++ 로 작성되었으며 ECMAScriptWeb Assembly 를 표준에 맞게 구현하였다.

V8 엔진은 Chrome 브라우저와 Node.js 에서 사용된다.

V8의 특징

  • 고성능 실행: V8은 Just-In-Time(JIT) 컴파일러를 사용해 코드를 기계어로 변환하고 실행한다. 이로 인해 빠른 실행 속도를 실현한다.
  • 메모리 관리: 가비지 컬렉션(GC)을 통해 필요하지 않은 객체를 자동으로 해제하여 메모리 누수를 방지한다.
  • 웹 어셈블리 지원: JavaScript 외에도 웹 어셈블리를 지원하여 웹에서 더 빠른 실행 속도를 제공한다.
  • 옵티마이저: 코드를 분석하여 실행 성능을 향상시키는 옵티마이저를 내장하고 있다.


profile
WebGL 개발

0개의 댓글