개요
자바스크립트는 웹기술에 빼먹을 수 없는 아주 중요한 언어이죠. 그리고 요즘 시대에는 엄청난 라이브러리와 커뮤니티들로 인해서 자바스크립트로 앱, 웹, 서버 거의 모든 것을 할 수 있는 언어로 자리매김하게 되었죠. 이런 대단한 언어가 어떻게 발전해왔는지는 저에게도 항상 궁금증은 있었지만 찾아볼 시간은 없었어요. 그래서 이번에 제가 공부하면서 알게된 내용과 자료를 정리해서 좀 술술 읽힐 수 있도록 작성해보았어요. 재미있게 읽어주세요 :)
자바스크립트가 개발된 당시의 배경
1995년 당시 웹은 정적인 페이지가 대부분이었죠. 사용자는 정보를 읽을 수는 있었지만, 웹 페이지와 상호작용하는 것은 거의 불가능했어요. 예를 들어 웹사이트에 접속한 후 아이디와 비밀번호를 입력하고 로그인 버튼을 눌려도, 페이지가 새로고침 되었어야 했죠.

당시엔
넷스케이프(Netscape)
라는 회사가 Netscape Navigator
웹 브라우저로 1990년대 시장을 거의 독점하던 시기 였어요. 그래서 앞서 말씀드린 유저와의 상호작용의 한계를 극복하기 위해서 브라우저에 간단한 스크립팅 기능을 추가하고자 했어요. 그 때 회사에서 일하던 브랜던 아이크(Brendan Eich)
는 단 10일이라는 짧은 기간 동안 JavaScript이라는 언어를 만들어 상호작용이 가능한 웹을 구현할 수 있었어요. 자바스크립트의 등장
이렇게 탄생한 언어는 처음에는
LiveScript
라는 이름으로 불렸어요. 하지만 당시 큰 인기를 끌던 자바(Java) 언어의 마케팅 효과를 위해 자바스크립트(JavaScript)라는 이름을 갖게 되었죠. 많은 사람들이 Java랑 JavaScript가 비슷한 형제언어라고 처음엔 생각하지만, 두 언어는 전혀 관련이 없는 별개의 언어에요. 
자바스크립트는 웹에 아주 큰 변화를 가져왔어요. 덕분에 개발자들은 HTML의
<script>
태그를 이용해서 자바스크립트 코드를 넣고, 마우스 오버 효과나 클릭 반응 같은 기능을 넣을 수 있었어요. 이제 웹 페이지는 단순한 정보 전달 매체에서 사용자와 소통하는 매체로 진화되는 계기가 되었죠. 넷스케이프가 웹 브라우저의 시장을 독점하던 1990년대 중반, 마이크로 소프트는
JavaScript
와 비슷한 역할을 하는 JScript
라는 언어를 만들게 되었죠. 하지만 두 언어는 완벽하게 호환되지 않았기 때문에, 개발자들에게 많은 혼란을 가져왔었어요. 그래서 그 당시 웹 사이트에서는 넷스케이프에 최적화됨
또는 인터넷 익스플로러에 최적화됨
과 같은 문구를 웹 사이트에서 볼 수 있었죠. 그러는 동시에 이러한 언어들을 통합하고 표준화해야된다는 목소리가 점점 커지게 되었죠. ECMA-262 표준화 작업
이러한 사람들의 불편함 속에서 넷스케이프는 자바스크립트에서의 독점적인 지위를 포기하고,
ECMA Intenational
이라고 하는 국제 표준화 기구에 자바스크립트를 제출하는 과감한 결정을 내리게 되었어요. 따라서 ECMA는 ECMA-262
표준을 만들게 되었고 이를 우리는 ECMAScipt
라고 부르게 되었죠. 이러한 작업 덕분에 자바스크립트는 브라우저에 종속되지 않고 모든 브라우저에 사용될 수 있는 기반을 마련할 수 있었어요. 이 표준화 작업은 몇 년간에 걸쳐 진행되던 작업이었어요. 첫 번째 ECMAScript가 출시된 이후 ES2, ES3가 출시되었고, 2000년 대에 들어서 ES4 프로젝트를 진행하던 와중에 점점 동력을 잃어가기 시작했어요. 그 이유는 바로 윈도우 운영체제 때문이었죠.
인터넷 익스플로러의 흥행
2000년대 당시에는 세상의 거의 모든 컴퓨터가 윈도우를 사용했었을 정도로 인기가 많았어요. 마이크로 소프트는 이 윈도우에 인터넷 익스플로러를 끼워 넣음으로서 웹 브라우저 시장에서 거의 독점적인 위치를 자리잡게 되었어요.

