프로그래밍/javascript

DOM 노드와 프로퍼티의 차이

홍티비 2025. 1. 20. 14:40
728x90
반응형
SMALL

DOM 노드(DOM Node)와 DOM 프로퍼티(Property)는 둘 다 DOM(Document Object Model)의 일부지만, 역할과 성격이 다릅니다. 다음은 이 둘의 차이점과 관계를 정리한 내용입니다.

 


1. DOM 노드 (Node)

DOM 노드는 HTML 문서를 객체 모델로 표현한 트리 구조의 구성 요소입니다. HTML 문서의 각 요소, 텍스트, 속성 등이 각각 노드로 표현됩니다.

 

주요 특징:

  • 구조적 요소: DOM 노드는 문서의 구조를 나타냅니다. 예를 들어, HTML 태그, 텍스트, 주석, 속성 등이 모두 노드로 표현됩니다.
  • 종류: 여러 유형의 노드가 있습니다.
    • Element 노드: HTML 요소를 나타냄 (예: <div>, <p>, <span> 등)
    • Text 노드: 요소 안의 텍스트를 나타냄.
    • Attribute 노드: 요소의 속성을 나타냄 (HTML5에서는 대부분 속성이 프로퍼티로 대체됨).
    • Document 노드: DOM 트리의 루트 노드.

예제:

<div id="example">Hello</div>
 

DOM 구조:

Document
 └── Element (div)
           ├── Attribute (id="example")
           └── Text ("Hello")
  • div는 Element 노드.
  • id="example"는 Attribute 노드.
  • "Hello"는 Text 노드.

 


2. DOM 프로퍼티 (Property)

DOM 프로퍼티는 노드를 JavaScript에서 다루기 위한 속성입니다. DOM 노드와 연결된 객체에서 제공되며, 노드의 데이터를 동적으로 접근하거나 수정할 수 있는 수단입니다.

 

주요 특징:

  • JavaScript 객체의 속성: 노드와 연결된 객체의 데이터와 동작을 제어합니다.
  • 동적 관리: 프로퍼티는 브라우저가 DOM을 파싱하면서 생성되며, JavaScript를 통해 읽거나 변경할 수 있습니다.
  • 종류: DOM 프로퍼티는 노드의 유형에 따라 다릅니다.
    • id, className, innerHTML, textContent, value 등은 Element 노드에서 자주 사용하는 프로퍼티.
    • Text 노드에서는 nodeValue 같은 프로퍼티를 사용.

예제:

<div id="example">Hello</div>
 
const div = document.getElementById('example'); 

// DOM 노드의 프로퍼티 접근 
console.log(div.id); // "example" (id 속성을 나타내는 프로퍼티) 
console.log(div.textContent); // "Hello" (텍스트 내용을 나타내는 프로퍼티) 

// 프로퍼티를 변경 
div.
textContent = "World!"; 
console.log(div.textContent); // "World!"
  • id와 textContent는 DOM 프로퍼티로, Element 노드의 상태를 반영하거나 변경할 수 있습니다.

 


3. 차이점 요약

구분 DOM 노드 (Node)  DOM 프로퍼티 (Property)
정의 문서의 구조적 요소 (트리의 구성 요소). 노드 객체에서 데이터를 다루기 위한 JavaScript 속성.
역할 HTML 문서를 트리 형태로 표현. 노드와 연결된 데이터를 동적으로 관리.
유형 Element, Text, Attribute, Document 등 다양한 노드 타입. id, className, innerHTML, textContent 등의 속성.
생성 시점 HTML 문서를 파싱할 때 생성. 노드 객체가 생성될 때 자동으로 제공.
변경 방법 DOM API를 통해 트리 구조 수정. JavaScript를 사용해 직접 접근하거나 수정.

 


4. DOM 노드와 프로퍼티의 관계

DOM 노드는 구조를 나타내고, DOM 프로퍼티는 그 구조를 JavaScript로 조작하기 위한 인터페이스입니다. 노드는 트리 형태로 연결되어 있고, 각 노드가 JavaScript 객체의 프로퍼티를 통해 속성과 상태를 표현합니다.

  • DOM 노드는 정적 구조를 나타냄.
  • DOM 프로퍼티는 노드와 관련된 동적 데이터를 조작할 수 있는 수단.

예제 관계:

<div id="myDiv">Hello</div>
 
const div = document.getElementById('myDiv'); 

// DOM 노드 자체 
console.log(div.nodeType); // 1 (Element 노드) 

// DOM 프로퍼티 
console.log(div.id); // "myDiv" (id 속성의 값) 
console.log(div.textContent); // "Hello" (텍스트 노드의 내용)
 

이처럼 DOM 노드와 프로퍼티는 서로 연결되어 있으면서도 각각의 역할을 합니다.

 
 

 

728x90
반응형
LIST