프트웨어 전문지 마이크로소프트웨어의 최신호는 우리가 매일 접하는 웹 페이지, 모바일 등 프론트엔드(Front-End)를 주제로 담았습니다. 모던 자바스크립트, 정적 타입, 리액트, 뷰, 앵귤러, 일렉트론, ESNext 등 마소 393호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

자바스크립트는 가장 인기 있는 프로그래밍 언어 중 하나로 그 쓰임새가 다양하다. 웹브라우저를 넘어 서버와 앱 개발 등 다양한 영역에 사용되면서 언어의 쓰임을 어느 한 가지로 한정할 수 없게 됐다. 동시에 ECMAScript 6의 등장으로 새로운 기능이 대폭 추가됐고, 모바일 디바이스의 등장으로 서비스 환경이 복잡해졌다. 개발자는 서비스 지원 환경에 적합하게 자바스크립트를 사용해야 하는 부담도 갖게 됐다. 물론 경험 많은 개발자라면 상황에 맞는 대처가 가능하겠지만, 경험이 부족한 개발자는 이 글을 통해 자바스크립트를 사용할 때 알아둬야 할 것과 참고할 웹사이트를 살펴보고 꾸준히 관심을 두도록 하자.

자바스크립트에 관심을 가지다 보면 ECMA-262, ES6, ECMAScript 6, ECMAScript 2015 같은 단어를 쉽게 발견할 수 있다. 먼저 ECMA-262와 ECMAScript에 대해 알아보자.

ECMA-262는 ECMA 인터내셔널에 의해 정의되는 표준이다. 그리고 이 표준에 정의된 스크립트 프로그래밍 언어를 ECMAScript라고 부른다. ECMAScript를 구현한 언어로는 JScript, 액션스크립트(ActionScript) 등이 있다. 자바스크립트는 ECMAScript의 명세를 구현한 언어 중 하나다.

ES(ECMAScript)의 뒤에 붙는 숫자는 ES 명세의 버전 또는 그해에 승인된 명세의 발표 연도를 의미한다. 기존에는 ES1, ES5처럼 버전을 사용했지만, 자바스크립트 표준 명세를 논의하는 기술위원회인 TC-39(Technical Committee 39)에서는 ES6부터 “ES 2015”처럼 연도를 표시하기로 했다. 앞으로 발표될 ES는 2015, 2016, 2017과 같이 연도를 표기하는 방식이 될 것이다.

ECMA-262. / ECMA 홈페이지 갈무리
ECMA-262. / ECMA 홈페이지 갈무리
언어 변화를 기준으로 보면 ES는 ES6(2015)에서 특히 많은 변화가 있었다. 그 때문에 ES5 기반 코드와 ES6(2015) 기반 코드는 형태가 매우 다르다. 물론 하위 호환을 지원하기 때문에 어떤 형태의 코드를 작성할 것인지는 환경에 맞춰 선택할 수 있지만, 이런 특성이 개발 버전 선택에 대한 혼란을 가중하기도 했다.

뒤에서 자세히 설명하겠지만 개발자들은 최신 ES 명세를 사용하기 위해 ES 최신 명세를 개발환경에 맞게끔 변환하는 식의 개발도구를 만들었다. 이런 도구를 만들게 된 이유를 이해하기 위해서는 ‘자바스크립트 엔진’과 ‘자바스크립트 실행 환경’에 대해 이해할 필요가 있다.

김두형 필자의 모던 자바스크립트에 대한 자세한 내용은 ‘마이크로소프트웨어 393호(https://www.imaso.co.kr/archives/3408)’에서 확인할 수 있다.