브렌던 아이크(Brendan Eich) : 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어, 즉 자바스크립트를 개발
자바스크립트의 표준화
배경
- 자바스크립트의 파생 버전인 JScript 등장
- 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈 발생
- 자바스크립트의 파편화 방지, 모든 브라우저에서 정상적으로 동작하는 표준화된 자바스크립트의 필요성 대두
ECMAScript
- 1997년 표준화된 자바스크립트 초판 사양 완성
- 상표권 문제로 ECMAScript로 명명
- 2015년 이후 매년 새로운 버전을 배포 중 (이전 버전의 문제해결 및 간결한 문법 추가)
자바스크립트의 성장
Ajax
자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
등장 배경
- 이전의 웹페이지는 HTML 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링하는 방식으로 동작
- 화면이 전환되면 서버로부터 새로운 HTML을 전송받아 처음부터 다시 웹페이지 전체를 렌더링
- 불필요한 데이터 통신 발생, 렌더링 성능 이슈 발생
Ajax의 등장으로 서버로부터 필요한 데이터만 전송받아 변경해야하는 부분만 한정적으로 렌더링하는 방식이 가능해졌다.
이로써 웹 브라우저에서도 데스크탑 애플리케이션과 유사한 빠른 성능과 부드러운 화면 전환이 가능해졌다.
jQuery
- DOM을 더욱 쉽게 제어 가능
- 크로스 브라우징 이슈도 어느정도 해결 가능
V8 자바스크립트 엔진
- 자바스크립트로 데스크탑 애플리케이션과 유사한 사용자 경험(UX) 제공이 가능해짐
- 과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동
Node.js
V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
- 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있게 함
- 주로 서버 사이드 애플리케이션 개발에 사용
자바스크립트의 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 기본 문법은 C, JAVA와 유사
- 프로토타입 기반 상속
- 함수를 일급 객체로 취급 (일급 함수 개념)
- 인터프리터 언어 (개발자가 별도의 컴파일 작업을 수행하지X)
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.
상속, 정보 은닉에 대한 키워드가 없어서 객체지향 언어가 아니라고 오해받는 경우가 있으나, 자바스크립트는 클래스 기반 객체지향 언어보다 효율적이고 강력한 프로토타입 기반의 객체지향 언어다.