JavaScript란?
자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용되며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다.
자바스크립트 등장배경
자바스크립트의 등장은 넷스케이프사의 Marc Andreessen의 고민에서 부터 시작되었다. 때는 1993년, Marc Andreessen이라는 한 청년은 대학을 졸업함과 동시에 Netscape라는 기업을 설립한다. 이후 Marc Andreessen은 Netscape Navigator라는 웹 브라우저를 만들어 출시하고 당시 브라우저 시장의 약 80%를 점유하게된다. 그렇게 브라우저 시장을 점유한 그는 어느날 큰 고민에 빠졌다. 당시 Netscape Navigator로 동작하는 웹 사이트들은 하이퍼텍스트에 링크를 걸어 페이지와 페이지간의 간단한 이동만 가능한 정적인 사이트들 뿐이었다. 그래서 Marc Andreessen은 Netscape Navigator에서 동적인 웹 페이지가 구현되길 원했고, 그의 고민끝에 나온 결론은 스크립팅 언어를 추가하는 것이었다. 그는 스크립팅 언어를 만들기 위해 Brendan Eich를 스카웃하여 1994년, scheme스크립트를 변형하여 만든 프로토타입 기반의 유연한 언어인 Mocha를 개발하게 된다. 추후 Mocha는 LiveScript로 명칭이 바뀌게 되고 Netscape Navigator내에는 LiveScript를 이해하고 실행할 수 있는 LiveScript엔진 즉, 인터프리터가 내장되게 된다. 이후 Marc Andreessen은 LiveScript가 어떻게 하면 큰 인기를 끌 수 있을까 고민하였고, 당시 큰 인기를 누리고 있던 자바의 명칭을 활용해야겠다고 생각한 그는 LiveScript를 JavaScript로 이름을 바꾸게 된다. 그렇게 해서 넷스케이프사는 자바스크립트를 1995년에 공식적으로 출시하게 된다.
ECMAScript
ECMAScript란 간단히 말해 자바스크립트의 표준이라고 할 수 있다. ECMAScript의 탄생은 마이크로소프트의 움직임으로부터 시작되었는데, 그 배경은 다음과 같다.
자바스크립트가 공식적으로 출시한 이래 브라우저의 무한한 잠재성을 확인한 마이크로소프트사는 넷스케이프의 브라우저를 Reverse engineering하여 약간의 소스만 변경하여 JScript라는 스크립트언어를 Internet Explorer브라우저와 함께 시장에 내놓았다. (참고 : Reverse engineering이란 만들어진 프로그램의 바이너리 코드를 분석해서 소스코드를 복원해내는 과정이다.) 이후 넷스케이프사의 브라우저와 마이크로소프트사의 브라우저가 브라우저시장에서 경쟁하면서 웹개발자들은 너무나도 다른 두 브라우저사이에서 고통을 받으며 개발해야했고 사용자들 또한 보다나은 페이지를 제공받기 위해 두 브라우저를 혼용해야했다. 이러한 문제가 지속되자 더이상 참지 못한 넷스케이프사는 ECMA International이라는 단체에 찾아가 JavaScript를 표준안으로 만들어보자고 제안했다. 그렇게 하여 1997년 JavaScript는 ECMAScript1이라는 표준안으로 재탄생하게된다. 엄격히 말하면 ECMAScript는 자바스크립트의 함수, 변수등을 어떠한 규칙으로 만들자라고 표준화해놓은 문서라고 할 수 있으며, ECMAScript1이 등장한 이래로 현재는 ECMAScript11까지 출시되어있다.
JavaScript와 ECMAScript의 개념을 헷갈려하시는 독자분들을 위해 간단히 정리해서 설명하자면 우리 개발자들이 흔히 말하는 JavaScript는 언어이며 이러한 JavaScript언어 안에 ECMAScript와 DOM, BOM개념이 내장되어 있다고 생각하면 된다.
ECMAScript 5와 6
ECMAScript는 자바스크립트를 사용하는데 있어 중요한 개념이기에 추가적으로 내용을 다루어본다.
ECMAScript는 4버전까지 출시한 이후 IE는 브라우저시장의 약 90%정도를 점유하면서 표준안인 ECMAScript에 대해 반항을 하기 시작하고 때문에 ECMAScript의 발전은 주춤하게 된다. 이후 구글사의 크롬과 JIT(자바스크립트를 빠르게 해석하고 이해하는 프로그램)이라는 강력한 소프트웨어와 함께 등장함에 따라 각 브라우저사들은 함께 모여 논의를 하게 되고 2009년, ECMAScript 5가 정식 출범하게 된다. 이후 2015년 ECMAScript 6가 출시하며, 현재 ECMA 11까지 출시된 상황이다. 여기서 중요한 것은 ECMA 5와 6인데 자바스크립트에서 가장 큰변화를 가져온것은 5에서 6으로 바뀌었을 때다. ECMA 6 이후 11까지는 거의 변화가 없다고 보면되고, 우리 개발자들은 자바스크립트 사용시 ECMA 5인지, 아니면 그 이상의 6~11인지 알고 사용하여야 한다.
JavaScript 특징
- 자바스크립트는 조각난 소스 코드 형태로 HTML페이지에 내장된다.
- 자바스크립트 소스 코드는 컴파일 과정 없이 브라우저 내부의 자바스크립트 처리기(인터프리터)에 의해 바로 실행된다.
- 자바스크립트는 C언어 구조를 차용하고 단순화시켜 쉽게 배울 수 있다.
웹페이지에서 JavaScript의 역할
- 사용자의 입력 및 계산
HTML은 입력 창만 제공할 뿐, 입력을 받고 계산하는 기능은 수행할 수 없다. 키보드나 마우스의 입력과 계산은 오직 자바스크립트로만 처리 가능하다. - 웹페이지 내용 및 모양의 동적 제어
자바스크립트로 HTML태그의 속성이나 콘텐츠, CSS 속성값을 변경하여 웹 페이지에 동적인 변화를 일으키는데 활용된다. - 브라우저 제어
브라우저 윈도우의 크기나 모양 변경, 새로운 윈도우창이나 탭 열기, 다른 웹 사이트 접속, 브라우저의 히스토리 제어 등 브라우저의 작동을 제어하는데 활용된다. - 웹 서버와의 통신
웹페이지가 웹서버와 데이터를 주고받을 때 활용된다. - 웹 애플리케이션 작성
HTML5는 캔버스, 로컬 및 세션 스토리지, 위치 정보서비스 등 자바스크립트로 활용할 수 있는 많은 기능(API)을 제공하므로 웹 브라우저에서 실행되는 다양한 웹 애플리케이션을 개발할 수 있다.