초보자를 위한 JavaScript DOM 설명

발행: (2026년 1월 5일 오전 01:58 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

DOM이란?

DOM은 Document Object Model의 약자입니다.
HTML 문서를 트리‑구조로 표현한 것으로, JavaScript가:

  • 읽을 수 있고
  • 변경할 수 있으며
  • 추가할 수 있고
  • 제거할 수 있습니다

쉽게 말해, DOM은 JavaScript가 HTML 요소를 제어하고 조작할 수 있게 합니다.

예시를 통한 DOM 이해

다음 HTML을 보세요:

## Hello

Click Me

브라우저가 이 페이지를 로드하면, 다음과 같은 DOM 트리로 변환합니다:

Document
 └── html
     └── body
         ├── h1
         └── button

JavaScript는 원시 HTML이 아니라 이 DOM 트리와 상호작용합니다.

DOM이 중요한 이유

DOM이 없을 때

  • 웹사이트가 정적임
  • 상호작용이 없음
  • 동적 업데이트가 없음

DOM이 있을 때

  • 버튼이 클릭에 반응함
  • 폼이 검증됨
  • 페이지를 새로 고치지 않아도 내용이 업데이트됨

모든 최신 웹사이트는 DOM을 사용합니다.

DOM 작동 방식

흐름은 간단합니다:

HTML → DOM Tree → JavaScript Controls DOM

JavaScript는 다음을 할 수 있습니다:

  • 요소 선택
  • 텍스트나 스타일 변경
  • 요소 추가 또는 제거
  • 이벤트 감지(클릭, 입력, 제출)

알아두면 좋은 일반적인 DOM 메서드

요소 선택

document.getElementById("title");
document.querySelector(".box");

내용 변경

document.getElementById("title").innerText = "Welcome to DOM";

스타일 변경

document.getElementById("title").style.color = "blue";

이벤트 처리

button.addEventListener("click", () => {
  alert("Button clicked!");
});

클래스 작업

element.classList.add("active");
element.classList.remove("active");

DOM의 실제 활용 사례

  • 폼 검증
  • 토글 버튼(예: 다크 모드)
  • 모달 및 드롭다운
  • 동적 콘텐츠 로딩
  • 싱글 페이지 애플리케이션

React와 기타 프레임워크도 DOM 개념(가상 DOM)을 기반으로 구축됩니다.

DOM을 배운 뒤 다음에 배울 내용

  • DOM 이벤트(클릭, 입력, 제출)
  • ES6 JavaScript
  • 비동기 JavaScript(프라미스, Fetch API)
  • React.js
Back to Blog

관련 글

더 보기 »

내 포트폴리오

개요: 나는 2025년 말에 개인 포트폴리오를 완성했고, 이 이정표를 Dev.to에 공유하고 싶었다. 나는 시스템 분석 및 개발 전공 학생이다.

freeCodeCamp와 학습하기

새해가 몇 가지 변화를 가져왔고, 바람직하게도 약속들을 가져왔습니다. 저는 DEV Community에 가입했고, freeCodeCamp에서도 새 계정을 만들었으며, 버전…