프로그램 언어/JavaScript Dom Part

[J.S_DOM] 1. DOM이란?

알케이88 2025. 8. 8. 11:29

 

DOM은 자바스크립트를 본격적으로 웹개발에 사용할 때 꼭 이해 해야할 개념이다. 

1.0 ❓ DOM이 왜 필요할까?

HTML은 정적인 구조 이지만 웹 브라우저에서 자바스크립트를 사용 시 페이지를 동적으로 조작이 가능 

  • 웹페이지에 있는 텍스트를 바꾸고,
  • 이미지를 교체하거나,
  • 버튼을 누르면 뭔가 실행되게 만들고,
  • 입력 폼 값을 확인하고,
  • 페이지 요소를 숨기거나 나타냄

이런 식의 웹페이지 조작이 자바스크립트의 핵심 사용처.

비유
HTML: TV
DOM: 리모컨
자바스크립트: 리모컨을 조작 하는 손

 

1.1 DOM (Documetn Object Model) 이란?

HTML 문서를 브라우저가 읽고 구조화한 트리 형태의 객체 모델로 변환한 것.

 

  • Document: 웹 페이지 하나를 의미
  • Object: 각각의 태그가 객체로 변환됨
  • Model: 문서의 구조를 모델로 표현한 것

 

즉 DOM은 HTML 을 자바스크립트가 조작이 가능하게 만든 문서 객체 모델

정리하자면:
HTML → 브라우저가 읽음 → DOM 구조로 변환 → JS가 조작

 

1.2 DOM의 형태(트리구조)

<!DOCTYPE html>
<html>
  <body>
    <h1>Hello</h1>
    <p>Welcome to my site</p>
  </body>
</html>

이러한 HTML 구조를 

DOM 트리 구조로 아래 처럼 변경

Document
└── html
    └── body
        ├── h1 (Hello)
        └── p (Welcome to my site)
HTML 태그 하나하나가 **노드(Node)**라고 불리며,
DOM에서는 각각의 태그를 **객체(Object)**처럼 다룸.

 

1.3 DOM의 예제 텍스트 바꾸기 

<!DOCTYPE html>
<html>
  <body>
    <p id="greeting">안녕하세요</p>
    <button onclick="changeText()">클릭해보세요</button>

    <script>
      function changeText() {
        document.getElementById("greeting").textContent = "반갑습니다!";
      }
    </script>
  </body>
</html>

<코드 설명>

  • document: 웹 문서를 의미하는 최상위 객체
  • getElementById("desc") : id="desc" 를 가진 <p> 태그를 찾음
  • textContent: HTML 태그의 내부 텍스트를 변경 

 

1.4 DOM 의 예제들 

조작 유형 설명 예시 코드
요소 선택 원하는 HTML 요소를 JS로 선택 document.querySelector("h1")
텍스트 변경 태그 안의 내용을 바꿈 element.textContent = "새 글자"
속성 변경 이미지의 src, 링크의 href 등 img.src = "new.jpg"
스타일 조작 CSS 스타일을 변경 div.style.backgroundColor = "yellow"
클래스 조작 class 추가/제거 element.classList.add("active")
이벤트 연결 클릭, 입력, 마우스 등 button.addEventListener("click", fn)
요소 생성 새로운 태그 만들기 document.createElement("div")
요소 추가/삭제 화면에 보여주거나 제거 parent.appendChild(newElem)element.remove()

1.5 DOM 조작이 중요한 이유?

  • 버튼 누르면 설명창 뜨게하기 
  • 입력창에 따라 안내 메세지 보여주기
  • 사용자 맞춤 정보 보여주기
  • 동적으로 이미지 추가 및 삭제

이러한 기능들을 만들기 위해 DOM 은 필수적인 개념

1.6 자주 쓰는 DOM 객체 와 메서드 요약

객체 / 메서드 설명

객체 /메서드 설명
document HTML 문서를 대표하는 객체
getElementById("id") 특정 ID 요소 선택
querySelector("선택자") CSS 방식으로 요소 선택
textContent, innerHTML 텍스트 또는 HTML 조작
style.속성 인라인 스타일 변경
classList.add/remove/toggle 클래스 추가/삭제/토글
createElement("div") 새 요소 생성
appendChild() 요소 추가
remove() 요소 삭제
addEventListener() 이벤트 감지 및 처리

 

예제를 붙이기에는 너무 길어 지는 느낌이 있어 다음 파트에 예제만 확인 해보자.