수학과의 좌충우돌 프로그래밍

[ES6] ES는 무엇인가, 왜 ES6인가 본문

웹프로그래밍/ES6

[ES6] ES는 무엇인가, 왜 ES6인가

ssung.k 2019. 12. 30. 17:54

javascript 를 공부하려고 보니 ES6 라는 말이 많이 등장해서, 중요하다고 해서, 이에 대해서 정리해보고자 합니다.

ES 는 무엇인가

ES 는 ECMAScript 의 약자입니다. 그리고 숫자 6은 여섯번째 ES 라고 생각하면 되겠습니다. 그렇다면 ES, ECMAScript 는 무엇일까요?

위키백과를 보면 ECMAScript 는 Ecma 인터내셔널의 ECMA-262 기술 규격에 정의된 표준화된 스크립트 프로그래밍 언어입니다. 자바스크립트를 표준화하기 위해서 만들어졌으며 꼭 자바스크립트가 아니더라도 어도비 플래시를 사용하는 소프트웨어에서 사용하는 액션스크립트, MS 사의 인터넷 익스플로러에 쓰이는 J스크립트 등 다른 구현체들 역시 포함하고 있습니다.

 

ES 가 등장하게 된 배경을 살펴보면 1990년대로 거슬러 올라갑니다. Netscape 회사는 웹 디자이너들과 파트타입 프로그래머들이 이미지, 플러그인 등의 요소를 쉽게 조합해줄 언어를 필요로 하게 되었고 이를 위해 Brendan Eich 를 영입하게 됩니다. Brendan Eich 는 모카라는 새로운 언어를 만들고 이 이름은 라이브스크립트로 다시 자바스크립트로 이름을 바꾸게 됩니다. 이름을 지은데에는 이 언어가 자바 언어에서 파생되었다는 마케팅적인 이유가 있다고 생각하고 있습니다.

 

자바스크립트가 성공하자 경쟁사인 MS 는 이를 견제하기 위해 J스크립트를 개발하게 됩니다. 당시 웹브라우저에서 압도적인 점유율을 차지하던 IE 에서 J스크립트를 지원하기 시작하자 두 비슷한 스크립트 언어가 사람들에게 혼란을 야기하게 됩니다. 따라서 이 둘 뿐 아니라 여러 스크립트 언어들에 대한 표준이 필요하다고 생각했고 ES 가 등장하게 되었습니다.

 

따라서 ES 는 프로그래밍 언어가 아닌 스크립트 언어들에 대한 표준, 규격입니다.

 

왜 ES6 인가

그렇다면 우리는 왜 ES6 에 대해 큰 관심을 가지는 것일까요?

ES6가 최신 버전이기 때문에 그럴까요?

아닙니다. 현재 2019년 12월 기준으로 ES10 까지 나왔습니다. 1997년 6월에 1판을 시작으로 불규칙적이게 개정되던 것이 2015년 부터는 매년 6월에 규칙적으로 개정이 되고 있습니다.

출판일 이름 이전 판과의 차이점
1 1997/6   초판
2 1998/6   ISO/IEC 16262 국제 표준과 완전히 동일한 규격을 적용하기 위한 변경.
3 1999/12   강력한 정규 표현식, 향상된 문자열 처리, 새로운 제어문 , try/catch 예외 처리, 엄격한 오류 정의, 수치형 출력의 포매팅 등.
4 버려짐   4번째 판은 언어에 얽힌 정치적 차이로 인해 버려졌다. 이 판을 작업 가운데 일부는 5번째 판을 이루는 기본이 되고 다른 일부는 ECMA스크립트의 기본을 이루고 있다.
5 2009/12   더 철저한 오류 검사를 제공하고 오류 경향이 있는 구조를 피하는 하부집합인 "strict mode"를 추가한다. 3번째 판의 규격에 있던 수많은 애매한 부분을 명확히 한다.[3]
5.1 2011/6   ECMA스크립트 표준의 제 5.1판은 ISO/IEC 16262:2011 국제 표준 제3판과 함께 한다.
6 2015/6 ES2015 6판에는 클래스와 모듈 같은 복잡한 응용 프로그램을 작성하기 위한 새로운 문법이 추가되었다. 하지만 이러한 문법의 의미는 5판의 strict mode와 같은 방법으로 정의된다. 이 판은 "ECMAScript Harmony" 혹은 "ES6 Harmony" 등으로 불리기도 한다.
7 2016/6 ES2016 제곱연산자 추가, Array.prototype.includes
8 2017/ 6 ES2017 함수 표현식의 인자에서 trailing commas 허용, Object values/entries 메소드, async/await 등.
9 2018/6 ES2018 Promise.finally, Async iteration, object rest/spread property 등.
10 2019/6 ES2019 Object.fromEntries, flat, flatMap, Symbol.description, optional catch 등.

 

특히 이 중 ES6 에서는 ES5 이하 명세에서 문제가 되었던 부분들이 해결되었고 많은 기능들이 추가되었습니다. 이는 가독성과 유지보수성 향상으로 이어졌습니다. React 나 Vue 등 유명 라이브러리들도 이에 맞춰 개발 환경을 ES6로 바꾸게 되었습니다.

이러한 이유로 인해 우리는 ES6에 주목하고 관심을 갖게 되었습니다.

'웹프로그래밍 > ES6' 카테고리의 다른 글

[ES6] Destructuring  (0) 2019.12.31
[ES6] Array Method  (0) 2019.12.31
[ES6] Template Literal 과 String Method  (0) 2019.12.31
[ES6] Arrow Function 과 Default Value  (0) 2019.12.31
[ES6] let, const 그리고 var  (0) 2019.12.30
Comments