이번 시간(?)에는 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. 작게는 하나의 트리구조, 크게는 숲이나 수풀과 같다.(트리구조를 가진다.)


Posted by croute

댓글을 달아 주세요