1. Javascript 표준


  고급 주제를 다룬다면서 갑자기 표준을 들먹이는 이유는 뭐든지 기본기가 제일 중요하기 때문이다. 지금까지의 베껴쓰는 자바스립트 수준을 벗어나고자 한다면, 언어의 정확한 표준을 알고 있는것이 필요하다고 판단해서 이 부분을 제일 먼저 다루게 되었다.

  특히나, 자바스크립트는 표준이 없다고 생각하거나, 브라우저끼리 공통된 부분이 표준이겠거니 생각하는 사람들이 많은데 표준은 있다. 다만, 언어 표준이 먼저 정해지고 개발이 된것이 아니라 언어가 먼저 사용되고 통합되면서 표준이 제정되었다는점이다. (C언어도 이러한 단계를 거쳐서 발전되어왔다.)

  궁금한 부분이 있거나 확인할 사항이 있거나, 또는 책을 집필하고자 한다면 이러한 표준을 알고 있는 것이 좋다. 그러나, 분량도 만만치 않을 뿐더러, 가장 큰 벽은 영어(!!)라는 점이다. 하지만, 개발언어들이 대부분 그렇듯이 특정한 부분을 발췌해서 간단히 읽는데는 그리 큰 문제는 아닐 것이다.

  표준을 다 알필요는 없다 하더라도, 어디에 표준이 있는지 정도는 알아두면, 필요할 때 언제든 찾아 볼 수 있을 것이다.




  자바스크립트 언어의 기원은 넷스케이프사의 브렌던아이크(Brendan Eich)가 모카(Mocha)라는 이름으로 개발하였으며, 이후 라이브스크립트(LiveScript) 라는 이름을 거쳐 최종적으로 자바스크립트라는 이름을 가지고 넷스케이프 브라우저 2.0(1995년)에 탑재되면서부터 세상에 퍼지기 시작했다.

  1990년대 중반 이후에 브라우저 전쟁이 치열해짐에 따라 브라우저마다 서로 다른 자바스크립트를 제공하면서 혼란이 가중되었으나, 1996년도에 ECMA(European Computer Manufacture's Association, www.ecma-international.org )에 의해서 표준화가 시도 되었는데, 그 때 기반이 된 언어는 JavaScript (Netscape)와 JScript (Microsoft)였다.

  ECMA에 의해서 표준화된 것은 ECMA-262로 1997년 ECMA Script 1버전이 완료되었으며, 2번의 추가적인 개정을 거쳐서 1999년 말에 3차버전이 개정되었다.(ECMA-262 표준을 따르는 언어를 공식적으로는 ECMAScript라 부른다.)

  XML의 확대에 따라 XML을 효과적으로 처리할 수 있는 기능들이 2005년에 E4X로 추가 되었다.

  ECMA Script로 정의된 표준으로는 다음과 같은 것들이 있으며, 이중 자바스크립트는 ECMA-262를 따르고 있다.

ECMA-262ECMAScript scripting language (1999)
ECMA-290ECMAScript Components Specification (1999)
ECMA-327ECMAScript Compact Profile (ES-CP) scripting language(2001)
ECMA-357ECMAScript for XML (E4X) Specification (2005)


  이 스펙을 기반으로 개발된 다른 언어로는, 액션스크립트(ActionScript, Flash 플레이어 제어용)나 MS의 JScript.NET도 있다.

  ECMA-262의 개정 이력을 보면 알겠지만, 4 버전은 폐기되서 없다. 4버전은 오랫동안 논의만 되다가 결국 폐기되고 현재는 2011년 6월에 발표된 5.1 버전이 가장 최신버전이다.


  ECMA-262에서 정의하는 부분은 자바스크립트 코어(Core)에 해당한다. 자바스크립트는 범용 개발 언어로 서버의 언어로 사용될 수도 있으며, 클라이언트(웹 브라우저)에 탑재될 수도 있는데, 이러한 서버나 클라이언트 부분에 관계없이 공통적인 부분은 코어(Core)라 지칭하고 있다.

  즉, 현재 가장 유명한 자바스크립트인 브라우저단 자바스크립트는 ECMA-262버전을 포괄하는 개념으로 보면 되겠다.

  자바스크립트가 서버측에 사용된 예도 있는데, 본인의 강좌중에 LiveWire라는 언어가 바로 그 예중에 하나이며, MS의 JScript.NET도 서버형태이다.

  알다시피 자바스크립트는 인터프리터 방식의 언어이다. 현재는 자바(Java) 가상머신에서도 직접 자바스크립트를 실행할 수 있는 기능이 탑재되어있다. 이러한 부분에 관심이 있다면, 모질라(Mozilla) 재단에서 개발된 Rhino엔진 (J2SE 6버전부터 탑재됨)이 있으며, SpiderMonkey라 불리는 C언어로 개발된 것도 있다.

  ECMA는 정말로 표준을 담고 있는데 반해서, 자바스크립트의 본고장 답게 모질라의 개발자 센터에 있는 자바스크립트 가이드가 ECMA-262보다 개발자들을 배려하여 구성되어 있다.( Core JavaScript Guide )

  따라서, 일반 개발자들은 모질라 사이트를 한번쯤 탐독해보기를 권장한다.

- Last Update : 2012.03.08 by Deadfire(http://www.deadfire.net)

Pro Javascript

Copyright ⓒ 1997 ~, Deadfire Program Master