pugnet
모던자바스크립트 Deep Dive_2장/49장 본문
02장. 자바스크립트(JavaScript)란?
2.1. 자바스크립트의 탄생
웹페이지의 보조적인 기능 수행을 위해 브라우저에서 동작하는 경량 프로그래밍 언어 도입을 위해 탄생한 것이 브렌던 아이크(Brendan Eich)가 개발한 자바스크립트다.
1996년 3월에 넷스케이프 네비게이터2에 모카라는 이름으로 탑재되었고 그해 9월에 라이브스크립트로 이름이 바뀌었다가 12월에 자바스크립트로 최종 명명되었다.
현재 자바스크립트는 모든 브라우저의 표준 프로그래밍 언어로 자리잡았다.
2.2. 자바스크립트의 표준화
마이크로소프트에서 1996년 8월 "JScript"라는 자바스크립트의 파생버전을 인터넷 익스플로러에 탑재했는데 JScript와 JavaScript가 적당히 호환될 뿐 표준화되지 못했다. 넷스케이프 커뮤니케이션즈와 마이크로소프트에서 각각 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가하여 브라우저에따라 웹페이지가 정상적으로 동작하지 못하는 크로스 브라우징 이슈가 발생했다.
모든 브라우저에서 정상적으로 동작하는 웹페이지 개발을 위해서 표준화된 자바스크립트가 필요해졌다. 그래서 넷스케이프 커뮤니케이션즈에서 1996년 11월 ECMA 인터내셔널(컴퓨터 시스템 관리 비영리 표준화 기구)에 자바스크립트 표준화를 요청했고 19978년 7월에 표준화된 자바스크립트 초판 사양인 ECMA-262가 완성됐다. 이는 상표권 문제로 ECMAScript로 명명되었다.
2009년에 발표한 ECMAScript 5(ES5)는 HTML5와 함께 출현한 표준사양이고 2015년에 ECMAScript 6(ECMAScript 2015, ES6)는 let/const 키워드, 화살표 함수, 클래스, 모듈 등 범용 프로그래밍 언어가 갖춰야 할 기능을 대거 도입했다.
2.3. 자바스크립트 성장의 역사
초창기 자바스크립트는 대부분의 로직은 웹 서버에서 실행되었고 브라우저는 서버로부터 전달받은 HTML과 CSS를 단순히 렌더링 하는 수준으로 웹페이지의 보조적인 기능 수행을 위한 한정적인 용도로 사용되었다.
*렌더링 : HTML, CSS, JavaScript로 작성된 문서를 해석해서 브라우저에 시각적으로 출력하는 것. 또는 서버에서 데이터를 HTML로 변환해서 브라우저에 전달하는 과정(SSR; Server Side Rendering)을 말한다.
2.3.1. Ajax
Ajax(Asynchronous JavaScript and XML)는 자바스크립트를 이용해서 서버와 브라우저가 비동기(Asynchronous) 방식으로 데이터를 교환할 수 있는 통신 기능으로 XMSHttpRequest라는 이름을 가졌다.
Ajax 등장 이전의 웹페이지는 완전한 HTML 코드를 서버로부터 전송받아서 웹페이지 전체를 렌더링하고, 화면이 바뀌면 웹페이지 전체를 처음부터 다시 렌더링하는 방식으로 변경할 필요가 없는 부분까지 HTML 코드를 서버로부터 다시 전송받았다. 그렇기 때문에 불필요한 통신, 화면 깜박임 등 성능면에서 떨어졌다.
Ajax가 등장하면서 서버로부터 필요한 데이터만 전송받아 변경이 필요한 부분만 렌더링하는 방식으로 동작이 가능해졌다. 대표적인 적용 프로그램으로 구글 맵스가 있다.
2.3.2. jQuery
2006년 HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 jQeury가 등장하면서 DOM(Document Object Model)을 더 쉽게 제어하고 크로스 브라우징 이슈를 어느정도 해결할 수 있게 됐다.
jQuery는 MIT 라이선스를 가진 자유 오픈 소프트웨어로 크로스 플랫폼의 자바스크립트 라이브러리다.
2.3.3. V8 자바스크립트 엔진
구글 맵스로 웹 애플리케이션 프로그래밍 언어로서 자바스크립트의 가능성이 검증되었다.
V8 자바스크립트 엔진은 빠른 성능으로
'Programming > 모던자바스크립트 Deep Drive' 카테고리의 다른 글
모던자바스크립트 Deep Dive_1장/49장 (0) | 2020.10.20 |
---|