[JavaScript] 자바스크립트의 역사

Xyan·2022년 7월 23일
3

JavaScript

목록 보기
1/2
post-thumbnail

프론트엔드를 공부하다가 최근에 자바스크립트 접하게 됐습니다.
우연한 계기로 자바스크립트의 역사를 공부하게 되었는데
내용이 매우 흥미로워서 정리된 내용을 바탕으로 글을 써보게 되었습니다.


Mosaic Web Browser의 등장

때는 바야흐로 1993년, 가정마다 PC가 제대로 보급되지 못했던 시절
컴퓨터를 모르는 사람들도 쉽게 사용할 수 있도록 UI요소가 더해진
첫번째 Mosaic Web Brower가 시장에 나왔다.

Marc Andreessen은 대학교 졸업과 동시에 Netscape라는 회사를 설립했다.
1994년, 그는 이전에 Mosaic Web Brower를 만들어본 경험을 토대로
조금 더 UI요소가 더해진 Netscape Navigator를 시장에 출시한다.

이 당시에는 HTML과 CSS로 간단하게 웹사이트를 만들 수 있었는데
HTML의 HyperText가 의미하는 것 처럼 페이지와 페이지 사이의 이동만이 가능한 정말로 정적인 웹브라우저 Netscape Navigator가 시장에서 80%의 점유율을 자랑하며 급격히 성장했다.
편의상 Netscape Navigator를 NN브라우저라고 부르겠다.

"Hypertext(하이퍼텍스트)"란 웹 페이지를 다른 페이지로 연결하는 링크를 말합니다."


Scripting 언어의 탄생

Marc Andreessen은 기존의 정적인 웹사이트에서 탈피한 동적인 웹사이트를 만들 방법을 궁리했고
동적인 기능을 추가할 수 있는 Scripting 언어를 추가하기로 했다.

Scripting 언어를 만들기위해 고려된 여러가지 방법이 있었다.
그 중 첫번째였던 Java를 이용하는 방법은 언어 자체가 무겁고 어려워서 Pass.
결국 Scheme을 만든 Brendan Eich를 스카웃해서 새로운 언어를 만들었고 Mocha가 탄생했다.
Mocha의 이름은 LiveScript로 변경되었고 이후 NN 브라우저에는 LiveScript를 해석할 수 있는 엔진
즉 Live Script Interpreter가 포함되어 브라우저가 출시됐다. 이것은 개발자들이 Live Script를 이용해 웹사이트를 만들면 NN브라우저가 그 언어를 이해하고 그 언어가 실행하고자 하는 것에 알맞게 DOM요소들을 조작하는게 가능하다는걸 의미한다.

JavaScript 이름의 기원


Netscape사는 당시 대유행하던 Java의 인기에 편승하기위해 LiveScript의 이름을 JavaScript로 변경했고 1995년에 NN브라우저에 JS와 JS Interpreter가 포함되어 출시되었다.


재앙 Internet Explorer의 등장

같은 해에 Microsoft에서는 Netscape의 성공을보고 브라우저 흥행을 예측했다.
자신들만의 브라우저를 갖고자 한 MS사는 NN브라우저를 Reverse Engineering 하여
복원에 성공한 소스코드에 자신들만의 기능을 추가하는 등 수정을 했고
결국 JScript라는 언어와 Internet Explorer라는 브라우저를 시장에 내놓았다.

이때부터 서로 다른 브라우저에서 모두 호환되는 사이트를 만들어야만 하는
개발자들의 고통이 시작되었다고 볼 수 있다.


ECMAScript

1996년 11월, 보다못한 Netscape사는 ECMA International을 찾아가서 JavaScript로 표준안을 만들어보자고 제안했고, 1997년 7월에 첫번째 ECMAScript 1 이 출시된다.

ECMAScript란 브라우저에서 동작하는 언어를 만들 때 엔진이 이해할 수 있도록 변수를 만드는 방법이나 함수 정의하는 방법 등을 정리한 문서이다.

2000년대에 들어서자 그 사이에 MS의 IE 브라우저가 점유율 95%를 차지하며 MS사의 콧대는 하늘을 찔렀다. 결국 그들은 자신들의 IE 브라우저가 곧 표준임을 선언하며 ECMA에 참여하지 않았다.
그래서 2000년대 ECMAScript 4 이후 표준안 진행이 매우 더뎌졌다.


FireFox의 등장

2004년, mozilla사에서 FireFox 브라우저를 출시했다.
그들은 ActionScript3이라는 언어를 사용하고 그것을 이해하는 Tamarin이라는 엔진을 사용했는데
이것으로 표준안을 다시 만들어보자고 제안했다. 하지만 기존의 JScript와 JavaScript와는 너무나도 달라서 신흥강자를 기준으로 새로운 표준안을 진행하기에는 무리가 있었다.
결국 표준안을 두고 3사의 치열한 경쟁이 이어졌다.


개발자 커뮤니티의 형성

그 와중에도 Opera와 같은 다른 브라우저들이 우후죽순 탄생하며 경쟁이 심화되었다.
개발자들 사이에서는 서서히 강력한 커뮤니티가 형성되었고 그 사이에서 jQuery, dojo, mootools같은 라이브러리가 등장했다. 이 라이브러리들이 해결하고자하는 공통적인 문제점은 하나!
바로 개발자들이 다른 브라우저의 구현사항을 신경쓰지않아도 되게 만드는것이었다.
이 중에서도 특히 jQuery가 흥행했다.


구세주 Chrome의 등장

웹시장을 급격하게 바꾸는 진취적인 사건이 발생하게 된다.
그것은 바로 2008년 google사에서 Chrome 브라우저를 출시한것이다.
이 브라우저는 JIT (Just-In-Time compilation) 이라는 정말 강력한 엔진이 포함되어 있어서
JavaScript를 실행하는 속도가 매우빨랐다.

결국 위기감을 느낀 기업들은 2008년 7월에 이르러서야 윈윈관계를 형성하며 생산적인 대화를 시작한다.


성숙해진 JavaScript

2009년 ECMAScript 5, 그리고 2015년 ECMAScript 6가 완성되며 급격한 변화를 이뤄낸 JS는 이제 완전히 성숙한 언어가 되었다. 더이상 jQuery같은 라이브러리의 도움 없이도 충분히 JS와 웹APIs에서 제공하는 API들 만으로 모든 브라우저에서 동작하는 웹사이트나 웹어플리케이션을 만들 수 있게되었다. 이제 개발자들은 개발할때는 최신 ECMAScript 기준으로 개발을 하고 배포할때는 ECMAScript의 버전을 5나 6으로 변환해서 코드를 생성해주는 BABEL이라는 JavaScript transcompiler를 사용한다.


현재에 이르러서는 Single page application도 JS만으로 충분히 구현할 수 있지만
더 쉽고 효율적으로 하기위해 React, Angular, Vue 같은 친구들이 탄생했다.

표준화된 ECMAScript, 그리고 강력한 V8엔진으로 인해 node js가 등장했고
이것은 V8엔진을 이용해 백엔드에서도 서비스를 구현할 수 있도록 만들어졌다.

React Native를 이용해 모바일 어플리케이션도 충분히 만들 수 있고
Electron으로 Desktop 어플리케이션도 물론 가능하다.

Web Assembly라는 기술의 등장으로 Python, Go, C++ 같은 언어로도 충분히 JS처럼 웹개발이 가능해졌다.

profile
Yes, I can!

2개의 댓글

comment-user-thumbnail
2023년 1월 10일

드림코딩 자바스크립트의 역사강의 영상에 추가적으로 보태서 정리하신 건가요?

1개의 답글