id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id
title
category
status
canonical_id
aliases
duplicate_of
source_trust_level
confidence_score
verification_status
tags
raw_sources
last_reinforced
github_commit
tech_stack
wiki-2026-0508-dom-요소-조작
DOM 요소 조작
10_Wiki/Topics
verified
self
DOM Manipulation
Vanilla JS DOM
Document API
none
A
0.9
applied
dom
javascript
web
browser
2026-05-10
pending
language
framework
javascript
dom
DOM 요소 조작
매 한 줄
"매 Document 의 tree 의 query + mutation 의 web 기본 API" . 매 jQuery 의 era 종료, 2026 의 modern DOM (querySelector, classList, dataset, MutationObserver) 의 충분 + framework (React/Solid/Svelte) 의 abstraction 위. 매 vanilla 의 fast path + 매 small widget 의 right tool.
매 핵심
매 Query
getElementById(id) — 매 fastest single lookup.
querySelector(sel) / querySelectorAll(sel) — CSS selector general.
closest(sel) — 매 ancestor traversal.
matches(sel) — boolean check.
매 Mutate
Create : createElement, cloneNode(true), <template> + content.cloneNode.
Insert : append, prepend, before, after, replaceWith.
Remove : el.remove().
Attribute : setAttribute, dataset.x, classList.add/toggle/remove.
Content : textContent (safe) vs innerHTML (XSS risk).
매 Observe
MutationObserver — 매 subtree change.
IntersectionObserver — viewport visibility.
ResizeObserver — element size.
매 응용
Lightweight widget (no framework) — banner, modal, tooltip.
Server-rendered HTML enhancement (Hotwire, Astro islands).
Browser extension content script.
💻 패턴
Element creation (template)
classList + dataset
Event delegation
Safe insertion (avoid innerHTML)
IntersectionObserver — lazy load
MutationObserver — react to subtree
Form serialization
Animation — Web Animations API
Batched DOM updates
매 결정 기준
상황
Approach
Static + small interaction
Vanilla DOM
100s of components
React / Solid / Svelte
Server HTML + enhancement
Hotwire / Astro
Lazy load images
IntersectionObserver
External widget injection
MutationObserver
Animation
Web Animations API
기본값 : querySelector + classList + textContent + delegation + Observer APIs.
🔗 Graph
부모: DOM · Web_APIs
변형: DOM_요소_조작_및_타입_좁히기 · Shadow_DOM
응용: Web_Components · Browser_Extensions · Hotwire
Adjacent: IntersectionObserver · MutationObserver · Sanitizer_API
🤖 LLM 활용
언제 : vanilla widget scaffold, Observer setup, jQuery → modern migration.
언제 X : 매 framework app — 매 framework primitive 의 사용.
❌ 안티패턴
innerHTML with user input : 매 XSS — textContent 또는 Sanitizer.
Loop append in DOM : 매 N reflows — DocumentFragment 의 사용.
No event delegation : 1000 listener 의 memory + perf 비용.
document.write : deprecated — 매 stream block.
Manual style mutation everywhere : classList toggle + CSS 의 사용.
🧪 검증 / 중복
Verified (MDN DOM, Web Animations, Observers, Sanitizer API spec).
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — query/mutate/observe patterns + Sanitizer + delegation