React

DOM

Lulung 2024. 12. 19. 10:03

DOM(Document Object Model)은 웹 페이지의 구조와 내용을 표현하는 인터페이스로, HTML이나 XML 문서의 요소들을 객체로 다룰 수 있도록 해주는 프로그래밍 인터페이스다. 즉, 웹 페이지를 구성하는 각 요소들을 JavaScript와 같은 프로그래밍 언어에서 쉽게 접근하고 조작할 수 있게 해준다.

 

DOM의 핵심 개념

1. 문서 객체 모델 

  • HTML문서의 구조를 트리 형태로 모델링한다. 트리 구조는 부모-자식 관계로 연결된 계층적 구조다.
  • 각 HTML 요소는 DOM에서 객체로 표현된다.
  • 각 객체는 속성(attribute), 자식 노드(child node), 이벤트 등을 가질 수 있다.

2. JS와 DOM

  • DOM은 JS로 제어할 수 있다. HTML 요소를 선택하고, 수정, 삭제, 이벤트 추가 등의 작업이 가능하다.
  • 이를 통해 동적으로 웹 페이지를 변경할 수 있다.

예시

HTML문서

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>DOM Example</title>
  </head>
  <body>
    <h1>Welcome to the DOM</h1>
    <p id="paragraph">This is a paragraph.</p>
    <button id="changeTextBtn">Change Text</button>
  </body>
</html>

JS에서 DOM 사용

// DOM에서 id가 'changeTextBtn'인 버튼을 선택
const button = document.getElementById('changeTextBtn');

// 버튼 클릭 시 실행될 함수
button.addEventListener('click', function() {
  // DOM에서 id가 'paragraph'인 요소의 텍스트를 변경
  const paragraph = document.getElementById('paragraph');
  paragraph.textContent = 'The paragraph text has been changed!';
});

이 처럼 HTML을 수정하고 CSS을 변경하거나 새로운 요소를 추가하고 삭제할 수도 있다.

 

DOM 트리 구조 예시

<html>
  <head>
    <title>Document Title</title>
  </head>
  <body>
    <h1>Hello, World!</h1>
    <p>This is a paragraph.</p>
  </body>
</html>

위 문서를 DOM 트리로 변환하면 다음과 같다.

Document
 └── html
      ├── head
      │    └── title ("Document Title")
      └── body
           ├── h1 ("Hello, World!")
           └── p ("This is a paragraph.")

 

DOM과 브라우저

브라우저는 HTML 문서를 파싱하여 DOM을 생성하고 그 DOM을 JS로 제어할 수 있게 한다. 이를 통해 실시간으로 변경 사항을 웹 브라우저가 반영할 수 있다.

'React' 카테고리의 다른 글

useState란?  (0) 2024.12.19
useEffect란?  (0) 2024.12.19
화살표 함수  (3) 2024.12.18
컴포넌트의 생애 주기  (2) 2024.12.18
React 기초 : 컴포넌트  (2) 2024.12.18