웹 페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 (정적인 HTML 을 동적으로 표현하기 위해) 경량 프로그래밍 언어로 브레던 아이크가 개발했다
개발의 목적
어플리케이션 개발 목적이 아니라 브레던 아이크는 자바스크립트라는 스크립트 언어가 비개발자들이 쓸 것이라는 것을 초점을 맞춰서 만들었다 그래서 관대하고 에러를 발생시키지 않는 코드를 생성했다
표준화
이에 모든 브라우저에서 동일하게 동작하는 표준화된 자바스크립트에대한 필용성으로 넷스케이프에서 ECMA ( 컴퓨터 시스템 표준을 관리하는 단체) 에 표준화를 요청하였다
이후 자바스크립트는 ECMAScripts 로 명명되어서 표준안 공개 , HTML5와 함께 ECMAScripts(ES5)표준안이 나오게 되었다.
렌더링이란?
HTML, CSS , 자바스크립트로 작성된 문서를 브라우저에서 시각적으로 출력하는 것 서버에서 테이터를 HTML로 변환해서 브라우저에게 전달하는 과정(SSR) 을 가리키기도함
1)Ajax
구글 맵스를 발표하며 브라우저가 어플리케이션의 기능을 동작할 수 있는 기능을 크롬에서 동작하도록 구성했고 이는 웹 페이지에서 변경할 필요가 없는 부분은 다시 렌더링 하지 않고 서버로부터 필요한 데이터만 전송 받아 변경해야하는 부분만 한정적으로 렌더링 하는 방식이 가능해졌다
(하지만 구글에서 자신들의 브라우저인 크롬에서만 잘 동작할 수 있도록 구현하면서 크로스 브라우징의 문제가 발생했다)
2)Jquery
jquery 등장으로 dom을 쉽게 제어할 수 있고 , 크로스 브라우징의 이슈도 해결이 되었다 직관적이고 배우기 쉽다
3)V8 자바스크립트 엔진
구글 맵스를 통해 자바스크립트는 웹 어플리케이션 엔진의 가능성이 확인되어 자바스크립트 코드를 해석하고 실행하는 엔진의 필요성이 대두되었다 구글의 v8은 이러한 요구에 부합하는엔진을 만든 것
4)Node.js
브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립를 브라우저 이외의 환경에서도 동작할 수 있도록 독립시킨 실행 환경이다 (자바스크립트가 더욱 성장하게된 계기)
인터프리터란? (p.14쪽을 참고하자)
원시 코드를 기계어로 바꾸는 컴파일러와 다르게 바로 프로그래밍 소스 코드를 실행해 버리는 프로그램 또는 환경을 말한다
실행파일을 생성하지 않고, 한줄씩 가상머신에서 실행하도록 변환하고 실행
인터프리터 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느리다