ECMAScript

Nessun (토론 | 기여)님의 2019년 11월 11일 (월) 04:00 판 (→‎개요)
ECMAScript 표준 개정판
ECMAScript 5
ECMAScript 2015
ECMAScript 2016
ECMAScript 2017
ECMAScript 2018
ECMAScript 2019
ES Next

개요

ECMAScript(줄여서 ES)는 Ecma International에서 관리하는, 프로그래밍 언어 JavaScript의 표준 명세이다. 코드는 ECMA-262이다. 2019년 기준 최신 표준은 ECMAScript 2019이다.

ISO/IEC에선 ECMAScript의 일부 버전을 인용하여 표준으로 지정하고 있다. 2019년 기준으로 ISO/IEC 22275:2018로 ECMAScript 2018 버전이 ISO/IEC 표준으로 지정되어 있다.

ECMAScript를 관리하는 Ecma 내의 기술 위원회(Technial Committee)는 TC39라고 부른다. 모질라, 구글, 애플, 마이크로소프트 등의 주요 브라우저 개발사들과 페이스북, 트위터 등의 인터넷 기업들이 참여하고 있다.

명칭

JavaScript의 표준 스펙이지만 JavaScript라는 이름을 사용하지 못한 것은 당시 Netscape사와 Microsoft를 비롯한 표준화 위원회의 회원사들 간의 갈등 때문이라고 한다. 당시에는 JavaScript라는 이름은 Netscape만이 사용하고 있었으며, 비슷한 스크립트인 JScript를 MS가 자체적으로 구현해 사용하고 있었다. 특히 JavaScript라는 이름에 Java를 포함시킨 것은 Sun이 Netscape에게 허가해준 것이기 때문에 표준 이름으로 쓰기에는 상표권 문제가 걸렸다. 현재 JavaScript는 오라클의 등록상표이다.

JavaScript와 JScript 외에 ActionScript도 ECMAScript 표준을 따르는 언어의 하나이다.

버전

ECMAScript는 2015년 이후 매해 개정판이 발표되고 있다. 2015년 ECMAScript 2015가 나오기 전에는 ECMAScript 1, 2, 3, 5, 5.1[1]과 같이 개정판 번호를 사용했으나, 2015년부터는 발표 연도를 사용하는 것이 표준이다. 하지만 ECMAScript 2015를 ECMAScript 6과 같이 부르는 것도 흔하다. 이름을 줄여서 ES6, ES7처럼 쓰기도 한다. 2019년 기준 최신 개정판은 ECMAScript 2019이며 이는 10번째 개정판(ES10)이다. 앞으로 표준에 등재될 후보들은 tc39 proposals에서 볼 수 있다. 이런 후보들을 ES Next라고 부르기도 한다.

ECMAScript의 최신 표준을 구현하는 것은 각 자바스크립트 엔진 제작자들의 선택에 달려 있다. 구글 크롬이 사용하는 V8이나 파이어폭스SpiderMonkey와 같은 메이저 엔진은 최신 표준을 구현하는데 적극적이긴 하지만, 인터넷 익스플로러는 보안 패치 이외의 업데이트가 되지 않기 때문에 새 기능 사용에 제약을 받는 일이 많다. Babel과 같은 transpiler는 최신 표준 문법을 옛날 표준, 주로 ES5로 바꿔주어 IE와 같은 구식 브라우저에서 사용할 수 있게 해준다. 또한 아직 표준으로 확정되지 않은 제안 단계의 표준들을 미리 사용할 수 있도록 변경해주는 기능도 제공한다. 문법상 변경이 아닌 API 수준의 차이는 Polyfill 라이브러리를 이용하면 새로 나온 함수나 객체 등을 이용할 수 있다.

각주

  1. 버전 4는 표준으로 지정하는데 실패했다.