DOM - 개념, 특징, 종류, 스크립트 접근 방법, 중요 데이터 타입

반응형

 

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 수정
    • 즉, 문서 구조, 스타일, 내용 등 변경 가능

<HTML 문서 내의 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

TCP School - DOM의 개념

위키백과 - W3C

Mozilla - Web doc - Web API - Document

 

반응형