1993년, ui요소를 가진 최초의 웹브라우저인 Mosaic Web Browser가 시장에 공개되었다. 이때의 개발자인 Marc Andreessen은 1994년 대학을 졸업하면서 NetScape를 설립한다.
NetScape사는 조금더 ui적 요소를 가진 Netscapte Navigator라는 이름의 웹브라우저를 출시하게 된다.
사실 모자이크 넷스케이프에서 상표권 문제를 피하기 위해 넷스케이프 네비게이터라는 이름을 사용한다.
Netscapte Navigator는 출시 4개월 이후 시장의 80%를 잠식하면서 급격한 성장을 맞이한다.
Marc Andreessen은 HTML에 코드를 웹 페이지 마크업으로 직접 작성하면서 웹 디자이너들과 파트타입 프로그래머들이 이미지, 플러그인 등의 요소를 쉽게 조합할 수 있는 스크립트언어가 필요하다고 생각했고, 후보군은 2가지 였다.
첫번째 후보는 썬마이크로 시스템즈의 Java였다.
하지만 Java는 웹개발자들이 사용하기엔 다소 어려운 언어였다
이후 Scheme기반의 스크립트 언어를 새로 만들기 시작하였고, Mocha라는 이름의 새로운 언어가 탄생하게 되었다. 이후 1994년 9월 라이브스크립트라는 이름로 바꾼 이 새로운 언어는 Netscapte Navigator에 LiveScript 인터프리터가 포함되면서 새로운 개발환경이 시작되었다.
NetScape는 당시 인기가 올라가던 Java의 명성에 올라타려 했고, LiveScript가 java에서 파생되었다는 인상을 심기위해 JavaScript로 변경하여 1995년 12월 Netscapte Navigator 2.0 beta3에 우리가 아는 자바스크립트가 탄생하게 된다.
결국 Java 와 JavaScript는 C에 바탕을 두고 있어 구문이 비슷하다는 것을 제외하면, 전혀 다른 언어이고, 별개의 회사에서 만들어진 언어이다.
처음 개발을 시작하는 학생들이 두 언어가 비슷한 것으로 알고 있는데(필자 또한 그랬다) 완전히 별개의 언어이다.
그렇다고 무단으로 Java의 이름을 가져온 것이 아니라 썬마이크로 시스템즈의 허락을 맡고 가져왔다. 그로인해 상표권은 썬마이크로 시스템즈가 가지고 있고, 현재는 썬마이크로 시스템즈를 인수한 오라클이 가지고 있다.
1995년 MS는 리버스엔지니어링을 통해 자사만의 문법을 추가하여 JScript를 탄생하였고, Internet Explorer를 출시한다.
이로 인해 Netscapte Navigator를 지원하는 사이트에 Internet Explorer로 접속하면 Netscapte Navigator의 사용을 권유하는 사이트들도 생겨났다. ( 반대의 경우도 동일하다 )
결과적으로 브라우저에 따라 정상적으로 동작하지 않는 사이트들이 생겨났고, 개발자들은 모든 브라우저에서 정상동작하는 코드를 짜기 힘들어졌다.
이것은 표준의 필요성을 보여주게 되었다.
1994년 Netscapte Navigator가 시장의 80%를 장악하면서 1995년 8월 MS는 Mosaic Web Browser에 라이선스 비용을 지불하고 Internet Explorer 1.0를 개발하고, 11월에 2.0을 출시한다.
1996년 Netscapte는 Netscapte 3.0을 출시하였고, 이때 JavaScript와 CSS를 구현하면서 웹개발의 혁명을 가지고 왔다.
1997년 10월 MS는 Internet Explorer 4.0을 출시한다. 특별한 기술을 가진 것은 아니었지만, MS는 당시 시장 점유율이 90%에 달하는 Windows(win98)에 기본 웹브라우저로 Internet Explorer를 탑재한다. 이 시점으로 Netscapte의 점유율 하락이 시작되게 된다.
결국 2000년대에 들어서면서 Internet Explorer의 점유율이 90%가 넘어가게 되었고, Netscapte사는 소스코드를 공개하면서 쓸쓸히 브라우저 전쟁에서 퇴장한다.
이 때 공개된 소스코드는 추후 모질라 FireFox로 이어진다.
앞서 이야기한 표준의 필요성 때문에 컴퓨터 시스템의 표준을 관리하는 비영리 표준화 기구인 EMCA에 JavaScript를 표준화 요청하고, 1997년 ECMAScript라는 이름으로 표준화된 자바스크립트가 탄생한다.
이후 ECMAScript2, ECMAScript3 등 버전을 발전시키고, 우리가 흔히 말하는 ES6는 ECMAScript6의 준말이다.
2000년, 90%가 넘는 점유율은 가진 Internet Explorer는 비협조적은 태보를 보였고, 표준화 진행이 어려워 진다.
1999년, 자바스크립트를 통해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 AJAX가 등장한다.
이전의 웹은 html 태그로 시작해 html태그로 끝나는 완전한 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링하는 방식으로 동작하다보니, 변경이 생기면 다시 웹페이지의 코드를 처음부터 다시받아 처음부터 다시 렌더링 해야했다. 이는 변경이 없는 코드또한 다시 렌더링 해야함으로 불필요한 데이터 통신과 렌더링이 발생할 수밖에 없었다. (이 때 페이지 전체가 깜빡인다.) AJAX는 필요한 부분만(변경된 부분만) 전송받아 부분적으로 렌더링 하는 방식을 가능하게 했다.
jQuery는 코드를 입력하면 각 브라우저에 맞는 네이티브 코드로 변환을 해주는 친구이다. jQuery 등장이전 개발자들은 JavaScript, JScript등 다른 스크립트 언어를 사용하는 브라우저 때문에 각기 다른 브라우저에 대응하는 개발을 해야만 했다. 2006년, jQuery가 등장하면서 이러한 문제점이 해결되었다.
Netscapte Navigator는 앞서 1차 브라우저 전쟁으로 인해 쉽게 말해 망했다. 하지만 몰락이 시작되었을 때 소스코드를 공개하였으며, 비영리 재단인 Mozilla재단에 의해 역사를 이어간다. 모질라에서 만든 브라우저는 Phoenix에서 FireBird로 그리고 우리에게 익숙한 FireFox로 이름을 바꾸어 서비스한다.
하지만 아직도 Internet Explorer의 막강한 파급력을 이길 수는 없었다.
2008년 9월 이 혼란한 브라우저 전쟁을 마칠 Chrome이 등장하게 된다.
Internet Explorer에 비해 엄청난 속도, 압도적인 편의성, 다양한 개발도구의 제공으로 일반사용자부터 개발자까지 모두가 선호하는 브라우저가 나타냈다. 2011년 11월 FireFox의 점유율을 뛰어넘고, 2012년 5월 Internet Explorer의 점유율을 넘기면서 ECMA표준을 지키는 1등 브라우저가 탄생하였다.
이는 MS가 ECMA표준을 지킬 수 밖에 없게 하는 환경을 만들어 주었다.
2008년, 자바스크립트 동작하기 위한 엔진으로 구글에 만들었다. V8 자바스크립트 엔진의 등장으로 서버에서 수행되던 로직들이 브라우저로 이동했고, 프론트엔드 영역이 부상하게 되었다.
V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경이다. 브라우저에 한해 구동되던 자바스크립트를 브라우저 이외의 환경에서 동작할 수있도록 만든 실행 환경이다. 이는 프론트엔드와 백엔드 모두에서 자바스크립트를 사용할 수 있도록 만들어 주었다.
자바스크립트는 웹을 구성하는 요소 중 하나로 브라우저에서 동작하는 유일한 프로그래밍 언어이다.
별도의 컴파일을 하지 않는 인터프리터 언어이다.
컴파일러 | 인터프리터 |
---|---|
코드가 실행되기 전 소스코드 전체를 기계어로 변환후 실행한다. | 런타임에 한 줄씩 중간코드인 바이트코드를 변환한 후 실행한다. |
실행파일 생성 | 실행 파일 생성안함 |
컴파일 단계와 실행단계 분리됨 | 인터프리트 단계와 실행단계 분리되어 있지 않음 |
실행 전 컴파일은 한 번 수행 | 코드 실행될 때 마다 인터프리트 과정이 반복 수행 |
컴파일과 실행단계과 분리되어 실행속도가 빠름 | 인터프리트 과정이 반복되어 실행 속도 느림 |