모던 자바스크립트 Deep Dive - 제 2장 자바스크립트란?

손용현·2024년 6월 28일
0
post-thumbnail

> 모던 자바스크립트 Deep Dive 제 2장 자바스크립트란? 요약정리

2.1 지바스크립트의 탄생

  • 1995년 넷스케이프 커뮤니케이션즈는 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 결정하였고, 그래서 탄생한 것이 브렌던 아이크가 개발한 자바스크립트다.

2.2 지바스크립트의 표준화

  • 넷스케이프 커뮤니케이션즈의 자바스크립트와 마이크로소프트의 JScript는 자사 브라우저의 시장 점유율을 높이기 위한 경쟁으로 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가하였고, 그로인해 크로스 브라우징 이슈가 발생하였다.

  • 자바스크립트의 파편화 방지를 위해 모든 브라우저에서 정상적으로 동작하는 표준화된 자바스크립트의 필요성이 대두되었고, 넷스케이프 커뮤니케이션즈는 1996년 11월 ECMA 인터내셔널(비영리 표준화기구)에 표준화를 요청하였다.

  • 그리하여 1997년 7월 표준화된 자바스크립트 ECMAScript가 배포되었다.


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

2.3.1 Ajax

  • 1999년 자바스크립트를 이용햐 서버와 브라우저가 바동기 방식으로 데이터를 교환할 수 있는 통신 기능인 Ajax가 XMLHttpRequest라는 이름으로 등장

  • 대표적인 사용 예시로 2005년 구글 맵스가 있다. Ajax를 기반으로 동작하는 구글 맵스가 데스크톱 애플리케이션과 비교했을 때 손색이 없을 정도의 성능과 부드러운 화면 전환 효과를 보여줌.

비동기 방식: 서버에 요청을 보냈을 때 응답 상태와 상관없이 다음 동작 수행이 가능

2.3.2 jQuery

  • jQuery의 등장으로 다소 번거롭고 논란이 있던 DOM을 더욱 쉽게 제어할 수 있게 됨.

DOM: Document Object Model의 약자로 문서 객체 모델이며, HTML 요소를 파싱해서 객체화하여 웹페이지를 동적으로 움직이게 만들 수 있음

2.3.3 V8 자바스크립트 엔진

  • 자바스크립트로 웹 어플리케이션을 구축하려는 시도가 늘면서 더욱 빠르게 동작하는 자바스크립트 엔진의 필요성이 대두되었고, 이에 부합하는 성능을 보여주는 구글의 V8 자바스크립트 엔진이 등장하였다.

  • V8 자바스크립트 엔진의 등장으로 자바스크립트는 데스크톱 애플리케이션과 유사한 사용자경험 (UX)을 제공할 수 있는 웹 애플리케이션 프로그래밍 언어로 정착하게 되었다.

2.3.4 Node.js

  • 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경이다.

  • 프론트엔드와 벡엔드 영역에서 자바스크립트를 사용할 수 있다는 동형성은 별도의 언어를 학습하기 위한 시간을 덜 수 있다는 장점이 있다.

2.3.5 SPA 프레임워크

  • 데스크톱 어플리케이션과 비교해도 손색없는 성능과 사용자 경험 제공 및 개발 규모, 복잡도 상승으로 인해 많은 패턴과 라이브러리가 등장하였다.

  • 하지만 어플리케이션 아키텍쳐 구축을 어렵게 하여 프레임워크가 등장하였고, CBD 방법론을 기반으로 하는 SPA가 대중화되면서 Angular, React, Vue.js, Svelte 등 다양한 SPA 프레임워크/라이브러리 또한 많은 사용층을 확보하고 있다.

2.4 자바스크립트와 ECMAScript

  • ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 말하며 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정한다.

2.5 자바스크립트의 특징

  • 웹 브라우저에서 동작하는 유일한 프로그래밍 언어다.
  • 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어다.
  • 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.
  • 자바스크립트는 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어다.

2.6 ES6 브라우저 지원 현황

  • Node.js는 V4부터 ES6을 지원하기 시작했다.
profile
킵고잉

0개의 댓글