
브라우저의 렌더링 엔진은 HTML 문서를 파싱하여 브라우저가 이해할 수 있는 자료구조인 DOM을 생성한다. 지금부터 DOM이란 무엇인지에 대해 알아보자.
DOM은 웹 페이지를 스크립트나 프로그래밍 언어와 연결하는 문서의 프로그래밍 인터페이스이다.
또는 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조를 말한다.
HTML, SVG, XML 문서의 구조를 메모리에 표현하며, 이를 통해 문서를 논리적인 트리 구조로 모델링한다.
일반적으로 JavaScript를 통해 DOM을 조작하는 경우가 많지만, DOM 자체는 JavaScript의 핵심 언어가 아닌 독립적인 기술이다.
DOM 트리는 문서의 각 요소를 노드(Node)로 표현하며, 이를 조작할 수 있는 다양한 메서드와 속성을 제공한다.
이를 통해 문서의 구조, 스타일, 내용을 동적으로 변경할 수 있다.
DOM은 문서를 논리적인 트리 형태로 나타낸다.
트리의 각 분기는 노드로 끝나며, 노드는 객체를 포함한다.
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, DOM!</h1>
<p>This is a paragraph.</p>
</body>
</html>
Document
└── <html>
├── <head>
│ └── <title>Example</title>
└── <body>
├── <h1>Hello, DOM!</h1>
└── <p>This is a paragraph.</p>
DOM 트리는 다양한 종류의 노드로 구성된다.
<div id="example" class="test">Hello!</div>
<div>Hello!id="example", class="test"DOM은 단순히 문서를 표현하는데 그치지 않고, 노드에 이벤트 핸들러를 연결할 수 있다.
예를 들어, 사용자가 버튼을 클릭했을 때 특정 동작을 수행하도록 설정할 수 있다.
const button = document.getElementById('myButton');
button.addEventListener('click', () => {
alert('Button clicked!');
});
DOM은 다양한 인터페이스를 제공하며, 이를 통해 문서를 조작하거나 정보를 가져올 수 있다.
HTML 문서를 다루기 위해 DOM에 추가된 기능으로, HTML 요소를 더 쉽게 조작할 수 있도록 인터페이스를 확장한다.
SVG 문서는 DOM에서 HTML과 유사한 방식으로 모델링되지만, SVG에 특화된 추가 기능을 가진다.
DOM은 웹페이지를 동적으로 조작할 수 있는 핵심 도구로, 다음과 같은 작업에 사용된다.