# JavaScript 역사

## JavaScript History

| 연도    | Description                                                                                                                                                                         |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1993년 | Mosaic Web Browser                                                                                                                                                                  |
| 1994년 | <p>Netscape설립 HTML CSS만을 이용 <strong>정적인 웹사이트</strong></p><p>→ <strong>Scripting 언어를 추가</strong><br>→ <strong>LiveScript 출시 (</strong>Mocha)</p>                                     |
| 1995년 | <p>LiveScript → <strong>JavaSscript</strong>로 이름 변경 <br>→ Microsoft에서 <strong>JScript</strong> 출시</p>                                                                               |
| 1997년 | <p><strong>ECMAScript1</strong> 등장 </p><p>(문법적인 사항들을 잘 정리한 문서)</p>                                                                                                                  |
| 2000년 | <p>Microsoft Internet Explorer <br>웹시장의 점유율↑ 95%</p>                                                                                                                                |
| 2004년 | <p>Mozila Firefox 출시<br>→ <strong>AJAX</strong> 등장 (비동기적처리)<br>→ <strong>jQuery</strong> / dojo / mootools 등의 라이브러리 출시</p>                                                          |
| 2008년 | <p><strong>Google Chrome</strong> 출시 <br>: <strong>JIT 포함</strong> (자바스크립 실행 속도가 엄청나게 빠른 강력한 엔진)<br><br>→ Netscape, Firefox, Internet Explorer, Chrome <strong>표준화를 논함</strong></p> |
| 2009년 | **ECMAScript 5**                                                                                                                                                                    |
| 2015년 | **ECMAScript 6**                                                                                                                                                                    |

매년 새로운 버전의 ECMAScript가 출시되고 있지만,\
조금씩 수정된 것일 뿐, 커다란 변화들은 **ES5 / ES6**에서 모든 것이 정의 되었다고 볼 수 있음

## 1. JavaScript란?

웹 브라우저에서 여러 요소들을 동적으로 움직이고 외부와 통신할 수 있도록 도와주는 프로그래밍 언어

## 2. 각 브라우저별 JavaScript Engines

* Chrome - V8
* Firefox - SpiderMonkey
* Safari - JSCore
* MS Edge - Chakra
* Opera - Carakan
* Adobe Flash - Tamarin

## 3. 최근동향

* **ES6**로 인한 **표준화**로 라이브러리 없이 웹 API만로도 웹 사이트&어플리케이션 개발이 가능
* **BABEL**을 통해 최신 브라우저가 아니어도 사용할 수 있도록 ES5, ES6로 변환하여 배포
* **SPA** 을 통해 하나의 페이지 안에서 필요한 부분만 업데이트가 가능
* **WepAssembly** 를 통해 다양한 언어들을 이용하여 웹 어플리케이션 개발 가능 ex) 그래픽 툴 Figma
* **Node.js**는 V8, Javascript를 이용한 backend에서 서비스를 구현할 수 있음

{% hint style="info" %}
**BABEL**(Javascript transcompiler) : \
최근 ECMAScript Specification의 JavaScript로 작업 후, 이전 버전으로 compile 해주는 것

\*ECMAScript Specification(언어의 사양, 명세서)\
\*JavaScript는 ECMAScript의 표준을 따르는 언어
{% endhint %}

{% hint style="info" %}
**SPA**(Single Page Application) : \
하나의 페이지 안에서 필요한 부분만 업데이트하는 것
{% endhint %}

{% hint style="info" %}
**Node.js** : \
자바스크립트는 프론트엔드 분야에서 주로 활용되는데,\
노드JS가 등장하면서 자바스크립트로 백엔드 기술까지 제어할 수 있게 됨\
즉, 또 다른 자바스크립트 실행 환경으로 웹 브라우저 밖에서도 \
자바스크립트를 실행할 수 있도록 만들어 주는 소프트웨어 플랫폼
{% endhint %}
