#action Blog 블로그 더하기 ##Blog {{{#!blog hyacinth 2014-04-15T10:30:48 자바스크립트 표준에 대한 정리 최근 자바스크립트가 표준이 새로 나왔다고 알고 있었는데 누가/어떻게 표준을 정하는지 더 자세히 알기 위해 자바스크립트 표준에 대해 정리했다. 이 글은 자바스크립트 표준, ECMAScript와 자바스크립트, J스크립트들의 관계에 대한 개요와 빠른 이해를 목표로 한다. === 들어가며 === 자바스크립트의 표준은 '''ECMAScript'''을 말한다. ECMAScript는 Ecma 인터내셔널의 ECMA-262 기술 규격에 정의된 스크립트 언어다. Ecma 인터내셔널은 정보와 통신 시스템을 위한 국제적 비영리 표준화 기구다. Ecma 인터내셔널은 1994년 European Computer Manufacturers Association에서 국제적 확장을 위해 지금 같이 이름이 바뀌었다. 흔히 ECMAScript를 자바스크립트 또는 J스크립트와 같은 말이라고 생각할 수 있지만 특별한 차이가 있다. ECMAScript와 자바스크립트, J스크립트의 관계를 이해하기 위해서는 ECMAScript의 역사를 알아야 한다. === 초기 모습 === 1996년 3월, 넷스케이프는 넷스케이프 네비게이터 2.0를 출시하면서부터 자바스크립트를 지원하기 시작했다. 웹 페이지 동작을 향상시키는 언어로서 자바스크립트는 성공적이었고, 마이크로소프트가 이와 '적당히' 호환되는 J스크립트를 개발하는 계기가 되었다. J스크립트는 1996년 8월, 인터넷 익스플로러 3.0에 포함되어 출시되었다. 넷스케이프는 자바스크립트의 표준화를 위해 자바스크립트 기술 규격을 Ecma 인터내셔널에 제출하였다. 이 규격에 대한 작업은 ECMA-262로 이름 붙여져 1996년 11월부터 시작됐다. __ECMAScript는 ECMA-262에 의해 표준화된 언어의 이름이다. 자바스크립트와 J스크립트는 모두 ECMAScript와의 호환을 목표로 한다.__ 그리고 각자 ECMA 규격에 포함되지 않는 독자적인 확장 기능을 제공한다. === 현재 === 현재 자바스크립트의 최신 표준은 ECMA-262 5.1판(2011년 6월 발표)이다. 2012년 이후 모든 브라우저는 ECMAScript 5.1의 기능을 전부 지원한다. 예전 브라우저의 경우 최소한 ECMAScript 3까지는 지원한다. ECMAScript 6는 현재 작업 중이다. === 그 외 이야기 === ECMAScript 3판은 2001년 발표되었고 ECMAScript 5판은 2009년 발표되었다. ECMAScript 4판은 완전히 폐기되었다(abandoned). ES4가 폐기된 이유에 대해서... > Significant work was done to develop a fourth edition of ECMAScript. Although that work was not completed and not published as the fourth edition of ECMAScript, it informs continuing evolution of the language. The present fifth edition of ECMAScript (published as ECMA-262 5th edition) codifies de facto interpretations of the language specification that have become common among browser implementations and adds support for new features that have emerged since the publication of the third edition. > From the 5th edition specification([http://www.ecma-international.org/publications/standards/Ecma-262.htm]) ECMAScript 4는 2005년 10월 Brendan Eich(자바스크립트 발명자이자 모질라의 CTO)가 처음 작업을 제안하면서 진행되었다. 이후 Microsoft와 Adobe(액션 스크립트)가 참여하고 변경하는 표준의 양이 커지자 격렬한 논쟁이 있었다. 특히 논쟁이 되는 부분은 자바스크립트를 전통적인 객체 지향 언어로 바꾸려는 시도였다. ([http://channy.creation.net/blog/454] ES4 뒷 이야기.) Ecma는 교착 상태를 해결하기 위해 2008년 7월 오슬로에서 위원회를 열었고 여기서 4가지로 요약되는 중요한 결정이 있었다[[footnote(http://www.2ality.com/2011/06/ecmascript.html)]]. 1. ES4는 폐기하고 버전 넘버가 증가된 ECMAScript를 개발한다. 2. 새로운 릴리즈는 ECMAScript 4보다는 크지 않은, ECMAScript 3보다는 큰 범위에서 개발한다. 이 버전은 코드네임 "Harmony"라고 이름 짓는다. 이것은 자연스럽게 이름 그대로 (조화로운) 미팅이 이루어질 수 있도록 있게 하기 위함이다. 3. ECMAScript 4의 packages, namespace, early binding 기능은 제거한다. 4. 다른 아이디어는 Ecma 기술 위원회 39(TC39) 구성원 모두와 합의하여 개발한다. 기본적으로, 자바스크립트가 발전하면서 여러 진영들 사이에서 많은 강한 의견들이 있었음을 이해해야 한다. 그리고 새로운 표준이 나오는 게 너무나 너무나 늦었다. 이미 주요 브라우저는 ECMAScript 4에 포함될 것라고 생각한 비표준 확장들이 있었다[[footnote(http://stackoverflow.com/questions/2329602/why-was-ecmascript-4th-edition-completely-scrapped)]]. Brendan Eich와 Ecma, 그리고 광범위한 기여자들은 이를 정리하는데 함께했고 Brendan Eich는 이를 "Harmony" 접근이라고 이름 지었다(2번 사항)[[footnote(https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html)]]. 모질라, Microsoft, Adobe 등 각자 이해관계를 가진 진영들과 합의하는데 얼마나 많은 고충이 있었는지 이해할 수 있다. Brendan Eich는 이 여정을 피터 잭슨의 반지의 제왕에 비교했다. ([http://www.flickr.com/photos/equanimity/4055151876/in/set-72157622684659298/]) ## Brendan's Lord of the Rings Analogy ## Brendan is Frodo; Douglas is Gandalf. "The pretty girl elf is Apple." Opera is the dwarf. Microsoft is one of the humans. (At YUICONF2009.) 1995년 자바스크립트가 탄생한 이후, 자바스크립트를 브라우저 밖에서도 사용하려는 노력이 끊임없이 이어져 왔다. 대표적인 프로젝트로 Helma, AppJet, Jaxer, Persever, Cappucino, Rhino 등이 있지만 큰 성공을 거두진 못하고 있다. === 참고 === }}} [[HTML(