1. 자바스크립트의 탄생
- 넷스케이프 커뮤니케이션즈가 1995년 브라우저에서 동작하는 경량 프로그래밍 언어를 도입.
- 제작자는 브렌던 아이크.
- 1996년 3월 넷스케이프 네비게이터2에 탑재되었고, Mocha 라는 이름으로 명명됨.
- 그해 9월 LiveScript로 이름이 바뀌고, 12월에 JavaScript라는 이름으로 바뀌었다.
2. 자바스크립트의 표준화
- 1996년 8월 MS는 자바스크립트의 파생버전인 "JScript"를 IE에 탑재.
- JavaScript와 JScript가 표준화 되지 못하고 부분적으로만 호환되는 문제가 발생.
- 결국 넷스케이프와 MS는 자사 브라우저의 점유율을 높이기 위해 자사브라우저에서만 동작하는 기능들을 추가하기 시작.
- 이로인해 브라우저에 따라 웹페이지가 비정상적으로 동작하는 크로스 브라우징 이슈가 발생.
- 웹페이지개발의 어려움을 야기.
- 1996년 11월, 넷스케이프는 컴퓨터의 표준을 관리하는 기구인 ECMA 인터네셔널에 자바스크립트의 표준화를 요청.
- 1997년 표준화 된 자바스크립트는 ECMAScript로 명명.
3. 자바스크립트 성장의 역사
- 초창기 자바스크립트는 전달받은 HTML과 CSS를 단순히 렌더링하는 수준이었다.
3.1 Ajax
- 199년 비동기방식으로 서버와 브라우저가 데이터를 교환할수 있는 통신기능인 Ajax가 XMLHttpRequest라는 이름으로 등장.
- 웹페이지에서 변경할 필요가 없는 부분은 다시 랜더링 하지 않고, 필요한 데이터만 전송받아 변경할 부분만 한정적으로 랜더링 하는 방식이 가능해짐.
3.2 JQuery
- 2006년 DOM을 쉽게 제어할 수 있는 JQuery가 등장.
3.3 V8 자바스크립트 엔진
- 2008년 등장한 구글의 V8 자바스크립트 엔진은 자바스크립트를 더 빠르게 동작시켜주었다.
- 엔진의 등장으로 자바스크립트는 데스크톱 에플리케이션과 유사한 UX를 제공할 수 있게 되었다.
- V8엔진의 등장으로, 과거에는 웹 서버에서 수행되던 로직들이 상당부분 클라이언트로 이동했고, 이는 웹 개발에서 프론트엔드 영역이 주목받는 계기로 작동.
3.4 Node.js
- 2009년 라이언달이 발표한 Node.js는 V8 엔진으로 빌드된 자바스크립트 런타임 환경이다.
- 브라우저의 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작하도록 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경이다.
- 주로 서버사이드 에플리케이션 개발이 사용.
- 비동기 I/O를 지원하며, 단일 스레드 이벤트 루프 기반으로 동작해 요청(request)처리 성능이 좋다.
- I/O가 빈번하게 동작하는 SPA에서 성능이 좋다. 하지만 CPU사용률이 높은 에플리케이션에서는 좋지 않다.
- 크로스 플랫폼을 위한 가장 중요한 언어로 주목받고 있다.
3.5 SPA 프레임워크
- 데스크톱 에플리케이션과 비교해도 손색없는 UX와 성능을 제공하는것이 필수가 되었다.
- 이러한 요구에 발맞춰 CBD(Component Bases Development)방법론을 기반으로 한 SPA가 대중화 되었다.
- 이를 지원하는 Angular, React, Vue.js, Svelte등 다양한 SPA 프레임워크/ 라이브러리가 등장했다.
4. 자바스크립트와 ECMAScript
- ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 의미한다.
- 이는 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체등의 핵심문법을 규정.
- 브라우저 제조사는 ECMAScript사양을 준수해 브라우저에 내장되는 JS엔진을 구현한다.
- 자바스크립트는 기본뼈대를 이루는 ECMAScript와, 브라우저에서 별도로 지원하는 클라이언트 사이드 Web API를 아우르는 개념이다.(DOM, BOM, Canvas, XMLHttpRequest etc..)
- 클라이언트 사이드 Web API는 ECMAScript와는 별도로 world wide web consortium(W3C)에서 별도사양으로 관리하고 있다.
5. 자바스크립트의 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어.
- 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어이다.
- 모던 브라우저에서 사용되는 인터프리터는 전통적인 컴파일러 언어처럼 명시적 컴파일 단계를 거치지는 않지만, 복잡한 과정을 거치며 일부 소스코드를 컴파일해 실행하므로서 실행속도가 느리다는 단점을 극복한다.
- 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.
'JS > [책] 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
6. 데이터 타입 (0) | 2021.08.17 |
---|---|
5. 표현식과 문 (0) | 2021.08.17 |
4. 변수 (0) | 2021.08.16 |
3. 자바스크립트 개발 환경과 실행 방법 (0) | 2021.08.16 |
1. 프로그래밍 (0) | 2021.08.16 |