study: javascript | 숨참고 deep dive (2) 자바스크립트 - 221119

Lumpen·2022년 11월 18일
0

Study

목록 보기
5/92

1. 자바스크립트의 탄생

웹페이지 보조 기능 수행을 위해 브랜던 아이크가 개발한
브라우저에서 동작하는 경량 프로그래밍 언어
모카 - 라이브스크립트 - 자바스크립트 라는 이름으로 변경

현재 모든 브라우저의 표준 프로그래밍 언어로 자리잡았다

2. 자바스크립트 표준화

브라우저에 따라 제대로 동작하지 않는 크로스 브라우징 이슈가 발생하면서
모든 브라우저에 표준화된 자바스크립트의 필요성이 대두되었다

1997년 표준화된 자바스크립트 초판이 ECMAScript (ES1)로 명명되었다
이후 1999년 ECMAScript3 (ES3) 이 ISO/IEC 16262 국제 표준 규격을 적용하여 공개되고
2009년 ECMAScript5 (ES5) 가 HTML5 와 함께 표준 사양으로 공개되었다
2015년엔 ECMAScript2015 (ES6) 는 let/const, 화살표 함수, 클래스 등 범용 프로그래밍 언어로 갖춰야 할 기능을 대거 도입했다

3. 자바스크립트 성장의 역사

초창기 자바스크립트는 웹페이지의 보조 기능을 수행하는 한정적 용도로 사용되었다

3-1. Ajax

1999년 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능인 Ajax가 XMLHttpRequest 라는 이름으로 등장했다
Ajax의 등장으로 웹페이지에서 변경할 필요가 없는 부분을 다시 렌더링 하지 않고, 서버에서 필요한 데이터만 전송 받아 한정적인 렌더링을 할 수 있게 되었다
웹 브라우저도 빠른 성능과 부드러운 화면 전환을 갖게 되었다

2005년 구글은 구글 맵스를 발표하여 Ajax 기반으로 동작하는 자바스크립트 프로그램이
데스크톱 애플리케이션과 비교해도 손색 없을 성능을 가질 수 있다는 것을 증명하였다

3-2 JQuery

JQuery의 등장으로 번거롭고 논란이 있던 DOM을 더욱 쉽게 제어할 수 있었고
크로스 브라우징 문제도 일정부분 해소하여 주었다

3-3 구글 V8 자바스크립트 엔진

2008년 등장하여 프론트엔드 영역의 개발이 주목받는 계기가 되었다
빠른 성능을 통해 데스크톱 애플리케이션과 유사한 UX를 웹도 제공할 수 있게 되었다

3-4 Node.js

2009년 라이언 달이 발표한 node.js 는 V8 자바스크립트 엔진으로 빌드된
자바스크립트 런타임 환경이다

node.js는 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를
브라우저 이외의 환경에서 동작할 수 있도록 만들어진 실행 환경이다
주로 서버 사이드 개발에 사용된다

프론트엔드와 백엔드 모두에서 사용할 수 있는 동형성을 가지게 되었다는 것은 큰 장점이다

비동기 I/O 를 지원하고 단일 스레드 이벤트 루프 기반으로 동작한다

이제 자바스크립트는 크로스 플랫폼을 위한 가장 중요한 언어로 주목받 고 있고
웹, 모바일 하이브리드 앱, 서버 사이드, 데크스톱 앱,
머신러닝, 로보틱스 환경을 구축할 수 있다

3-5 SPA 프레임워크

모던 웹 애플리케이션은 개발 규모와 복잡도가 상승하였다
이는 필연적으로 프레임워크를 등장하게 하였다
CDB 방법론을 기반으로 하는 SPA가 대중화 되었고
대표적인 프레임워크/라이브러리는 Angular, React, Vue.js, Svelte 등이 있다

4. 자바스크립트와 ECMAScript

자바스크립트는 일반적으로 ECMAScript를 포괄하는 개념
ECMAScript 는 자바스크립트의 표준 사양인 ECMA-262 를 말하며,
언어의 값, 타입, 객체, 함수, 표준 빌트인 객체 등의 핵심 문법을 규정한다

자바스크립트는 클라이언트 사이드 Web API, DOM, BOM, Canvas, XMLHttpRequest, fetch 등을 아우르는 개념이다

5. 자바스크립트의 특징

HTML/CSS 와 함께 웹을 구성하는 요소 중 하나로
웹 브라우저에서 동작하는 유일한 프로그래밍 언어다

기본 문법은 C, Java 와 유사하고
셀프에서는 프로토타입 기반 상속, 스킴에서는 일급 함수의 개념을 차용했다

개발자가 별도의 컴파일 과정을 거치지 않는 인터프리터 언어로
대부분 모던 자바스크립트 엔진은 컴파일러와 인터프리터의 장점을 결합하여
인터프리터 언어의 단점인 속도 문제를 어느정도 해결했다 (한 번 실행된 코드는 머신 코드로 컴파일)

명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 모두 지원하는
멀티 패러다임 프로그래밍 언어다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글