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

우리가 흔히 자바스크립트라 부르는 언어의 정식 명칭은 사실 ECMAScript다. 과거 넷스케이프에서 자바스크립트를 브라우저에 처음으로 추가했던 시절, 웹 페이지를 동적으로 만든다는 점은 정말 멋져 보였다. 자바스크립트가 얼마나 유용한지 깨달은 메이저 브라우저들은 너도나도 할 것 없이 자바스크립트를 각자의 브라우저에 넣기 급급했다.

여기서 마이크로소프트(MS)의 JScript처럼 방언(쉽게 말하자면 변종)들이 생겨나기 시작했다. 그러자 넷스케이프는 통일된 자바스크립트를 만들기 위해 ECMA라는 기관에 표준 제작을 넘기게 된다. ECMA는 자바스크립트의 표준화를 맡으면서, 자바와 상표권 분쟁을 피하고자 자바스크립트 대신 ECMAScript라는 명칭을 택했다.

그리고 매년 새 ECMAScript 표준이 나온다. 보통 그해에 나온 ECMAScript는 뒤에 년도를 붙이거나 6,7,8 등 판(Edition) 수를 적는다. 예를 들어, 2018년에 나오는 ECMAScript의 새 표준은 ES9, ECMAScript 9, ECMAScript 2018, ES2018 등의 이름으로 부른다.

그렇다면, ECMAScript의 표준은 누가 만들까? 최종 결정권은 ECMA의 TC39라는 위원회에 있지만, 새로운 표준은 누구나 만들어서 TC39에 제안할 수 있다. 이때, 사용자가 만들어서 TC39에 제출한 제안서는 프로포절(github.com/tc39/proposals)이라 부른다.

프로포절은 진행 단계에 따라 허수아비 단계와 성숙한 1~4단계로 나눠진다.

TC39에 제출한 프로포절. / 깃허브
TC39에 제출한 프로포절. / 깃허브
Stage 0: Strawman. 말 그대로 뼈대만 있는 상태다. 0단계 프로포절 제안에는 아무런 제약이 없다.

Stage1: Proposal. 어느 정도 형태를 갖춘 상태다. 챔피언이라 불리는 프로포절 담당 TC39 위원회의 일원을 구해야 한다. 이 외에도 제안의 실사용 예와 중요한 내부 알고리즘 등이 요구된다.

Stage2: Draft. 조금 부족하지만, 형태를 거의 다 갖춘 상태다. 기초적인 프로포절에 대한 명세서가 요구된다.

Stage3: Candidate. 형태를 전부 갖춘 상태다. 완벽한 프로포절에 대한 명세서와 리뷰어, 명세서 작성자의 승인을 받아야 한다.

Stage4: Finished. 다음 해 표준에 도입되기로 확정된 상태다. ECMAScript를 잘 구현했는지 확인하기 위한 테스트들의 모음인 ‘test262(github.com/tc39/test262)’가 테스트용 예제와 시나리오를 승인(Merge)해야 한다. 또한 ECMAScript의 모든 표준 문서를 담은 저장소인 ‘tc39/ecma262(github.com/tc39/ecma262)’에 프로포절 문서를 전송하고(PR), 명세서 작성자의 승인을 받아야 한다.

서재원 필자의 ESNext에 대한 자세한 내용은 ‘마이크로소프트웨어 393호(https://www.imaso.co.kr/archives/3408)’에서 확인할 수 있다.