DOM(Document Object Model)은 문서 객체 모델로, 문서를 노드와 객체의 트리 구조로 표현하고 프로그램이 읽고 바꿀 수 있게 하는 인터페이스다. 웹 브라우저는 HTML 문서를 읽어 이 구조를 만든다. HTML뿐 아니라 SVG와 XML 문서도 DOM으로 다룰 수 있다. 자바스크립트에서 자주 사용하지만 JavaScript 언어 자체의 일부는 아니다. (MDN의 DOM 설명)
- HTML 소스는 작성한 문서의 코드이고, DOM은 브라우저가 해석해 만든 구조다. 요소와 텍스트 등을 노드로 다루며, 실행 중의 변경에 따라 소스와 다른 상태가 될 수 있다.
document.querySelector()로 요소를 찾고,element.innerHTML로 그 안의 내용을 바꾸거나addEventListener()로 사건에 반응할 수 있다. 이렇게 문서를 프로그래밍으로 다루어 웹 페이지를 동적으로 바꾼다.- Virtual DOM은 실제 DOM과 구분해 살펴볼 개념이다. React 같은 라이브러리는 새 렌더링 결과에 맞춰 필요한 변경을 DOM에 반영한다. 그 과정을 이해하는 것과 모든 작업에서 더 빠르다고 판단하는 것은 별개다. (React의 렌더링과 반영 과정)