ECMAScript에 대하여

태그
Javascript
용어/개념
ECMAScript?
우리가 보통 일상적으로 익히 부르는 자바스크립트의 오리지널 이름이다. 여기서 ECMA는 기관이름을 일컫는다. 즉 쉽게 말하면 ECMA라는 기관에서 정의한 언어의 명세가 바로 ECMAScript이다. 그런데 이 명세를 가지고 여러 회사나 기관 개인이 직접 브라우저를 구현했다. 그리고 브라우저는 스크립트를 실행시키는데 ECMAScript의 명세를 구체화하여 *브라우저상에서 돌아가게끔 만든걸 흔히 "자바스크립트"라고 부른다. 그러나 실제로 보면 결국 ECMAScript의 상품화된 버전명이 자바스크립트이기 때문에 그놈이 그놈이다.
그런데 ECMAScript와 실제 브라우저에서 돌아가는 자바스크립트는 조금의 차이가 있다. 아무튼 그렇기 때문에 실제로 여기서 다루는 내용들은 엄밀히 말하면 어떤 브라우저에 특화된 "자바스크립트"가 아닌 ECMAScript를 가지고 설명한다는 걸 이해할 필요가 있다. 이러한 ECMA 명세는 tc39.es에서 확인이 가능하다.
*브라우저 외부에서 돌아가는 자바스크립트의 대표격 중 하나가 바로 Node.js이다.
 
ECMAScript는 누구나 기여가능하다
ECMAScript의 특징은 누구나 명세를 제안할 수 있다는 것이다. 개인이든 기관이든 개발자든 개발자가 아니든 명세를 제안하는 것이 가능하다. 실제로 지금도 많은 사람들이 기여 하는 중이다.
 
ECMAScript의 짧은 연혁
ECMAScript는 1997년에 처음 명세가 출간된 이후로 계속해서 업데이트되고 있다. 이중 가장 괄목할만한 명세 표준 중하나가 바로 흔히 es6라고 불리는 ECMAScript 2016 표준이다. 그 이유는 Ecma TC39 이후에 지금까지 완전한 표준이 되어 쓰이는 문법들이 대표적으로 있기 때문이다.
  • let, const 도입
  • arrow function 도입
  • module 방식의 변화
  • class 개념 도입 등등.. 이외에도 많다.
그래서 보통은 es6 이전과 이후의 ECMAScript의 사용성이 많이 달라졌는데, 그 이전까진 사실상 폐기물로 취급받던 수준의 언어가, 그나마 현대적인 프로그래밍 패러다임들을 이 이후로 계속 차용하면서 점진적으로 변화했기 때문이다.
그 덕분에 이후에 다양한 생태계를 만드는데 기여했다. Typescript 라던가, Node.js라던가 Deno 라던가, Bun.js 등다양한 ECMAScript를 기반으로 하는 런타임들이 만들어지는데 적지 않게 기여했다고 볼 수 있겠다.