제목 : V8 자바스크립트 엔진
V8 은 Google Chrome 의 자바스크립트 엔진입니다.
이는 우리의 자바스크립트 를 가져오는 것이며, 크롬으로 브라우징을 할 때 실행합니다.
V8 은 자바스크립트 엔진입니다.
즉, 이는 자바스크립트 코드를 파싱하고 실행합니다.
그리고 DOM (Document Object Model) 과,
다른 웹 플랫폼 API 들 (이것들은 모든 실행 환경에 맞춰져 있습니다) 이 브라우저에 의해 제공됩니다.
멋진 것은 이 자바스크립트 엔진이 브라우저로부터 독립적이라는 것입니다.
이러한 핵심 기능은 Node.js 가 떠오를 수 있게 해 주었습니다.
V8 은 2009 년에 Node.js 의 엔진으로 선택받았습니다.
그리고 Node.js 의 인기가 폭발한 것 처럼,
V8은 자바스크립트로 작성된 엄청난 양의 서버 사이드 코드로 지금 구동되고 있는 엔진입니다.
Node.js 의 생태계는 거대하며,
V8 덕분에 Electron(일렉트론)과 같은 데스크톱 프로젝트 어플도 구동할 수 있습니다.
또 다른 JS 엔진들
다른 브라우저들도 그들의 자바스크립트 엔진을 가지고 있습니다 :
- Firefox 는 SpiderMonkey 을 가지고 있습니다.
- Safari 는 JavaScriptCore 를 가지고 있습니다. - Nitro 라고도 불린다.
- Edge 는 원래 Chakra 였으나, 현재는 Chromium 과 V8 엔진으로 재구축 되었습니다.
이러한 모든 엔진들은 ECMA ES-262 기준 을 구현했으며,
또한 ECMAScript 라고도 불리며, 자바스크립트의 표준으로 사용되고 있습니다.
성능에 대한 의문
V8 은 C++ 로 작성되었으며, 지속적으로 향상되었습니다.
또한 가벼울 뿐만 아니라, 맥, 윈도우, 리눅스 그리고 여러 다른 시스템에서도 구동됩니다.
이번 V8 소개에서는,
V8 에 대한 구현 세부사항을 무시할 겁니다.
이러한 세부사항은 V8 공식 사이트 와 같은 인증된 사이트에서 더 찾아 볼 수 있습니다.
그리고 이들은 시간이 지남에 따라 바뀌어 왔습니다.
V8 은 언제나 진화하며, 다른 자바스크립트 엔진들처럼,
Web 그리고 Node.js 생태계의 속도를 올리기 위해 진화해 왔습니다.
웹에서는, 몇 년 간 성능에 대해 경쟁이 있었습니다.
그리고 우리는 이러한 경쟁으로 인해 많은 헤택을 얻게 되었는데,
우리는 더욱 최적화 된 기기는 시간이 지날수록 더 빨라지기 때문입니다.
컴파일 (여기서는 - Compilation)
자바스크립트는 보통 인터프리터 언어 로 고려됩니다만,
모던 자바스크립트 엔진은 더 이상 그냥 자바스크립트를 인터프리트 하지 않고,
컴파일 합니다.
이러한 일은 2009 년에 일어났으며,
SpiderMonkey 자바스크립트 컴파일러가 Firefox 3.5 버전에 추가되었으며, 모두가 이러한 생각을 따랐을 때 입니다.
자바스크립트는 실행의 속도를 올리기 위해서 V8 엔진으로 JIT(Just In Time) 컴파일을 사용하여 전역적으로 컴파일링합니다.
이러한 방식은 직관적이지 않아 보일 수도 있겠지만,
2004 년에 구글 맵이 도입 된 이래로,
자바스크립트는 보통 어플리케이션을 완성하기 위해서 수십 개 만의 코드만 실행되던 언어에서,
브라우저에서 수십만의 코드를 실행하기 위해 언어로 진화했습니다.
우리의 어플리케이션들은 간단한 검증 규칙만을 가지고 있거나, 간단한 스크립트에서, 발전하여,
브라우저에서 몇 시간 동안 구동할 수 있게 되었습니다.
이러한 새로운 세상에서, 자바스크립트를 컴파일링 하는 것은 완벽하게 맞아 떨어졌는데,
완전히 인터프리터 된 코드 보다는, 준비된 자바스크립트가 훨씬 더 성능이 좋기 때문입니다.
'Node.js > Node.js 공식문서' 카테고리의 다른 글
Node.js 의 NODE_ENV 에 따른 차이점 (0) | 2024.09.19 |
---|---|
ECMAScript 2015 (ES6) 와 그 이후 (0) | 2024.09.18 |
NPM 패키지 매니저에 대한 소개 (2) | 2024.09.17 |
Node.js 공식문서 - Node.js 와 브라우저 간의 차이점 (0) | 2024.09.14 |
Node.js 공식문서 - Node.js 에 대한 소개 (0) | 2024.09.14 |