대부분은 사용자는 컴퓨터를 켜자마자 인터넷 익스플로러를 만났기 때문에, 굳이 다른 브라우저를 설치할 필요성을 느끼지 못했죠. 그리고 넷스케이프의 제품은 사용자가 직접 브라우저를 유료로 구매하거나 다운로드 해야됬기 때문에 접근성이 현저하게 떨어지게 되었고, 그렇게 경쟁에서 밀려나가게 된거에요.
그렇게 인터넷 익스플로러의 독점으로 마이크로소프트의 Jscript가 사실상의 표준처럼 자리잡게 되었어요. 그리고 마이크로소프트는 ECMA표준화 작업에는 흥미를 느끼지 못했어요. 그렇게 Jscript 진영의 참여 저조로 인해서 ECMAScript 4는 중단될 수 밖에 없었어요.
그러는 와중에 이 독점 체계의 균형을 깨뜨리는 대항마가 나타나게 되었죠.
파이어 폭스의 등장
2004년 넷스케이프의 정신을 이어받은
모질라(Mozilla)
라는 회사가 파이어폭스 브라우저를 출시하게 되었어요. 
파이어 폭스는 마이크로 소프트가 따르지 않았던 웹표준을 준수하고, 빠른 성능과 안정성을 입증 받았어요. 또 오픈 소스로 개발되었기 때문에, 전 세계의 수많은 개발자들이 참여하여 버그를 수정하고 새로운 기능을 추가하여 브라우저를 발전 시킬수 있었죠.
그리고 모질라는 넷스케이프가 참여했었던
ECMA international
에 합류하면서 표준화 작업에 박차를 가하게 되었고, 중단되었던 ECMAScript 4
를 기반으로 ActionScript3
를 개발하게 되었어요. 당시 ActionScript3는 Flash
에 사용되었었지만, 자바스크립트와의 호환성은 좋지 않았어요. 결국 마이크로 소프트의 도움 없이는 자바스크립트의 ECMAScript 4
를 표준화 시킬수 없었어요. 오픈 소스 커뮤니티의 위력 AJAX의 등장
그렇게 자바스크립트의 표준화 작업이 지체되는 동안 ECMA단체가 아닌 오픈 소스 커뮤니티에서 엄청난 진전을 이룰 수 있었어요. 그건 바로 AJAX의 등장이었죠.

AJAX를 만든 제시 제임스 개릿 (Jesse James Garrett)은 자바스크립트를 근간으로한 비동기 프로그래밍을 가능하게 하였죠. 즉, 이 기술은 화면을 새로고침하지 않고 데이터를 주고 받을수 있게 됨 으로써, 단순 화면 효과를 넘어 복잡한 웹 애플리케이션을 만들 수 있는 기반이 되었어요. 이를 기반으로
Jquery
같은 강력한 라이브러리가 탄생할 수 있었죠.이러한 기반을 다지며 웹 브라우저의 제왕이 탄생할 수 있었어요.
브라우저의 제왕 크롬의 등장
2008년 구글은
크롬
과 함께 자바스크립트 엔진인 V8
을 함께 출시했어요. 이는 어떠한 경쟁사보다 압도적으로 실행속도를 향상시킨 Just In Time Compilation
기술을 소개 했죠. .png?table=block&id=2789c76c-6cb4-80a8-a69d-c99b7f95a550&cache=v2)
JIT은 반복되는 코드를 기계어로 저장해놓는 방식이었기 때문에, 압도적인 속도를 자랑했어요. 때문에 경쟁사들도 JIT방식을 도입할 수 밖에 없었어요. 바로 이 떄부터 자바스크립트의 시장 지배력이 커져가게 되었어요.
ECMAScript 5의 완성
사실 구글은 구글 크롬을 발표하기 2달전에 V8엔진의 뛰어난 성능을 바탕으로 브라우저 시장의 혼란을 끝내고 싶어했어요. 그래서 크롬 출시 두 달전에 오슬로에서 열린 개발자 컨퍼런스에서
ECMAScript
표준화에 대한 협력을 제안했었죠. 당시 참여했던 다른 개발자들은 V8의 성능을 확인하고, 자바스크립트가 단순한 스크립팅 언어를 넘어 고성능 웹 어플리케이션의 핵심
이 될 수 있다는 것을 깨달았어요. 그리고 모두의 협력을 바탕으로 2009년 12월에 ECMAScript 5
가 표준화 될 수 있었어요. 덕분에 자바스크립트는 웹 기술에서 엄청난 성장을 이룰 수 있었어요. 그리고 한번 더 한계를 뛰어 넘는 일이 발생했죠.
Node.js의 등장
웹 브라우저의 제왕 크롬의 등장 이후 자바 스크립트는 웹 에플리케이셔 개발의 핵심 언어로 자리 잡았지만, 여전히 브라우저 안에서만 작동한다는 한계가 있었어요. 하지만 2009년 라이언 달 (Ryan Dahl)이라는 미국의 개발자는
V8
엔진을 활용해서 이벤트 루프
처리 방식과 I/O API
를 활용해 브라우저 밖에서 동작 가능한 Node를 만들었어요. 이 덕분에 개발자들은 자바스크립트 하나만으로 웹사이트의 프론트엔드와 백엔드를 모두 개발할 수 있게 되면서, 개발 생산성을 높일 수 있게 되었어요. 이로 인해 자바스크립트의 영향력은 전과 비교할 수 없을 만큼 막강한 위치에 자리잡게 되었어요. .png?table=block&id=2789c76c-6cb4-8019-a7b3-e1c9919a6217&cache=v2)
마무리하며
현재 자바스크립트가 세상에 사용되는 현황과 역사를 비교해보면 우여곡절이 많았다고 생각이 들어요. 그리고 이러한 언어가 처음 만들어 질때는 단 10일만에 만들어 졌다는 게 믿기지 않을 정도에요. 이런 이야기를 들으면서 모든 위대한 일이 항상 거대한 비전과 꿈으로 시작되는 것은 아닌 것 같다고 느끼게 되네요. 그런 반면 저 역시 시장에 영향을 줄 수 있는 무언가를 만들기 위해서, 너무 오래 준비만 하다가 완성을 못하지는 않을까 하며 반성을 해보게 되네요.
그리고 인터넷 익스플로러의 몰락을 통해서 개발세계는 오픈소스의 위대함이 느껴지기도 해요. 그리고 그런 정신을 이어받아 다 같이 오픈 소스를 통해 개발세계를 발전 시켜나가는 것이 생각보다 엄청난 파장을 일으킬 수 있다고 느껴졌어요.
오늘 글 읽어주셔서 감사해요 또 봐요!