{{위키데이터 속성 추적}}
{{소프트웨어 정보
| 이름 = V8
| 로고 = V8 JavaScript engine logo 2.svg
| 화면 =
| 설명 =
| released               = {{시작 날짜와 나이|2008|9|2|df=y}}
| 최근 버전 = {{wikidata|property|edit|reference|P548=Q2804309|P348}}
| 최근 버전 출시일 = {{wikidata|qualifier|P548=Q2804309|P348|P577}} ({{Time ago| {{wikidata|qualifier|raw|P548=Q2804309|P348|P577}} }})
| 미리보기 버전 =
| 미리보기 버전 출시일 =
| 개발자 = 크로뮴 프로젝트 참여자 - [[구글]], [[오페라 소프트웨어]], [[어도비]], [[인텔]], [[삼성전자]]
| 운영체제 = [[크로스 플랫폼]]
| 프로그래밍 언어 = [[C++]], [[자바스크립트]]
| 종류 = [[레이아웃 엔진]]
| 라이선스 = [[BSD 허가서]]
| 웹사이트 = {{공식 URL}}
}}

'''V8'''은 [[웹 브라우저]]를 만드는 데 기반을 제공하는 [[오픈 소스]] [[자바스크립트 엔진]]이다. [[구글 크롬]] 브라우저와 안드로이드 브라우저에 탑재되어 있다.<ref name="comic">{{웹 인용|first=Philipp|last=Lenssen|date=1 September 2008|title=Google on Google Chrome - comic book|url=http://blogoscoped.com/google-chrome/|work=[[Google Blogoscoped]]|publisher=[[Google]]|accessdate=17 August 2010}}</ref> '''V8'''로 줄여 불리기도 하며, 현재 [[라스 백 (컴퓨터 프로그래머)|라스 백]]이 책임 프로그래머이다.<ref>{{웹 인용|url=http://www.ft.com/cms/s/2/03775904-177c-11de-8c9d-0000779fd2ac.html|title=The genius behind Google’s web browser|last=Minto|first=Rob|date=27 March 2009|publisher=[[Financial Times]]|accessdate=17 August 2010}}</ref> ECMAScript(ECMA - 262) 3rd Edition 규격의 C++로 작성되었으며, 독립적으로 실행이 가능하다. 또한 C++로 작성된 응용 프로그램의 일부로 작동할 수 있다.

V8은 자바스크립트를 [[바이트코드]](bytecode)로 컴파일하고 실행하는 방식을 사용한다.([[JIT 컴파일]]) 기계어로 정적 컴파일하여 실행한다는 루머가 있지만 이는 사실이 아니다.
추가적인 속도향상을 위해 인라인 캐싱(inline caching)과 같은 최적화 기법을 적용하였다.

== 역사 ==
V8 [[어셈블리어|어셈블러]]는 [[스트롱토크]] 어셈블러에 기반을 둔다.<ref>{{웹 인용|url=https://code.google.com/p/v8/source/browse/trunk/LICENSE |title=V8 JavaScript Engine: License |work=[[Google Code]] |publisher=[[Google]] |accessdate=17 August 2010 |url-status=dead |archiveurl=https://web.archive.org/web/20100722105022/http://code.google.com/p/v8/source/browse/trunk/LICENSE |archivedate=July 22, 2010 }}</ref> 2010년 12월 7일, 속도 개선과 더불어 크랭크섀프트라는 이름의 새로운 컴파일링 인프라스트럭처가 출시되었다.<ref>{{웹 인용 |url=https://blog.chromium.org/2010/12/new-crankshaft-for-v8.html |title=A New Crankshaft for V8 |date=7 December 2010 |work=Chromium Blog |publisher=[[Google]] |accessdate=22 April 2011 |보존url=https://web.archive.org/web/20190225164913/https://blog.chromium.org/2010/12/new-crankshaft-for-v8.html |보존날짜=2019-02-25 |url-status=dead }}</ref> 2015년 크롬 버전 41 이후 이를테면 [[asm.js]]를 위해 터보팬(TurboFan) 프로젝트가 추가되어 더 빠른 속도를 가능케 했다.<ref>{{웹 인용 |url=https://blog.chromium.org/2015/07/revving-up-javascript-performance-with.html |title=Revving up JavaScript performance with TurboFan |date=7 July 2015 |accessdate=5 March 2016 |보존url=https://web.archive.org/web/20190209032722/https://blog.chromium.org/2015/07/revving-up-javascript-performance-with.html |보존날짜=2019-02-09 |url-status=dead }}</ref>

2016년, 메모리 용량이 작은 안드로이드 전화의 메모리의 사용률을 터보팬과 크랭크섀프트 대비 줄이는 것이 목표인 이그니션(Ignition) 인터프리터가 V8에 추가되었다.<ref>{{웹 인용|url=https://www.youtube.com/watch?v=r5OWCtuKiAk |title=BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8 |date=26 June 2016 |accessdate=2 September 2016}}</ref>

2017년, V8은 완전히 새로운 컴파일러 파이프라인을 도입했으며, 이그니션(인터프리터)과 터보팬(최적화 컴파일러)으로 구성된다. V8 버전 5.9를 기점으로, 풀-코드젠과 크랭크섀프트는 더 이상 자바스크립트 실행을 위해 V8에 사용되지 않는데, 그 이유는 팀이 더 이상 새로운 자바스크립트 언어 기능, 또 그 기능에 필요한 최적화를 계속 관리할 수 없다고 생각했기 때문이다.<ref>{{웹 인용 |url=https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html |title=Launching Ignition and TurboFan |date=16 May 2017 |accessdate=13 July 2017 |보존url=https://web.archive.org/web/20180904192238/https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html |보존날짜=2018-09-04 |url-status=dead }}</ref>

== 같이 보기 ==
{{위키공용분류}}
* [[블링크 (레이아웃 엔진)|블링크]]
* [[웹킷]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{ECMA스크립트}}
{{구글}}
{{Node.js}}

[[분류:자바스크립트 엔진]]
[[분류:가상 머신]]
[[분류:구글의 소프트웨어]]
[[분류:구글 크롬]]
[[분류:BSD 라이선스 소프트웨어]]
[[분류:자유 컴파일러와 인터프리터]]