Javascript vs ECMAScript

Javascript = ECMAScript ?

최초의 Javascript는 넷스케이프의 웹 브라우저에서 정적 HTML페이지를 동적으로 표현하기 위하여 탄생하였다.

그리고 마이크로소프트에서 이 Javascript의 파생 버전인 JScript를 만들었다.

당시 웹브라우저 시장은 넷스케이프가 압도적이었으나 MS사가 Windows에 자신들의 웹브라우저를 끼워팔면서 점유율은 역전되었다.

이 때 많은 웹브라우저 제조사들은 자사의 브라우저에서만 동작하는 기능을 경쟁적으로 만들면서 Javascript의 파편화가 극심해졌다.

이런 각 벤더 사마다 다른 Javascript를 표준화하기 위하여 넷스케이프가 ECMA 인터내셔널에 표준화를 요청하였고 그렇게 탄생한 것이 ECMAScript이다.

그러나 당시 막강한 점유율로 시장에서 압도적 우위에 있던 MS사의 미온한 참여로 당시 ECMAScript 버전은 많은 문제가 있었다.

그 후 Google의 Chrome이 IE의 점유율을 끌어내리면서 ESMAScript5(ES5)가 제정되면서 표준화 문제가 어느정도 해결되기 시작하였다.

이렇게 여러 밴드사가 공통으로 지원하는 Javascript의 Core를 ES = ESMAScript라고 한다.

그 외에 각 벤더의 브라우저가 별도로 지원하는 Web API는 어전히 존재하고 있다.
즉,

자바스크립트 = ES + Web API

와 같다.

Node.js에서 Web API?

기본적으로 Javascript를 구동하는 환경은 브라우저이다.

그러나 Node.js의 등장으로 Javascript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행 할 수 있게 되었다.

그렇다면 두 환경은 같은가?

크롬 브라우저와 Node.js는 모두 V8엔진을 사용한다. 하지만 Node.js에서 Web API는 사용이 불가능하다.

브라우저 : html, css + js

Node.js 환경 : ES + Node.js API

브라우저에서 Web API의 관리는 V8엔진이 담당하지만 V8엔진을 사용한 Node.js는 Web API는 지원되지 않는다.

이는 브라우저에서 Web API에 대한 기능은 내부적으로는 V8엔진이 하지만 기본적으로는 ES코드를 실행하는 엔진이기 때문에 같은 V8엔진을 사용하는 Node.js에서는 실행이 되지 않느다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×