티스토리 뷰
자바스크립트 표준 명세서(Java Script Specification)
ECMAScript는 간단하게 자바스크립트라는 프로그래밍 언어의 표준이라고 이해하시면 됩니다.
자바스크립트도 다른 프로그래밍 언어들처럼 유용한 기능들이 추가되고 아쉬운 부분들이 보완되면서 지금까지도 계속해서 발전해 나가고 있는데요. 이런 발전의 결과물들은 Ecma International이라는 국제 표준화 기구에서 관리를 하게 됩니다.
자바스크립트를 사용할 때 준수해야 하는 규칙이나 세부 사항들을 ECMA-262라는 이름의 문서로 관리를 하게 되는데요.
이 문서의 내용이 바로 ECMAScript인 겁니다.
ECMAScript는 1997년 처음 등장해서 새로운 내용들이 추가될 때마다 이름 뒤에 숫자를 붙이면서 각 버전들을 명시했었습니다. 줄여서 'ES1', 'ES2'처럼 부르다가 여섯 번째 버전이 등장한 2015년 부터는 1년마다 새로 표준을 출시하기로 결정이 되면서 간결하게 소통하기 위해 'ES6'라는 용어를 그대로 사용하기도 하지만 ECMAScript의 공식적인 버전 명칭은 연호를 붙여서 'ES2015', 'ES2016'이라는 점도 잘 기억해 주면 좋을 것 같습니다.
특히 이 여섯 번째 버전은 자바스크립트의 발전에 굉장히 큰 영향을 준 버전인데요.
ES5까지의 자바스크립트가 가진 문제점들을 보완하고, 코드를 좀 더 안전하고 간결하게 작성할 수 있는 유용한 문법들이 굉장히 많이 등장했기 때문입니다.
심지어는 이 여섯 번째가 등장하 이전과 이후의 자바스크립트를 구분하기 위해 'ES6+'라는 용어가 생겨날 정도였는데요.
하지만 이렇게 ECMAScript의 새로운 버전으로 유용한 문법들이 출시되더라도 한 가지 문제점이 있었습니다.
그건 바로 우리가 사용하는 웹 브라우저들은 당장 새로운 버전의 문법들을 완벽하게 지원할 수 없다는 것인데요.
그래서 ES6의 출시 초기에도 개발자들 사이에서는 어떤 브라우저가 ES6의 문접을 지원하는지 혹은 지원을 못 하는지가 중요한 화두이기도 했습니다.
결국은 ECMAScript의 최신 버전이 등장하더라도 어떤 프로그램을 개발할 때 최신 버전을 바로 적용하는 것이 아니라 보편적으로 사용되는 브라우저들이 지원하는 범위 내에서 ECMAScript의 버전을 준수하는 모습이 일반화 되었는데요.
이렇게 변화하는 시대와 상황에 맞춰서 현 시점에 사용하기 적합한 범위 내에서 최신 버전의 표준을 준수하는 자바스크립트를 'Modern JavaScript(모던 자바스크립트)'라고 부릅니다.
1. 공식 문서
ECMAScript의 공식 문서가 궁금하다면 아래 링크를 참고해 보세요.
2. 진행 현황
지금까지 제정된 ECMAScript 표준 사항이나 과거 역사가 궁금하다면 아래 링크들을 참고해 보세요.
3. 브라우저 지원 현황
각각의 문법별로 브라우저의 지원 여부를 확인하고 싶다면 아래 링크들을 참고해 보세요.
4. 버전의 정식 표기
ES6부터는 연호를 사용해서 ES2015, ES2016이라고도 부른다는 점 배웠었죠? 개발자들 사이에서는 짧고 빠르게 소통하기 위해서 ES6, ES7이라는 용어를 사용하지만, 실제로 ECMA International에서 버전을 발표할 때 표기하는 정식 명칭은 연호를 사용해서 ECMAScript 2015라고 표기한다는 점! 참고해 두시면 좋을 것 같습니다.
5. JavaScript vs ECMAScript
간혹 JavaScript와 ECMAScript가 똑같다고 오해하는 경우가 있는데요. 둘 사이에는 명확한 차이가 있습니다!
일단 첫 번째 차이점은, JavaScript는 프로그래밍 언어이고, ECMAScript는 프로그래밍 언어의 표준입니다. 쉽게 생각하면 ECMAScript는 JavaScript가 갖추어야 할 내용을 정리해둔 '설명서'이고, JavaScript는 ECMAScript를 준수해서 만들어낸 '결과물' 이라고 생각할 수 있는데요. 참고로 ECMAScript가 JavaScript화 하기 위해 등장하긴 했지만, ECMAScript는 JavaScript 뿐만아니라 모든 스크립트 언어(scripting languages)가 지켜야 하는 표준입니다. 만약 여러분이 자바스크립트와 같은 언어를 직접 만들고자 한다면, 이 ECMAScript를 준수해야 한다는 것이죠!
그리고 두 번째 차이점은 JavaScript는 ECMAScript를 기반으로 하지만 ECMAScript에 정의된 내용뿐만 아니라, 다른 부가적인 기능도 있다는 겁니다. 특히, 우리가 자바스크립트로 HTML 코드를 제어하기 위해 사용하는 DOM(Document Object Model)을 다루는 문법들은 ECMAScript에 표준화된 문법이 아니라 WebIDL에서 표준화된 기술이라고 할 수 있습니다.
'프론트엔드 > JavaScript' 카테고리의 다른 글
[자바스크립트의 동작 원리] 03. typeof 연산자 (0) | 2022.12.24 |
---|---|
[자바스크립트의 동작 원리] 01. 데이터 타입의 특징과 종류 + Symbol, BigInt (0) | 2022.12.24 |
[다양한 이벤트 알아보기] 13. 종합 정리 (1) | 2022.12.24 |
[다양한 이벤트 알아보기] 12.스크롤 이벤트 (1) | 2022.12.24 |
[다양한 이벤트 알아보기] 10. input 태그 다루기 (0) | 2022.11.28 |
- Total
- Today
- Yesterday
- EVERY
- redux
- 기본형 데이터
- foreach
- 느슨한 타입(loosely typed)
- redux middleware
- redux-thunk
- 참조형 데이터
- undefined
- 동적(dynamic) 언어
- 비교 연산자
- null
- findindex
- find
- redux thunk
- redux-middleware
- map
- some
- 타입변환
- 얕은복사
- 불변 객체
- filter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |