검색
색인
문서 객체 모델, 文書客體-, Document Object Model, DOM

프로그램이나 스크립트가 웹 페이지 내의 구성 요소들에 접근하여 내용이나 스타일 등을 변경할 수 있게 해 주는 인터페이스.
특정 플랫폼이나 언어에 종속되지 않는다.

브라우저에서 HTML, XML 등의 웹 페이지가 로딩되면 문서 객체 모델(DOM)은 브라우저 내에 트리(tree) 형태로 문서 내 요소들을 구성한다. 이렇게 생성된 트리 구조의 각 요소들을 ‘노드(node)’라고 한다. HTML, CSS 등으로 구성된 웹 페이지의 DOM이 형성되면 개발자들은 자바스크립트(JavaScript), 파이선(python) 등 언어로 해당 트리 구조 내의 노드에 접근하여 노드의 속성 값을 변경하거나 추가, 삭제 등을 실행할 수 있다.
브라우저상에서는 사용자의 버튼 클릭과 같은 이벤트를 통해 DOM 트리 내의 특정 노드 속성이 변경된다. 예를 들어, 아래와 같이 텍스트 노드와 버튼 노드를 DOM에 형성하였을 경우, 버튼 클릭의 이벤트가 발생하면 change_name 함수가 실행되고 change_name 함수는 id가 name인 노드에 접근하여 ‘홍길동’이라는 이름을 원하는 다른 이름으로 바꿀 수 있다.

< div id="name" > 홍길동 < /div >
< button id="change_name" onclick="change_name()" >

DOM 표준은 1998년 W3C에서 처음 제정되었다. 최신 버전인 DOM 4는 2015년 11월 제정되었다.