개발/javascript

ECMAScript 2015(ES6)

smile-haha 2022. 12. 30. 01:03
반응형

🎈 ES6 ?

javascript에는 Ecma International이 정의한 ECMAScript(ES)라는 기술규격이 있다.  ES에는 여러 버젼이 있는데 각 브라우저의 각 버젼별로 지원되는 ES의 종류가 다르다. 이것은 브라우저별로 사용하는 javascript 엔진이 다르기 때문인데, 이 이야기는 다음번에 시간 되면 따로 포스팅을 하겠다...

 

어쨌든, 현재까지 나온 ES 버젼에는 아래와 같이 11개의 버젼이 있다. (아래 표는 w3schools에서 가져왔다.)

Ver Official Name Description
ES1 ECMAScript 1 (1997) First edition (초판)
ES2 ECMAScript 2 (1998) Editorial changes
ES3 ECMAScript 3 (1999) Added regular expressions
Added try/catch
Added switch
Added do-while
ES4 ECMAScript 4 Never released(버려짐)
ES5 ECMAScript 5 (2009) Added "strict mode"
Added JSON support
Added String.trim()
Added Array.isArray()
Added Array iteration methods
Allows trailing commas for object literals
ES6 ECMAScript 2015 Added let and const
Added default parameter values
Added Array.find()
Added Array.findIndex()
  ECMAScript 2016 Added exponential operator (**)
Added Array.includes()
  ECMAScript 2017 Added string padding
Added Object.entries()
Added Object.values()
Added async functions
Added shared memory
Allows trailing commas for function parameters
  ECMAScript 2018 Added rest / spread properties
Added asynchronous iteration
Added Promise.finally()
Additions to RegExp
  ECMAScript 2019 String.trimStart()
String.trimEnd()
Array.flat()
Object.fromEntries
Optional catch binding
  ECMAScript 2020 The Nullish Coalescing Operator

 

javascript 엔진의 역할은 javascript를 읽어서 컴퓨터가 읽을 수 있는 기계어로 변환해주는 역할을 하는데, 엔진이 각 es 버젼에 맞는 언어를 읽어올 수 있어야 하는데,  ES도 시간에 따라(1999년~2019년)  점차적으로 발전했듯이, 각 엔진도 점차적으로 해당 표준을 읽을 수 있게 변화해 왔다. 

 

이 상황에서 IE(Internet Explorer)는 1995년 출시된 뒤 엠에스의 컴퓨터 운영체제 윈도와 한묶음으로 공급되며 압도적 점유율을 가지고 있었고, 우리 나라는 공공기관에서 IE 기준으로 만든 서비스들이 있어 오랬동안 IE를 고집해온 것으로 알고 있다. 또한 요즘에는 그렇지 않지만, 과거에는 은행 서비스도 IE에서만 동작하는 엑티브 엑스를 사용하여 IE를 이용해야만 서비스를 정상적으로 사용할 수 있었다. 

 

그리고 아래 그림을 참고하면, IE에서는 ES6의 기능을 전부(fully) 사용할 수 없었다. 

w3schools 제공 ES6 지원 브라우저

그래서 우리 나라는 ES5 기반으로 개발을 하는 경우가 많았던 것 같다.

 

그러나 현재는 IE도 서비스가 종료되었고, 브라우저 점유율도 아래 그림들을 참고하면 ES6를 지원하는 Chrome이 압도적으로 높다. 

 

아래 이미지는 대한민국(Republic Of Korea)의 Desktop Browser의 점유율로 statcounter에서 조회해 보았다.

(statcounter는 웹 트래픽 분석 사이트로, 웹 사용 점유율을 계산한다고 한다.)

statcounter 제공 Desktop/대한민국 기준 브라우저 점유율(2009-2022)

아래는 전국 기준 desktop browser의 점유율이다.

statcounter 제공 Desktop/대한민국 기준 브라우저 점유율(2009-2022)

해외에서는 우리나라보다 더 빨리 Chrome의 점유율이 올랐기 때문에 ES6 환경을 더 빠르게 받아들였다. 그래서 앵귤러, 리엑트, 뷰 등 다양한 라이브러리와 프레임워크에서 개발환경을 ES6로  바꾸게 되었다.

 

해당 라이브러리와 프레임워크를 사용하기 위해서 또 세계의 흐름에 맞추기 위해서? ES6는 이제 받아들여야한다고 본다.

아직 ES6가 지원 안되는 브라우저를 사용한다해도, ES6+(ES6/React/ES7)을 ES5으로 변환해주는 트랜스컴파일러(바벨,트레이서)가 있다.

 

 

🎈 왜 아직 ES6인가?

ES 버전이 ECMAScript 2020까지 나왔는데 아직 ECMAScript 2015(ES6)을 사용하는 이유는 "브라우저가 아직 준비되지 않아서" 이다.  ES6의 바로 다음 단계인 ECMAScript 2016의 경우 ECMAScript 2016의 모든 기능을 제공하는 브라우저가 없고 일부 기능만 지원된다.

반응형