본문 바로가기

Front-end/JavaScript

자바스크립트 DOM 조작: 이해하기부터 실전 활용까지

🎯 자바스크립트 DOM 조작: 이해하기부터 실전 활용까지 🚀

안녕하세요! 👋 오늘은 웹 페이지를 동적으로 만드는 데 필수적인 자바스크립트의 DOM(Document Object Model)에 대해 배워볼 예정입니다. 📚

1️⃣ DOM이란 무엇인가요? 🤔

DOM은 웹 페이지를 프로그래밍 언어가 이해할 수 있는 구조로 만드는 프로그래밍 인터페이스입니다. 즉, DOM을 통해 자바스크립트는 웹 페이지의 내용, 구조, 스타일 등을 조작할 수 있습니다. 💻

2️⃣ DOM의 구조는 어떤가요? 🌳

DOM은 트리 구조로 되어 있습니다. 이 트리 구조는 HTML 문서의 태그들을 노드라는 개별 단위로 만들어 구성됩니다. HTML 태그는 엘리먼트 노드, 속성은 어트리뷰트 노드, 태그 사이의 텍스트는 텍스트 노드로 표현됩니다.

3️⃣ DOM 조작 시 주의할 점은 무엇인가요? ⚠️

DOM을 조작할 때는 성능과 보안에 주의해야 합니다. 무분별하게 DOM을 조작하면 웹 페이지의 성능을 저하시키거나, 사용자의 데이터를 보호하지 못하게 될 수 있습니다. 따라서 필요할 때만 DOM을 조작하고, 사용자 데이터를 안전하게 다루는 방법을 항상 고려해야 합니다. 🛡️

4️⃣ DOM 조작: Create, Read, Update, Delete 🛠️

자바스크립트를 사용하면 DOM 요소를 생성(Create), 읽기(Read), 수정(Update), 삭제(Delete)할 수 있습니다. 아래에 이를 구현하는 코드 예제를 몇 가지 보여드리겠습니다.

// DOM 요소 생성
let newElement = document.createElement('div');

// DOM 요소 읽기
let bodyElement = document.body;

// DOM 요소 수정
bodyElement.style.backgroundColor = 'blue';

// DOM 요소 삭제
let targetElement = document.getElementById('target');
targetElement.parentNode.removeChild(targetElement);

위 코드에서는 새 div 요소를 생성하고, body 요소를 가져와서 배경 색상을 파란색으로 변경하며, 특정 요소를 삭제하는 예시를 보여주고 있습니다.

5️⃣ Append와 innerHTML, textContent 📝

DOM을 조작하는 다른 방법으로는 Append, innerHTML, textContent가 있습니다. 이들의 차이점은 무엇일까요?

// Append
let parentElement = document.getElementById('parent');
let childElement = document.createElement('div');
parentElement.append(childElement);

// innerHTML
let targetElement = document.getElementById('target');
targetElement.innerHTML = '<p>Hello, world!</p>';

// textContent
let targetElement = document.getElementById('target');
targetElement.textContent = 'Hello, world!';

Append는 자식 요소를 부모 요소에 추가할 때 사용합니다. innerHTML은 HTML 코드를 문자열로 추가하고, textContent는 순수한 텍스트 내용을 추가할 때 사용합니다. 이 세 가지 모두 DOM 요소에 내용을 추가하는 데 유용합니다.

📝 마치며

DOM 조작은 웹 페이지를 동적으로 만드는 데 필수적입니다. 이번 글을 통해 DOM에 대해 깊이 이해하셨길 바랍니다. 🌟

더 깊이 알아보고 싶다면, MDN의 DOM 가이드를 참조하세요. 📖

여러분의 코딩 여정에 도움이 되기를 바랍니다. 🌈 이 글에 대해 궁금한 점이나 오류를 발견하셨다면, 댓글로 알려주세요! 👇