Skip to content

V8 JavaScript 엔진

V8은 Google Chrome을 구동하는 JavaScript 엔진의 이름입니다. Chrome으로 검색하는 동안 우리의 JavaScript를 가져와 실행하는 것입니다.

V8은 JavaScript 엔진, 즉 JavaScript 코드를 구문 분석하고 실행합니다. DOM 및 기타 Web Platform API(모두 런타임 환경을 구성함)는 브라우저에서 제공합니다.

멋진 점은 JavaScript 엔진이 호스팅되는 브라우저와 독립적이라는 것입니다. 이 중요한 기능은 Node.js의 부상을 가능하게 했습니다. V8은 2009년에 Node.js를 구동하는 엔진으로 선택되었으며 Node.js의 인기가 폭발적으로 증가하면서 V8은 현재 JavaScript로 작성된 엄청난 양의 서버 측 코드를 구동하는 엔진이 되었습니다.

Node.js 생태계는 거대하며 Electron과 같은 프로젝트를 통해 데스크톱 앱을 구동하는 V8 덕분입니다.

기타 JS 엔진

다른 브라우저에는 자체 JavaScript 엔진이 있습니다.

  • SpiderMonkey (Firefox)
  • JavaScriptCore(일명 Nitro) (Safari)
  • Edge는 원래 Chakra를 기반으로 했지만 최근에는 Chromium과 V8 엔진을 사용하여 재구축되었습니다.

그리고 다른 많은 엔진도 존재합니다.

이러한 모든 엔진은 JavaScript에서 사용하는 표준인 ECMAScript라고도 하는 ECMA ES-262 표준을 구현합니다.

성능 추구

V8은 C++로 작성되었으며 지속적으로 개선되고 있습니다. 이식 가능하며 Mac, Windows, Linux 및 기타 여러 시스템에서 실행됩니다.

이 V8 소개에서는 V8의 구현 세부 정보를 무시합니다. 이러한 정보는 보다 권위 있는 사이트(예: V8 공식 사이트)에서 찾을 수 있으며, 시간이 지남에 따라 자주 급격하게 변경됩니다.

V8은 웹과 Node.js 생태계를 가속화하기 위해 주변의 다른 JavaScript 엔진과 마찬가지로 항상 진화하고 있습니다.

웹에서는 수년 동안 성능 경쟁이 진행되어 왔으며 우리(사용자와 개발자)는 매년 더 빠르고 최적화된 기계를 얻기 때문에 이 경쟁에서 많은 이점을 얻습니다.

컴파일

일반적으로 JavaScript는 인터프리터 언어로 간주되지만, 현대 JavaScript 엔진은 더 이상 JavaScript를 단순히 해석하지 않고 컴파일합니다.

이는 2009년 Firefox 3.5에 SpiderMonkey JavaScript 컴파일러가 추가된 이후로 계속되어 왔으며, 모든 사람이 이 아이디어를 따랐습니다.

JavaScript는 실행 속도를 높이기 위해 JIT(Just-In-Time) 컴파일과 함께 V8에 의해 내부적으로 컴파일됩니다.

이것은 직관에 반하는 것처럼 보일 수 있지만, 2004년 Google Maps가 도입된 이후로 JavaScript는 일반적으로 몇십 줄의 코드만 실행하던 언어에서 브라우저에서 실행되는 수천에서 수십만 줄의 코드를 가진 완전한 애플리케이션으로 진화했습니다.

우리의 애플리케이션은 이제 몇 가지 양식 유효성 검사 규칙이나 간단한 스크립트가 아니라 브라우저 내부에서 몇 시간 동안 실행될 수 있습니다.

이 새로운 세계에서 JavaScript를 컴파일하는 것은 완벽하게 이치에 맞습니다. 왜냐하면 JavaScript를 준비하는 데 약간 더 걸릴 수 있지만, 일단 완료되면 순수하게 해석된 코드보다 훨씬 더 성능이 좋기 때문입니다.