자바스크립트는 넷스케이프의 Navigator 브라우저에서 사용할 수 있도록 만들어진 스크립팅 언어인 Mocha(=>Live Script)가 그 기원이다. 넷스케이프 사는 당시 Java의 인기를 이용하기 위해 1994년 Live Script를 JavaScript라는 이름으로 바꾼 것이다.
1995년 마이크로소프트 사는 이 JavaScript를 revers Engineering하여 JScript라는 것을 만들게 된다. 이렇게 되니 개발자들은 Internet Explore와 Netscape의 브라우저, 둘 다에서 돌아가게 웹을 만들어야 해 매우 복잡했다. 결국 Netscape가 이런 상황을 방지하고자 ECMA international과 함께 '표준 스크립팅 언어 규칙'을 만들게 되었고 이것이 바로 ECMA Script이다.
2000년대에 대부분의 사람들이 Internet Explore를 사용하다보니, ECMA Script를 사용하지 않고 자신들만의 표준을 사용하면서 ECMA Script의 업그레이드가 더뎌지게 됐다. 이후 모질라 사에서 타마린 엔진을 장착한 Firefox 브라우저를 출시하며, 국제 표준을 둘러싸고 3사가 대립하게 되었고 이 과정에서 다양한 브라우저에 호환되는 웹을 만들기 위한 개발자들의 일은 많아지게 되었다. 바로 이 어려움을 해소하고자 jquery, dojo, mootools 등 라이브러리를 사용해 다양한 브라우저에도 호환되는 웹을 만들게 된 것이다.
2008년 구글에서 JIT 엔진이 포함된 성능이 뛰어난 chrome 브라우저를 내놓으면서, 크롬을 포함한 모든 브라우저들이 함께 ECMA Script5를 만들게 된다. 2015년에는 ECMA Script 6가 나오며 const, let, arrow function 등의 문법이 추가되었다. 이제는 대부분의 브라우저들이 이 ECMA Script 표준을 따르는 엔진을 사용중이다. (Chrome-v8, Firefox-SpiderMonkey, Safari - JSCore, MSEdge - Chakra...)
특히 Chrome의 V8엔진은 Node.js, Electron에서 사용되고 있다. 웹 개발자들은 ES 최신 버전에 따라 개발을 한 후 , 이것을 배포할 때 다양한 브라우저에 호환되게 바꿔주는 Babel(=JavaScript transcompiler)을 사용한다.
원래 JavaScript는 브라우저 상의 동적인 움직임을 위해 추가된 언어이지만, V8이라는 강력한 엔진과 ECMA Script를 통해 널리 알려진 표준화를 기반으로 이제는 백엔드(NodeJS), 모바일(react-native), 데스크탑 app(electron) 등 활용 가능성이 다양해졌다. 추가적으로 이전에는 JavaScript만이 가능했던 브라우저 상에서의 동적 조작을, 최근에는 Web Assembly 언어가 등장해 파이썬, C 등 다양한 언어로 웹 브라우저에서 동적인 조작이 가능해졌다.
'개발 공부 > 자바스크립트' 카테고리의 다른 글
[엘리의 드림코딩 JS] 5. 함수(Function) (0) | 2022.12.04 |
---|---|
[엘리의 드림코딩 JS] 4. 연산(operator) (0) | 2022.12.04 |
[엘리의 드림코딩 JS] 3. 데이터 타입, 호이스팅 (0) | 2022.12.04 |
[엘리의 드림코딩 JS] 2. script async, defer, use strict (0) | 2022.12.04 |
You Don't Know JS - 자바스크립트가 이렇게 재미있다고? (0) | 2022.11.10 |