Web Server/HTML5 & Web
[DOM] What is Document Object Model?
croute
2011. 5. 18. 11:59
이번 시간(?)에는 DOM에 대해서 공부해 보았습니다.
W3C홈페이지에는 DOM에 대해서 이렇게 소개합니다.
http://www.w3.org/TR/WD-DOM/introduction.html
DOM(Document Object Model)은 HTML과 XML document들을 위한 프로그래밍 API입니다.
document의 논리적인 구조를 정의하고, document에 접근하고 다루는 방법을 정의합니다.
DOM의 사양에 따르면 "document"라는 용어는 더 넓은 의미로 사용되고 있습니다.
좀 더 나아가서 XML에서 보면 다른 종류의, 다양한 시스템에서 저장되는, 예전보다 훨씬 더 많은 정보들을 다룹니다.
document의 의미가 점점 더 광범위하게 되어가는 것을 말하는 것이겠죠.
어쨋든 DOM은 이런 데이터들을 관리하기 위해서 사용하는 것입니다. |
Document Object Model은 documents를 위한 프로그래밍 API입니다.
이 object model 자체가 document의 구조와 밀접하게 닮아 있습니다.
예를 들면, HTML document에서의 table 코드에서 생각해 봅시
이런 테이블은 Document Object Model에서 아래와 같은 그림으로 나타낼 수 있습니다.

Document Object Model에서,
documents는 마치 나무(tree)와 같은 논리적인 구조를 가지고 있습니다.
더 정확하게 말하자면, 하나보다는 더 많은 나무를 포함할 수 있는 숲이나 수풀같은 느낌입니다.
|
2000년 3월 24일에 수정된 텀즈에는 이렇게 나와 있습니다.
DOM (Document Object Model)
W3C에 의해 개발되고 있는 프로그래밍 인터페이스 규격인 DOM은, 프로그래머가 HTML 페이지나 XML 문서들을 프로그램 객체로 만들거나 수정할 수 있도록 해준다. 현재로서, HTML과 XML은 그저 데이터 구조의 형태로 문서를 표현하는 방법일 뿐이다. 이러한 문서들은 마치 프로그램 객체처럼, 자신들의 콘텐츠나, 객체 내에 감추어진 데이터를 가질 수 있게 됨으로써, 문서를 조작할 수 있는 콘트롤을 보장하는데 도움을 줄 수 있게 될 것이다. 문서들은 객체들과 마찬가지로, 메쏘드라고 불리는 객체지향 프로시저들을 함께 가지고 갈 수 있다. DOM은 문서 상에서 프로그래밍 콘트롤을 어떻게 제공할 것인지를 지정하기 위한, 전략적이고 개방된 노력이다. 이것은 다이내믹 HTML이라고 불리는 새로운 HTML과, 웹페이지 및 그 요소들이 브라우저 상에서 일관된 형태로 나타나게 장려하는 방법의 발명에 일부 영향을 받았다.
DOM은 두 가지 계층의 인터페이스 구현을 제공하는데, 그 하나는 XML을 지원하는 DOM Core로서 그 다음 계층의 기반이 되며, 다른 하나는 DOM HTML로서 그 모델을 HTML 문서로 확장한 것이다. 아래에 일부 요점이 정리되어 있다.
- 어떠한 HTML이나 XML 요소에 대해서도 프로그래밍을 통한 개별적인 주소지정이 가능할 것이다.
- 이 규격은 IDL을 사용하여 설명하게 될 것이므로, 언어에 독립적일 것이다.
- 그 외에도, 인터페이스는 자바 프로그래밍 언어와 ECMAScript의 형태로 기술될 것이다.
- DOM을 마이크로소프트의 COM이나 DCOM과 혼동해서는 안된다. COM과 CORBA는 객체를 정의하는데 있어 언어에 독립적인 방법이며, 자바와 같은 특정 언어가 할 수 있는 것과 똑같이 DOM 객체를 만드는데 사용될 수 있을 것이다.
|
|
DOM 규격의 진척상황은 W3C 웹사이트에서 알아볼 수 있다.
|
많은 내용들이 있지만, 간단하게 DOM(Document Object Model)에 대해서 정리해 보면,
1. DOM(Document Object Model)은 HTML, XML을 다루기 위한 프로그래밍 API이다.
2. 작게는 하나의 트리구조, 크게는 숲이나 수풀과 같다.(트리구조를 가진다.)