[read] 모자딥 - 02장. 자바스크립트란?
2.1 자바스크립트의 탄생
- 1995년, 넷스케이프 커뮤니케이션즈의 웹페이지 보조 기능 수행을 위한 경량 프로그래밍 언어 개발 = 브렌던 아이크가 개발한 자바스크립트
- 1996년 3월, 넷스케이프 네비게이터에 탑재, 당시의 이름 모카
이후 9월 라이브스크립트로 이름 변경 후 12월에 자바스크립트로 최종 명명
- 탄생 뒤 얼마 지나지 않아 파생버전인 JScript 출시되어 위기를 맞음
2.2 자바스크립트의 표준화
- 1996년 8월, 마이크로소프트가 JScript를 인터넷 익스플로러 3.0에 탑재
- JScript와 JS는 표준화 되지 못하고 자사 브라우저에만 적당히 호환됨. 이에 따라 자사 브라우저의 시장 점유율을 높이기 위해 베타적인 기능을 경쟁적으로 추가. 이에 따른 크로스 브라우징 이슈 발생
- 자바스크립트의 파편화 방지를 위해 ECMA에 자바스크립트 표준화 요청. 이후 1997년 7월, ECMA-262라 불리는 표준화된 자바스크립트 초판 완성. ECMAScript로 명명됨.
2.3 자바스크립트 성장의 역사
- 초창기는 웹서버의 SSR로 실행. JS는 보조적 기능 수행을 위한 한정적인 역할.
2.3.1 Ajax (Asynchronous JavaScript and XML)
- 서버 & 브라우저 비동기 방식 데이터 교환 통신기능 = XMLHttpRequest
- 기존의 변경할 필요가 없는 부분까지 포함된 HTML을 서버에서 받아서 렌더링 하는 방식에서 Ajax를 활용하여 서버에서 필요한 부분만 한정적으로 렌더링하는 방식으로 전환. 이로 인해 웹브라우저에서도 데스크톱 애플리케이션과 유사한 빠른 성능과 부드러운 화면 전환이 가능해짐.
2.3.2 JQuery
- DOM의 쉬운 제어 가능, 크로스 브라우징 이슈 어느정도 해결.
2.3.3 V8 자바스크립트 엔진
- 빠른 성능 탑재.
- 데스크톱 애플리케이션과 유사한 사용자 경험을 제공할 수 있게 됨.
2.3.4 Node.js
- 2009년, 라이언 딜이 발표한 자바스크립트 런타임 환경
- 브라우저에서만 동작 가능하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 만들어줌. 이로 인해 프론트엔드와 백엔드에서 모두 자바스크립트를 사용할 수 있는 이점이 생김.
- 비동기를 지원하고 단일 스레드 이벤트 루프 기반으로 동작하여 요청 처리 성능이 좋음. SPA에 적합함.
- 노드의 등장으로 js는 서버 사이드 애플리케이션 개발에도 사용할 수 있는 범용 프로그래밍 언어가 됨. 이러한 이점으로 인해 크로스 플랫폼을 위한 가장 중요한 언어로 주목받게 됨.
2.3.5 SPA 프레임워크
- 웹 애플리케이션의 발달로 인한 개발 규모와 복잡도 상승 -> 프레임워크 등장
- ex) Angular, React, Vue.js, Svelte등 다양한 SPA 프레임워크 등장
2.4 자바스크립트와 ECMAScript
- ECMAScript -> js 표준 사양인 ECMA-262
- 자바스크립트는 일반적으로 ECMAScript + 클라이언트 사이드 Web API
2.5 자바스크립트의 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 인터프리터 언어 - 모던 자바스크립트 엔진들은 인터프리터와 컴파일러의 장점을 결합해 코드를 빠르게 실행 가능하게 만듦
- 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어
2.6 ES6 브라우저 지원 현황
- 인터넷 익스플로러를 제외한 대부분의 모던 브라우저는 지원.
- ES6를 지원하지 않는 구형 브라우저를 사용 할 떄는 바벨과 같은 트랜스파일러를 사용해 다운그레이드 하여서 사용