자바스크립트 엔진

자바스크립트 엔진(JavaScript engine)은 자바스크립트 코드를 실행하는 프로그램 또는 인터프리터이다. 자바스크립트 엔진은 전통적인 인터프리터일 수도 있고, 특정한 방식으로 바이트코드JIT 컴파일을 할 수 있다.[1] 여러 목적으로 자바스크립트 엔진을 사용하지만, 대체적으로 웹 브라우저에서 사용된다.[2][3]

역사

편집

2008~2009년에 2차 브라우저 전쟁 이전에 자바스크립트 엔진(자바스크립트 인터프리터, 자바스크립트 구현체로 불렸음)은 단순히 자바스크립트 소스 코드를 읽고 실행했던 인터프리터였다.

최초의 자바스크립트 엔진은 넷스케이프 내비게이터 웹 브라우저를 위해 넷스케이프브렌던 아이크에 의해 개발되었다. 코드명 스파이더몽키의 엔진은 C++로 구현되어 있다. 그 뒤로 (자바스크립트 1.5에서) ECMA-262 에디션 3을 준수하며 업데이트되었다. Norris Boyd(넷스케이프 출신)가 주로 개발한 라이노 엔진은 자바의 자바스크립트 구현체이다. 스파이더몽키처럼 라이노는 ECMA-262 에디션 3을 준수한다. 이 기술의 응용 프로그램에는 애플 사파리 4의 Nitro, 구글 크롬의 V8, 모질라 파이어폭스 3.5스파이더몽키가 있다.

현재까지 자바스크립트의 가장 일반적인 호스트 환경은 웹 브라우저이다. 웹 브라우저는 일반적으로 퍼블릭 API를 사용하여 문서 객체 모델(DOM)을 자바스크립트에 반영하는 일을 맡는 호스트 오브젝트를 생성한다.

자바스크립트 엔진

편집

활동 중인 프로젝트

편집

활동하지 않는 프로젝트

편집
  • Tamarin: 어도비 랩스에 의해 개발
  • Carakan: 오페라 소프트웨어가 개발. 오페라 웹 브라우저 버전 10.50까지 사용하다가 오페라 14 (2013년 출시)에서 V8로 전환.[7][8]
  • Futhark: 오페라 소프트웨어가 개발. 0.50부터 10.10까지 오페라 웹 브라우저에 쓰이다가 2010년 3월 출시된 오페라 10.50의 Carakan에 의해 대체됨.
  • Narcissus: 오픈 소스. 스파이더몽키를 개발한 Brendan Eich가 작성함.

구현체

편집

자바스크립트는 ECMA스크립트의 방언이며 수많은 응용 프로그램, 특히 웹 브라우저에서 지원된다. 방언에는 언어, 표준 라이브러리, 또 W3C 특화 문서 객체 모델(DOM)과 같은 관련 API의 확장이 포함될 수 있다. 즉, 응용 프로그램이 공통 하위 집합의 지원 기능과 APi(코어)만을 사용하여 작성되지 않을 경우 하나의 방언으로 작성된 응용 프로그램은 다른 것과는 호환되지 않을 수 있음을 뜻한다.

방언과 구현체는 별개이다. 방언은 한 언어의 종류이며 언어(방언)의 구현체는 해당 언어로 작성된 프로그램을 실행한다.

응용 프로그램 방언과 최신 버전 ECMAScript 에디션
구글 크롬, V8 엔진 자바스크립트 ECMA-262, 에디션 6
모질라 모질라 파이어폭스, 게코 레이아웃 엔진, 스파이더몽키, 라이노 자바스크립트 1.8.5 ECMA-262, 에디션 6
사파리, Nitro 엔진 자바스크립트 ECMA-262, 에디션 6
마이크로소프트 엣지, 차크라 엔진 자바스크립트 ECMA-262, 에디션 6
오페라, Carakan 엔진 (오페라 2015까지) 일부 자바스크립트 1.5, J스크립트 확장이 포함된 ECMAScript[9] ECMA-262, 에디션 5.1
KHTML 레이아수 엔진, KDE의 캉커러 자바스크립트 1.5 ECMA-262, 에디션 3
어도비 애크러뱃 자바스크립트 1.5 ECMA-262, 에디션 3
오픈라즐로 자바스크립트 1.4 ECMA-262, 에디션 3
맥스 (소프트웨어) 자바스크립트 1.5 ECMA-262, 에디션 3
ANT Galio 3 RMAI 확장이 포함된 자바스크립트 1.5 ECMA-262, 에디션 3

같이 보기

편집

각주

편집
  1. Looper, Jen (2015년 9월 21일). “A Guide to JavaScript Engines for Idiots”. Telerik Developer Network. 2016년 3월 17일에 확인함. 
  2. Shankland, Stephen (2010년 3월 2일). “Opera 10.5 brings new JavaScript engine”. 《CNET》. CBS Interactive. 2013년 10월 3일에 원본 문서에서 보존된 문서. 2012년 1월 30일에 확인함. 
  3. Shankland, Stephen (2009년 2월 5일). “Need for speed spurs Opera JavaScript overhaul”. 《CNET》. CBS Interactive. 2013년 3월 22일에 원본 문서에서 보존된 문서. 2017년 11월 11일에 확인함. 
  4. Marius Oiaga (2010년 3월 20일), “Internet Explorer 9 Beta Next - New IE9 Builds Every 8 Weeks”, 《softpedia.com》 (SoftNews NET SRL), 2010년 6월 28일에 확인함 
  5. “Targeting Edge vs. Legacy Engines in JsRT APIs”. Microsoft.com. 2015년 9월 10일에 확인함. 
  6. J. Laskey (2011년 7월 19일), 《Adventures in JSR-292 or How To Be A Duck Without Really Trying》 (PDF), Oracle 
  7. “Dev.Opera - Blog”. My.opera.com. 2016년 5월 8일에 확인함. 
  8. “Dev.Opera - Blog”. My.opera.com. 2016년 5월 8일에 확인함. 
  9. “Web specifications support in Opera Presto”. 《Opera.com》. Opera Software ASA. 2012년 6월 4일에 원본 문서에서 보존된 문서. 2010년 6월 28일에 확인함. 

외부 링크

편집