본문 바로가기
개발일지 Dev Diaries/항해99 Hanghae99

[WIL] 3월 3주_ JavaScript, ES, ES5/ES6

by 이땡칠 2022. 3. 20.

1. JavaScript ?

- 1995년, Netscape 회사의 Brendan Eich 라는 사람에 의해 최초 개발된 객체(object) 기반의 스크립트 언어.

 

- HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있음.

 

- 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용 가능함.

 

- 현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있음.

 

 

2. ES ?

- ECMAScript 의 줄임말. 

 

- 넷 스케이프 사의 자바스크립트가 인기를 끌자, MS사가 자바스크립트를 Reverse engineering 해서 IE 3에 JScript라는 이름으로 자바스크립트를 탑재함. 그런데 문제는 두 스크립트가 너무 제각각이라, 같은 기능을 구현하기 위해 개발자가 해야하는 일들이 더 많아졌음. 이 브라우저 전쟁 시절 개발자들은 몸살을 앓았음. 


- 이에 넷스케이프 사는 1996년 European Computer Manufacturers Association(ECMA, 현 ECMA International) 에 찾아가 자바스크립트에 대한 표준안을 만들기 위한 작업을 착수함.

 

- 1997년 7월 첫 번째 ECMAScript 1 language specification 이 시장에 나오게 됨. ECMAScript 는 브라우저에서 동작하는 언어를 만들 때, 그리고 그 언어를 이해할 수 있는 엔진이 이해하기 위해 '변수는 이렇게 만들고, 함수는 이렇게 정의한다' 등의 문법적인 사항들을 잘 정리한 문서임. 그리고 그 뒤에 새로운 버전들이 계속 추가적으로 나오게 됨.

 

ECMA에서는 자바스크립트의 표준만 내리는 게 아니라 다른 표준안도 정하기 때문에 그와 구분하기 위해 숫자를 붙였는데 그것이 262. ECMA262로 보이면 자바스크립트 표준 규격으로 이해.

 

 

- 특히 ECMAScript 3 에서는 새로운 에러 핸들링(error handling) 방식과 관련된 문법이나, '==='(three equal operator) 관계 연산자 등이 새로 추가됨.

 

- 판별 출판년도

ECMAScript 1 in 1997

ECMAScript 2 in 1998

ECMAScript 3 in 1999

ECMAScript 4 in 2000

ECMAScript 5 in 2009

ECMAScript 6 in 2015

 

 

3. ES5/ES6 ?

- 2000년대 들어 MS 사의 Internet Explorer 의 시장 점유율이 95%에 다다르면서, MS 사가 ES 표준안을 따르지 않는 상황 발생하며 ES4 이후 표준안이 진척되지 못하고 지지부진한 상황을 맞이함.

 

- 그러던 중 2008년 Google 사가 Chrome브라우저를 출시하게 됨. 크롬 브라우저는 JIT (just-in-time compliation)이라는 굉장히 강력한 엔진이 포함된 브라우저임. JIT 로 인해 자바스크립트를 실행하는 속도가 엄청나게 빨라지게 됨.

 

- 크롬의 획기적인 등장에 시장에 존재하던 다른 브라우저들은 개선에 대한 좋은 자극을 받게 되어, 2008년 7월 모든 브라우저들이 모여 표준화를 만들어 서로 윈윈해보자는생산적인 대화를 하게 됨. 

 

- 그리하여 2009년 ECMAScript 5, 2015년 ECMAScript 6 가 나오게 됨. 

 

 

 

ES 5에 추가된 기능

 

1. arror 메소드 추가

 forEach, map, filter, reduce, some, every 등

2. object 에 대한 getter/setter 지원

3. strict mode 지원

4. JSON 지원

5. bind() 메소드 추가

 

 

*참고 : Changes to JavaScript, Part 1: EcmaScript 5

https://www.youtube.com/watch?v=Kq4FpMe6cRs 

 

ES 6에 추가된 기능

1. let, const 키워드 추가

2. arrow 문법 지원

3. iterator / generator 추가

4. module import / export 추가

5. Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가 되었습니다.)

6. Default, Rest 파라미터

7. 해체 할당, Spread 연산자

8. 템플릿 리터럴

9. 호이스팅이 사라진 것 같은 효과

10. 함수 단위 스코프에서 블록 단위 스코프로 변경

댓글