웹과 DOM
웹(Web)
- 인터넷에 연결된 사용자들이 서로 정보를 공유할 수 있는 공간을 의미한다.
- HTML로 작성된 하나의 문서를
웹 페이지
라고 하고, 이 웹 페이지들이 모여 있는 집합을웹 사이트
라고 부른다. - 웹 사이트는 특정한
주소(URL)
로 접근할 수 있으며, 흔히 말하는 홈페이지에 해당한다.
DOM(Document Object Model)
less
// HTML
<!DOCTYPE html>
<html>
<body>
<div>
<h1>Hello</h1>
</div>
<div>
<p>World</p>
</div>
</body>
</html>
// 브라우저 내부의 DOM 트리 구조
Document
└── html
└── body
├── div
│ └── h1 ("Hello")
└── div
└── p("World")
- DOM은
문서 객체 모델
로, HTML 문서를 브라우저가객체 형태로 구조화한 모델
이다. - 웹 브라우저는 HTML 문서를 로드한 뒤, 각 요소를 자바스크립트가 접근하고 조작할 수 있도록 객체 기반의
트리 구조(DOM Tree)
로 변환한다. - DOM은 트리 구조로 이루어져 있으며, 각 HTML 요소는
노드 Node
라고 부른다. - 이 노드들은 자바스크립트
객체
로 표현되며, 자바스크립트는DOM API
를 통해 이 객체들을 제어할 수 있다.
DOM 노드의 종류
less
Document
└── html
└── body
├── div
│ └── h1 ("Hello")
└── div
└── p("World")
문서 노드(Document Node)
: document요소 노드(Element Node)
: html, body, div, h1, p텍스트 노드(Text Node)
: 요소 안의 실제 텍스트 내용, 요소 노드의 자식으로 존재속성 노드(Attribute Node)
: class, id, src 등 속성, 요소 노드에 연결된 정보, (DOM 트리에는 일반적으로 표시되지 않음)
주석 노드 (Comment Node)
: 형식의 주석, 브라우저에 표시되지는 않지만 DOM에는 존재한다.