• 아래의 내용은 필자가 자바스크립트 스터디를 진행하면서 공부하고 정리한 내용을 요약한 것입니다.

2장 자바스크립트란?

2.1 자바스크립트의 탄생

  • 브렌던 아이크가 웹 페이지의 보조 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 결정하고 개발한 것이 자바스크립트이다.

2.2 자바스크립트의 표준화

  • 자바스크립트의 파생 버전인 JScript를 인터넷에 탑재했으나, 표준화 되지 못했다.
  • 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈가 발생해서 자바스크립트의 표준화의 필요성이 대두되었다.
  • 표준화된 자바스크립트가 완성되었고 ECMAScript로 명명되었다.
  • ECMAScript 6는 let/const 키워드, 화살표 함수, 클래스, 모듈 등 같이 범용 프로그래밍 언어로서 갖춰야할 기능들을 대거 도입하는 큰 변화가 생겼다.

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

  • 초창기에는 단순히 서버로부터 전달받은 HTML과 CSS를 단순히 랜더링하는 수준이었다.

Ajax

  • 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능인 Ajax가 XMLHttpRequest라는 이름으로 등장했다.
  • 웹 페이지에서 변경할 필요가 없는 부분은 다시 랜더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 랜더링하는 방식이 가능해졌다.

JQuery

  • DOM을 쉽게 제어할 수 있고 크로스 브라우징 이슈도 해결할 수 있다.

V8 자바스크립트 엔진

  • 웹 서버에서 수행되던 로직들을 클라이언트로 이동했고, 더욱 빠르게 자바스크립트를 동작할 수 있게 되었다.

Node.js

  • 라이언 달이 발표한 Node.js는 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경이다.
  • Node.js는 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경이다.
  • Node.js는 비동기 I/O를 지원하며 단일 스레드 이벤트 루프 기반으로 동작함으로써 요청 처리 성능이 좋다.

SPA 프레임워크

  • Single Page Application의 약자이다.
  • 복잡해진 개발과정을 쉽게 수행하게 하기 위해, Component Based Development 방법론을 기반으로 변경에 유연하면서 확장하기 쉬운 프레임워크나 라이브러리가 등장하였다.

2.4 자바스크립트와 ECMAScript

  • 자바스크립트는 일반적으로 프로그래밍 언어로서 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도로 지원하는 클라이언트 Web API, 즉 DOM, BOM, Canvas, XMLHttpRequest, fetch 등을 아우르는 개념이다.

2.5 자바스크립트의 특징

  • 자바스크립트는 HTML, CSS와 함께 웹을 구성하는 요소 중 하나로 웹 브라우저에서 동작하는 유일한 프로그래밍 언어이다.
  • 기본 문법은 C, 자바와 유사하고 프로토타입 기반 상속과 일급 함수의 개념도 차용했다.
  • 자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어이다.
  • 대부분의 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결했다.
  • 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.
  • 자바스크립트는 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어다.
profile
<'쟤'보단 내가 낫지> 에서 '쟤'를 담당하고 있습니다.

0개의 댓글