행복아울렛

Document Object Model - DOM 본문

Web2.0

Document Object Model - DOM

붕탱구 2008. 1. 6. 04:52
DOM이란 간단히 말해서 문서 내에 있는 내용을 뽑아내서 개념화 하는 방법!

W3C의 DOM에 대한 설명
문서 객체 모델(DOM: Document Object Model)은 플랫폼과 언어에 중립적인 인터페이스로, 프로그램과 스크립트를 사용해서 동적으로 접근할 수 있도록 하며, 문서의 내용, 구조, 스타일을 변경할 수 있다. 그리고 기존 문서에 추가적인 작업을 할 수 있으며, 처리 결과를 현재 페이지에 나타낼 수 있다.

DOM의 첫 번째 릴리즈는 DOM Level 1로, 1998년에 권고안이 발표. 이 릴리즈는 DOM에 대한 Infrastructure(DOM 향후 버전에서 기본 기능으로 사용할 수 있는 스키마와 API)를 정의하는데 도움이 되었다.

DOM Level 2는 2000년에 발표되었으며, Level1 릴리즈를 확장한 것으로, Level1과의 일관성을 유지하도록 설계되었다. Level 2에서는 CSS(Cascading Style Sheet)를 추가하였으며, 문서 엘리먼트에 대한 접근성을 향상시켰다. 또한 XML 권고안의 네임스페이스(namespace)지원도 추가하였다.

DOM Level 3는 2004년에 발표되었으며 대부분의 주요 브라우저에서도 Level3를 거의 지원하지 않고 있다. Level 3은 앞서 발표된 릴리즈를 확장하고 개선한 것으로, XML에 대한 지원을 늘렸을 뿐만 아니라, 웹 서비스 지원 확장을 위한 모듈도 추가하였다.

DOM Core API
DOM Core는 언어와 모델에 독립적인 API이다. 다시 말하면 자바스크립트뿐만 아니라 다른 언어를 사용해서도 구현할 수 있으며, XHTML뿐만 아니라 다른 XML기반 모델에도 사용할 수 있다.

DOM HTML API
DOM 스펙이 릴리즈되기 전에 브라우저 회사별로 다양한 형태의 브라우저 객체 모델(BOM)을 구현해 놓았는데, W3C는 이미 구현되어 있는 BOM과 호환되도록 DOM API의 일부분으로서 DOM HTML API를 만들었다.

Core API는 유효한 XML(XHTML포함)에서만 동작한다. 반면에 HTML API는 유효한 XHTML과 HTML에서 동작한다. HTML API는 HTML객체로 구성되며, 각 객체는 유효한 HTML 엘리먼트 태그와 연결되어 있다. 그리고 이들은 각각 프로퍼티와 메소드를 가지고 있다. 두 모델은 서로 구분되어지지만, 중복되는 부분이 있다. 즉 두 모델 모두의 메소드와 프로퍼티에 속하는 HTML API객체가 있다. HTML API 객체는 Core Node 객체와 기본 HTML 엘리먼트의 프로퍼티와 메소드도 상속 받는다.

BOM(Browser Object Model)
BOM은 대부분의 자바스크립트 프로그램이 동작하는 브라우저 컨텍스트에서 상속된 객체 집합이다. BOM을 'DOM Level 0'라고 부르기도 하고 DOM이라고 불리는 경우도 있다. BOM은 넷스케이프 네비게이터와 마이크로소프트의 IE 초창기 버전브터 자바스크립트에서 접근 및 사용이 가능했던 기본 웹 객체들의 집합이다.
BOM은 게층 구조로 되어 있으며 상위 객체를 통해서 하위 객체에 접근할 수 있다. 따라서 최상위 엘리먼트인 window를 통해서 BOM의 모든 엘리먼트에 접근할 수 있다. window 객체의 하위 레벨에는 사용 빈도가 매우 높은 document 객체가 있다.
Comments