ECMAscript 5의 개요

ECMAscript의 역사

현재 가장 널리 프로그래밍에 활용되고 있는 자바스크립트의 버전은 ECMAscript 3.0 버전입니다.
이 버전은 무려 1999년에 발표된 버전으로 당시에는 정규식, 문자열메소드추가, 예외처리 추가 등의 언어다운 면모를 갖추는데 주력했죠(그 이전 버전이나 4.0에 얽힌 얘기는 생략합니다)

하지만 2009년에 이미 5.0버전이 발표되고 2011년에는 문서상의 오류를 보완한 5.1이 발표되었습니다.
* 5.0과 5.1 사이에서의 스펙상 차이는 없지만 문서상에서 표현된 오류를 수정했습니다.

2015년 6월에는 ES2015라 명명된 ECMAscript 6가 공식 표준으로 발표되었습니다.
현재 모질라에서는 7.0과 8.0에 예정된 사양도 지속적으로 발표하고 있으며 각 스펙은 진행 중입니다만..

이러한 자바스크립트 언어의 변화 속에 무엇을 기준으로 개발해야하는가에 대한 혼란은 가중되고 있습니다.

현재 대부분의 개발자는 3.0 기반의 개발을 하고 있으며 시중의 책도 대부분 3.0을 기반으로 하는 개발론을 가르치는 실정입니다. 유명한 라이브러리도 하위호환성을 근거로 3.0기반의 문법을 채용하고 있죠.

각 브라우저별 ECMAscript 버전별 기능호환성을 체크하는 다음 사이트를 이용하면 현실적인 적용가이드를 생각해볼 수 있습니다.

http://kangax.github.io/compat-table/es5/

위의 표에 따르면 ECMAscript 6.0 의 경우 몇몇 기능만 제한적으로 작동하고, 특히 모바일의 경우 전혀 사용할 수 없다는 것을 알 수 있습니다(현실적으로 6.0을 사용해보기 위해서는 바벨 등의 별도 컴파일러를 사용하여 개발할 수 밖에 없죠)
하지만 5.0 스펙은 현시점에서 구형 IE가 아닌 이상 거의 모든 스펙이 모바일과 PC의 전 브라우저에서 사용 가능합니다. 특히 모바일 개발을 중심으로 하는 경우 5.0의 모든 스펙이 사용가능하므로 현재 시점(2015년)을 기준으로 평범하게 사용할 수 있는 ECMAscript버전은 5.0이라 할 수 있습니다.

해서 본 블로그에서는 ECMAscript 5에 대한 내용을 별도 섹션으로 다루며, 이후 브라우저의 지원이 확대되고 현실적인 사용이 가능해지는 시점에서 ES2015를 다룰 예정입니다(현실은 소중하니까요)

5.0 스펙의 실체

3.0에 비해 5.0에서 실질적으로 추가된 문법은 strict mode와 Object리터럴 get-set추가, 문자열의 인덱스인식 등 크게 달라지지 않았습니다. 그렇다보니 편의성 함수가 추가되었을 뿐 전반적으로 3.0과 비슷하다라는 인상을 받기 쉽죠. 특히 Array에 추가된 편의상 이터레이터함수들이 주로 강조되다 보면 있어도 그만 없어도 그만으로 인식되기 쉬운데 실제로는 3.0과는 굉장히 다른 언어입니다(비슷한걸로 치면 알골60계열은 전부 비슷하게 생겼습니다)

가장 중요한 특징은 객체에 대한 통제클래스를 생성하는 방법이 변화했다는 것입니다.
문법적으로도 사용자 Object에 대해 getter, setter 지정이 가능해지므로 더 이상 평범한 값의 할당으로 작동하지 않고 내부에는 많은 제어문을 내포할 수 있는 형태가 되어 기존의 방식으로 문의 작동을 확정할 수 없습니다.

시리즈목차

본 시리즈에서는 다음과 같은 항목으로 5.0을 깊이 파고 듭니다.

1. Object

2. Array

  • 이터레이션과 어그리게이션
  • 편리한 검색

3. String

  • 편리해진 사용

4. 기타

  • strict mode에 대해
  • Function, Date의 변화
  • JSON, undefined
%d 블로거가 이것을 좋아합니다: