EtoC

JavaScript의 역사 본문

Language/JavaScript

JavaScript의 역사

게리드 2023. 7. 31. 13:15

javaScript란?

웹사이트와 상호작용하여 페이지를 동적이게 만드는 언어로 .js라는 확장자를 가진다.
사용자가 브라우저에서 행하는것을 처리하고, 데이터를 저장하거나, 네트워크 요청(req)과 응답(res)를 처리할 수 있다.
(java와는 아무 상관이 없다)

1. 자바스크립트의 역사

1. 탄생과 변명(?)

  • 1995년
    넷스케이프 커뮤니케이션즈가 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍언어를 도입하기로 결정하고 브렌던 아이크가 자바스크립트를 개발하게 된다.
  • 1996년 3월
    모카(moca)로, 9월에는 라이브스크립트(liveScript)로, 12월에는 자바스크립트(javaScript)라는 이름으로 바뀌었다.

2. 표준화

  • 1996년 8월
    마이크로소프트는 javascript의 파생버전인 JScirp를 인터넷익스플로러에 탑재하였다.
    그런데 표준화를 한것이아닌 적당히 호환하여 크로스 브라우징 이슈가 발생하였다.

크로스 브라우징이란?

  • 표준 웹 기술을 따르면서 다른 기종 혹은 플랫폼에서 달리 구현되는 기술을 비슷하게 만듦과 동시에 어느 한쪽에 최적화되어 치우치지 않도록 공통 요소를 사용하여 웹 페이지를 제작하는 기법을 말한다.
  • 공통요소는 ‘모든 브라우저에 똑같이 보이게(동등성)가아닌 동등성(등가성)을 의미한다.

이에 자바스크립트의 파편화를 방지하고 모든 브라우저에서 동작하는 자바스크립트의 표준화의 필요성이 대두되었다.

  • 1996년 11월
    넷스케이프는 컴퓨터 시스템을 관리하는 비영리 표준화 기구인 ECMA international에 자바스크립트의 표준화를 요청한다.
  • 1997년 7월
    ECMA-262라는 표준화된 자바스크립트의 초판이 완성되었고, ECMA script(1)라고 이름을 바꾸게 된다.
  • 1999년
    ECMA script3 공개
  • 2009
    ECMA script5와 HTML5가 함께 표준사양이 되었다.
  • 2015년
    ECMA script6가 공개되며, let/const, 화살표함수, 클래스, 모듈같은 범용프로그래밍 언어로 갖춰야할 기능들이 대거 도입되었다.

3. 성장

초기의 자바스크립트는 웹 페이지에서 보조적인 기능을 수행하는 한정적인 용도로 사용되었다.
대부분의 로직은 웹 서버에서 실행되었고, 브라우저는 서버에서 전달받은 HTML과 CSS를 단순히 렌더링 하는 수준이였다.

렌더링?

HTML과 CSS, 자바스크립트로 작성된 문서를 해석하여 브라우저에 시각적으로 출력하는 것을 말한다.
SSR과 CSR공부후 링크 걸기

4. Ajax

이전의 웹페이지는 html태그로 시작과 끝을 내는 HTML코드를 서버에서 받아 전체 웹페이지를 렌더링하였기때문에, 화면 전환시 서버로부터 새로운 html을 받아 다시 웹페이지 전체를 렌더링해야했다.

  • 1999년
    자바스크립트를 이용하여 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신기능인 Ajax가 XMLHtpRequest라는 이름으로 등장하면서 웹페이지에서 변경이 불필요한 부분은 다시 랜더링 하지 않고 서버에서 필요한 데이터만 받아 부분적으로 렌더링이 가능해졌다.
  • 2005년
    구글의 구글맵스는 Ajax를 기반으로 동작하여 빠르고 부드러운 화면 전환을 보여주어 웹 어플리케이션 프로그래밍 언어로서 자바스크립트의 가능성을 확인하는 계기를 마련하였다.

5. JQuery

2006년 제이쿼리의 등장으로 논란이있던 DOM(Document Object Model)을 더욱 쉽게 제어할수 있게되었고 크로스 브라우징이슈도 어느정도 해결되었다.

6. V8 자바스크립트 엔진

구글 맵스를 통해 자바스크립트의 프로그래밍 언어로서의 가능성이 확인되자 더욱 빠르게 동작하는 자바스크립트엔진의 필요성이 대두되었다.
이러한 요구에 맞춰 2008년에 등장한 구글의 v8엔진은 자바스크립트를 웹개발에서 프론트엔드의 영역을 주목받게하는 계기가 되었다.

7. Node.js

2009년 라이언 달이 발표한 nodejs는 구글의 v8 자바스트립트엔진으로 만들어진 자바스크립트 런타임 환경이다.

웹에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시켰으며, 주로 서버사이드 애플리케이션 개발에 사용된다.
또한 이에 필요한 모듈이나 파일시스템, http빌트인 API를 제공한다.

비동기 I/O를 지원하며 단일스레드 이벤트루프 기반으로 동작하여 요청의 처리성능이 좋다. 그러나 CPU사용률이 높은 애플리케이션에는 권장되지 않는다.

nodejs의 등장으로 프론트엔드는 물론 백엔드 영역까지 아우르는 웹 프로그래밍 언어의 표준으로 자바스크립트가 자리매김하게된다.

8. 자바스크립트와 에크마스크립트

자바스크립트는 ECMAscript와 Client Side WEB API로 이루어져있다.

  • ECMAscript
    프로그래밍 언어로서 자바스크립트의 기본뼈대이다.
  • Client Side WEB API
    DOM, BOM, cnavas, XMLHttpRequest, fetch, SVG, WebStorage, WebComponent, Web Worker등을 아우르는 개념이다.
    클라이언트 사이드 웹 API는 ECMAscript와는 별도로 월드와이드웹콘소시엄(W3C)에서 별도의 사양으로 관리하고 있다.

3. 자바스크립트의 특징

  • html,css와 함께 웹을 구성하는 요소중 하나로 웹브라우저에서 동작하는 유일한 프로그래밍 언어이다.
  • 개발자가 별도의 컴파일 작업을 수행하지않는 인터프리터 언어이다.
  • 명령형,함수형,프로토타입기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.

4. ES6의 브라우저 지원 현황

대부분의 브라우저는 es6를 지원하나 100%지원하고 있지않기때문에 BABEL같은 트랜스 파일러를 사용하여 ES6이상의 코드를 구현하거나 ES5이하의 사양으로 낮춰서 사용해야한다.