반응형
DOM 이란?
- 문서 객체 모델(Document Object Model)의 약자
- HTML, XML 문서의 각 항목을 계층으로 표현하여 생성, 변형, 삭제하도록 돕는 인터페이스
- 문서 내의 모든 요소를 정의하고, 각 요소에 접근하는 방법 제공
- 동적으로 문서의 내용, 구조, 스타일에 접근하고 변경하는 수단
- 브라우저 사이에 DOM 구현 호환성을 위해 W3C에서 DOM 표준 규격 작성
- 즉, W3C의 표준화한 API들의 기반
- 표준 규약 외 기능들은 각기 다른 DOM이 적용된 브라우저에서 호환 여부가 다를 수 있음을 인지
W3C 이란?
- World Wide Web Consortium의 약자
- 월드 와이드 웹을 위한 표준을 개발하고 장려하는 중립적인 국제 조직
- 전 세계 곳곳에 위치한 다양한 분야의 기관들이 웹 표준화를 위해 참여
- 힘을 모아 기술을 설계하기 위한 목적
- W3C 표준 목록 : DOM, HTML, CSS, SVG, XML, XHTML, CGI 등등
DOM의 특징
- 문서의 구조화된 표현(structured representation) 제공
- 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법 제공
- 웹 페이지(document)를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할 담당
- 웹 페이지의 객체 지향 표현, 스크립팅 언어를 이용하여 DOM 수정
- 즉, 문서 구조, 스타일, 내용 등 변경 가능
DOM의 종류
Core DOM
- 모든 문서 타입을 위한 DOM 모델
- 모든 문서를 조작하고 접근하는 범용적인 DOM
- 모든 구성 요소에 대한 객체 모델을 제공
HTML DOM
- HTML 문서를 위한 DOM 모델
- HTML 문서를 조작하고 접근하는 표준화된 방법 정의
- 모든 HTML 요소는 HTML DOM을 통해 접근 가능
XML DOM
- XML 문서를 위한 DOM 모델
- XML 문서에 접근하여 그 문서를 다루는 표준화된 방법 정의
- 모든 XML 요소는 XML DOM을 통해 접근 가능
DOM과 스크립팅 언어
- 모든 웹 브라우저는 스크립트가 접근할 수 있는 웹페이지를 만들기 위해 어느 정도의 DOM을 항상 허용
- 때문에 브라우별 호환 여부가 다를 수 있음
- DOM
- 문서를 객체 지향으로 표현
- 스크립트
- DOM이 없으면 문서 내 요소들과 관련된 모델이나 개념들에 대한 정보를 갖지 못하며, 접근 및 조작 불가
- DOM에 접근하기 위해서는 인라인 <script> 요소 사용 혹은 문서 내 스크립트 로딩 명령 사용
- 대표적인 스크립트 언어 : 자바 스크립트
DOM의 중요한 데이터 타입
- document
- 브라우저가 불러온 웹 페이지를 의미
- 웹 페이지 전체 문서를 나타내는 객체
- HTML 페이지의 <html> 태그를 나타냄
- 페이지의 URL을 얻거나 문서에 새로운 요소를 생성하는 등의 기능을 전역적으로 제공
- 모든 종류의 문서에 대한 공통의 속성과 메서드를 묘사
- element
- DOM 안에서 생성되는 요소
- 문서의 요소를 나타내는 객체
- <html>, <body>, <div>, <p> 등 태그가 이에 해당
- element interface와 node interface를 구현한 것이며 참조에는 이 두가지가 모두 포함
- attribute
- 요소의 속성을 나타내는 객체
- 해당 요소에 대한 정보를 가짐
- 요소(elements)와 같은 노드(node)
- nodeList
- 문서의 노드들을 저장하는 유사 배열 객체
- 즉, 요소(elements)들의 배열
- 주어진 선택자 또는 요소의 자식 노드들을 반환
- nodeList의 항목(Items)은 인덱스(index)를 통해 접근 가능
- 문서의 노드들을 저장하는 유사 배열 객체
- namedNodeMap
- 요소의 속성들을 저장하는 객체
- 해당 요소의 속성을 나타내는 객체들의 컬렉션
- 항목(Items)에 대한 접근은 이름(name)과 인덱스(index)로 가능
참고
Mozilla - Web doc - Web API - DOM
Mozilla - Web doc - Web API - Document
반응형