자바스크립트 등장배경

자바스크립트의 1995년 처음 등장 시, 주요 목적은 펄 같은 서버언어에서 담당하던 유효성 검사였습니다.
당시는 모뎀의 느린 속도 때문에 서버까지 왕복하는 시간이 오래 걸렸었습니다.
그래서 나온 자바스크립트로 인하여 서버로 왕복할 필요없이 유효성검사 등을 클라이언트에서 처리가 가능하게 되었습니다.
그 후로 점차 발전하여 웹 브라우저 모두에서 중요한 기능으로 자리 잡았으며, 데이터 유효성 검사에 국한되지 않고 브라우저창과 콘텐츠 거의 모든부분과 상호작용 하고 있어 현재 강력한 프로그래밍 언어로 성장하였습니다.

간추린 역사

당시 인터넷 속도가 느려 유효성 검사를 클라이언트에서 하기 위하여 출현했습니다.
넷스케이프에서 일하던 브랜든 아이흐(Breadan Eich)가 처음엔 Mocha, 나중에 LiveScript라고 불린 스크립트 언어를 개발했습니다.
출시 직전 당시 자바의 인기에 편승하기 위해서 자바스크립트로 이름을 변경하여 출시 합니다.
마이크로소프트에서도 이에 질세라 독자적으로 JScript라는 자바스크립트를 구현하였습니다
하지만 이때는 둘다 표준이 존재하지 않아 각기 다른 버전은 혼란을 가중시킬 뿐이었습니다.
ECMA(유럽 컴퓨터 제작자 협회, European Computer Manufacturers Association)에서 기술위원회를 발족하여 “문법과 의미를 표준화하여 일반적인 목적에 쓸 수 있고 플랫폼을 가리지 않으며 제조사에 중립인 스크립트 언어”를 만들기로 했습니다.
넷스케이프, 마이크로소프트, 선, 볼랜드, NOMBAS 등 이 스크립트의 미래에 흥미를 가진 회사들의 프로그래머들이 모여 TC39을 조직합니다.
그렇게 나온 표준이 ECMAScript(에크마 스크립트, ECMA-262)라는 이름의 스크립트 언어를 정의합니다.
이는 국제 표준화기구에서 표준으로 받아들여지며 이때부터 브라우저 제작자들은 ECMAScript를 자사 자바스크립트 구현의 기반으로 삼았습니다.

구현

자바스크립트의 구현은 아래 3가지로 나뉩니다.

  • 코어 (ECMAScript)
  • 문서 객체 모델 (DOM)
  • 브라우저 객체 모델 (BOM)

코어 (ECMAScript)

ECMAScript언어는 입력이나 출력을 담당하는 메서드가 존재하지 않습니다.
ECMA-262는 다음과 같이 언어의 저수준에 해당하는 부분을 정의합니다.

- 문법
- 타입
- 선언문
- 키워드
- 예약어
- 연산자
- 객체

ECMAScript는 단순히 명세에서 설명하는 부분들을 구현한 언어를 부르는 말 뿐입니다.
자바스크립트는 ECMAScript를 구현한 것 이며 어도비 액션스크립트도 마찬가지입니다.

웹브라우저의 ECMAScript 지원

ECMA-262는 여러가지 버전이 존재합니다 이 버전을 ‘판’이라고 부릅니다.
예를들면 3판은 표준에 대한 첫번째 업데이트이며, 4판은 여러 사정으로 폐기되고 5판은 현재 주로 사용하고 있는 판입니다. 이렇게 여러 버전이 나뉩니다.
ECMA-262가 완성되기 전에 나온 스크립트 등에서는 구현이 표준과 다른 부분이 존재합니다.
그렇게 때문에 브라우저 별로 지원하는 판이 다르며 특정 판으로 구현했다 하더라도 불완전하게 구현하는 등의 문제가 있습니다.

2008년부터 주요 웹 브라우저는 모두 ECMA-262 3판을 준수 했습니다. IE8은 최로로 5판을 준수한 브라우저 이며 IE9는 5판을 완전히 지원합니다.

문서 객체 모델 (DOM)

DOM(Document Object Model)은 XML을 HTML에서 사용할 수 있도록 확장한 API입니다.
DOM은 전체 페이지를 노드의 계층구조로 변환합니다.
노드를 이용해 웹페이지 콘텐츠를 조작하는 메서드와 인터페이스를 제공합니다.

이후 포스트에서 DOM을 주제로 자세히 알아볼 예정입니다.

브라우저 객체 모델 (BOM)

브라우저 창에 접근해서 제어할 수 있는 메서드와 인터페이스를 제공합니다.

- 브라우저 창을 새로띄움
- 창의 크기 조절, 창 닫음
- 브라우저 상세정보 반환
- 사용자 화면 해상도 상세 정보 반환
- 쿠키 지원
- XMLHttpRequest와 인ㄴ터넷 익스플로러의 ActiveXObject 같은 커스텀 객체

오랫동안 BOM표준이 존재하지 않았으나 HTML5가 등장하면서 BOM구현을 상세히 명세화 하고 있는 추세입니다.
이후 포스트에서 BOM을 주제로 자세히 알아봅시다.

마치며

자바스크립트에 발생 부터 현재에 이르기까지 알아보았습니다.
코어, DOM, BOM은 이후 주제에서 상세히 다룰 예정입니다.
다음 포스트 부터는 본격적으로 HTML에서 자바스크립트가 어떻게 사용되는지 알아보겠습니다

이 포스트는 프론트엔드 개발자를 위한 자바스크립트(인사이트)에서 발췌한 내용이 포함되어 있습니다.
내용 전문이 아니기 때문에 자세하게 알고싶으신 분은 프론트엔드 개발자를 위한 자바스크립트(인사이트) 서적을 참고 하시길 바랍니다.