2장. 자바스크립트란?

heyj·2022년 1월 24일
0

2.1 자바스크립트의 탄생

  • 1995년 웹브라우저 시장을 90% 장악하고 있던 넷스케이프 커뮤니케이션즈는 웹페이지의 보조적인 기능을 수행하는 자바스크립트를 개발한다.

2.2 자바스크립트의 표준화

  • 1996년 마이크로소프트는 자바스크립트의 파생 버전인 'Jscript'를 인터넷 익스플로러에 탑재했는데, 이 Jscript와 자바스크립트가 표준화되지 못하고 적당히 호환하는 수준에 그쳤다. 이로 인해 크로스 브라우징 이슈가 발생하기 시작했다.

  • 1996년 11월 넷스케이프는 컴퓨터 시스템의 표준을 관리하는 비영리 표준화 기구인 ECMA International에 표준화를 요청한다.

  • 1997년 초판이 나온 이후 최근까지 꾸준히 버전업되어 ES12까지 발표되었다.

2.3 자바스크립트 성장의 역사

Ajax

  • 1999년 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신기능인 Ajax(asynchronous JavaScript and XML)가 XMLHttpRequest라는 이름으로 등장한다.

  • Ajax 이전에는 html 태그로 시작해서 html로 끝나는 완전한 HTML코드를 서버로부터 전송받아 웹페이지 전체를 렌더링 하는 방식으로 동작했다. 그러나 Ajax이후 웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링 하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링하는 방식으로 바뀐다.

jQuery

  • 2006년 DOM(document object model)을 쉽게 제어할 수 있는 jQuery가 등장한다. 자바스크립트보다 직관적이어서 사용차 층을 순식간에 확보했다.

V8자바스크립트 엔진

  • Ajax도입 이후 구글 맵스를 통해 웹 어플리케이션 프로그래밍 언어로서의 가능성이 확인된 자바스크립트로 웹 애플리케이션을 구축하려는 시도가 늘었다. 이를 위해 더욱 빠르게 동작하는 자바스크립트 엔진의 필요성이 대두되었고, 2008년 구글의 V8 자바스크립트 엔진의 등장했다.

  • 이로써 과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동했고, 프런트엔드 영역이 주목받는 계기가 되었다.

Node.js

  • 2009년 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경인 Node.js가 발표된다. Node.js는 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경이다.

  • 서버 사이드 애플리케이션 개발에 주로 사용되며 이 때 필요한 모듈, 파일 시스템, HTTP 등 빌트인 API를 제공한다.

  • Node.js는 비동기 I/O를 지원하며 싱글스레드 이벤트 루프 기반으로 동작함으로써 요청 처리 성능이 좋다. 따라서 Node.js는 데이터를 실시간으로 처리하기 위해 I/O가 빈번하게 일어나는 SPA(single page app.)에 적합하다.

SPA 프레임워크

  • 모던 웹 애플리케이션은 데스크탑 애플리케이션과 비교해도 손색없는 성능과 UX를 제공하는 것이 필수가 되었고, 이로인해 개발 규모와 복잡도도 상승했다.

  • 변경에 유연하며 확장하기 쉬운 애플리케이션 아키텍처의 구축의 필요로 프레임워크가 등장한다. CBD(component base development)방법론을 기반으로 하는 SPA가 대중화되며 Angular, Vue.js, React, Svelte 등이 등장했다.

2.4 자바스크립트와 ECMAscript

  • 자바스크립트는 일반적으로 ECMAScript와 브라우저가 별도로 지원하는 Client-Side Web API., 즉 DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등을 아우르는 개념이다.

2.5 자바스크립트의 특징

  • 자바스크립트는 HTML, CSS와 함께 웹을 구성하는 요소 중 하나로, 웹 브라우저에서 동작하는 유일한 프로그래밍 언어다.

  • 자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어(interpreter language)다. 인터프리터는 소스코드를 즉시 실행하고 컴파일러는 빠르게 동작하는 머신 코드를 생성하고 최적화한다.

  • 또한 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어라고 할 수 있다. 클래스, 상속, 정보은닉을 위한 키워드가 없어 객체지향 언어가 아니라고 오해를 받지만, 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어다.

2.6 ES6 브라우저 지원 현황

  • 인터넷 익스플로러나 구형 브라우저를 제외한 모던 브라우저 96~99%는 ES6를 지원한다.

(이 글은 모던 자바스크립트 Deep Dive를 요약 및 정리한 내용입니다.)

0개의 댓글