안녕하세요.🐱🐉
오늘은 자바스크립트의 역사와 발전 과정에 대해 알아보려고 해요.
왜 ES6에서 큰 변화가 일어나게 되었는지 그 이유도 함께 알아보죠!~
자바스크립트의 탄생
1993년
- 컴퓨터가 생소하던 시절. UI 요소가 더해진 Mosaic Web Browser 개발
- Mosaic Web Browser팀을 이끌던 Marc Andreessen, Netscape사 설립
1994년
- Mosaic Web Browser 개발 경험을 토대로 Netscape Navigator 출시
html과 css로 이루어진 간단한 웹페이지, Hyper Text 링크를 통한 정적인 이동만 가능
- 동적인 웹페이지 구현을 위해 새로운 언어를 개발
Brendan Eich 고용 → Scheme Script를 변형하되 문법은 Java와 유사한 새로운 언어, 10일 만에 완성
1994년 9월
- 내부적으로는 Mocha라고 불렸던 새로운 언어 탄생. 이후 LiveScript로 변경
- 당시 Java의 인기에 편승하기 위해 JavaScript로 변경
※ 이 때문에 많은 개발자들이 Java와 헷갈리는 계기
1995년
- 공식적으로 JavaScript와 JavaScript Interperter가 포함된 Netscape Navigator 출시
표준화 작업
1995년
- Netscape Navigator가 성공하자 Microsoft사 Revers Engineering(만들어진 프로그램의 바이너리 코드를 분석하여 소스코드를 복원하는 과정)을 통해 JavaScript를 베껴 JScript를 개발하고 Internet Explorer 출시
- 당시 너무 다른 두 브라우저 때문에 크로우 브라우징 이슈가 존재
- Netscape사는 표준화 기구, ECMA International에 JavaScript로 표준안을 만들자고 제안
1997년 7월
ECMAScript 1(ES1) language specification 표준안 완성
Sun사의 Java라는 이름이 상표 등록이 되어있어 JavaScript가 아닌 ECMAScript로 결정
1998년, ECMAScript 2
1999년, ECMAScript 3 : Error handling, Three Equals Operator(===)
2000년, ECMAScript 4 : Class, Optional Type Anonotation
1999년
- IE5에서 소개된 XMLHttpRequest API가 나오며 클라이언트 측 스크립트를 http 혹은 https로 서버에게 요청하고,
텍스트 형식으로 데이터를 받는 것을 가능해짐
2000년
- Internet Explorer의 시장 점유율을 바탕으로(약 95%) Microsoft사는 'Internet Explorer이 표준이다'라며 ECMA표준안에
참여하지 않음. 2000년 이후 ECMAScript 표준안의 업데이트가 더딘 이유
2001년
- Douglas Crockford가 텍스트 형식으로 데이터를 저장하는 자바스크립트 문법을 'JSON'이라고 명명
XML의 대안으로 자바스크립트와 함께 대중적 인기
2004년
- Mozila사의 Firefox 출시
- Jesse James Garrett가 AJAX(Asynchronous Javascript and XML, 비동기식 데이터 교환 기법) 기술을 발표
- Opera 등 다양한 웹 브라우저가 등장에 따라 다른 웹 브라우저에서 구현 사항을 신경 쓰지 않기 위해
개발자 커뮤니티들에서 JQuery, Dojo, MooTools 등 다양한 라이브러리들이 나오게 됨
2005년
- Google이 AJAX를 이용해 Google Maps를 소개, 이후 인기가 높아져 XML대신 JSON을 사용하는 개발자들이 더 많아짐
2008년
- Google의 Chrome 출시. 빠른 JavaScript 실행 속도를 가진 V8 엔진을 포함
- 기존 브라우저들의 위기감 → 2008년, 7월 표준안에 대한 협의 진행
2009년 ECMAScript 5
2015년 ECMAScript 6(ES6) : default parameter, class arrow, function, const, let
- 이후 매년 새로운 버전이 나오고 있지만 5와 6에서 커다란 변화들이 거의 다 정의됨
- 이젠 라이브러리들의 도움 없이도 모든 브라우저에서 동작이 가능
이후 및 최신 동향
- 개발자들은 최신 기능이 탑재된 언어를 사용하고 사용자에게 배포할 때만 핵심 버전인 ES5, ES6로 바꿔주는
JavaScript Transcompiler를 사용 → BABEL
- SPA(Singgle Page Application, 하나의 페이지에서 데이터를 받아오고 필요한 부분만 업데이트) 대두
이를 쉽게 구현하기 위해 React, Angukar, Vue가 나옴
- V8을 이용한 back-end 개발이 가능한 Node.js, mobile을 지원하는 Facebook의 React Native,
JavaScript 기반의 객체 지향 컴파일 언어 TypeScript 등이 있음.
'JavaScript' 카테고리의 다른 글
[JavaScript] 함수 선언식과 함수 표현식, 차이와 장점 (0) | 2021.12.29 |
---|---|
[JavaScript] 유용한 JavaScript 코딩 트릭 (0) | 2021.12.28 |
[JavaScript] 자바스크립트로 하는 전화번호 / 휴대폰 번호 유효성 검사 (정규식) (0) | 2021.11.05 |
[JavaScript] 이벤트를 취소하는 방법 세가지 (이벤트 전파 중단) (1) | 2021.07.18 |
[JavaScript] 키코드 정리 (JavaScript keyCode) (0) | 2021.07.17 |