PR CENTER

뉴스룸     |     료실

mobile background

PR CENTER

DOM, Virtual DOM

관리자
2025-06-16
조회수 166

DOM(Document Object Model) 이란?

- DOM은 HTML, XML 문서의 프로그래밍 인터페이스로, 웹 개발에서 핵심적인 역할을 담당

- 문서의 구조화된 표현을 제공하며, 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 문서 구조, 스타일, 내용 등을 동적으로 변경할 수 있게 해줌

- DOM은 노드(nodes)와 객체(objects)로 문서를 표현하며, 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 제어 가능하게 해주는 객체 지향 표현 방식

→ JavaScript와 같은 스크립팅 언어를 이용해 DOM을 수정할 수 있음


DOM과 JavaScript의 관계

- DOM은 프로그래밍 언어는 아니지만, JavaScript 언어는 웹 페이지 또는 XML 페이지 및 요소들과 관련된 모델이나 개념들에 대한 정보를 갖지 못하게 됨

→ DOM은 JavaScript가 웹 페이지와 상호작용 하기 위한 필수 인터페이스


DOM의 주요 데이터 타입

Document:

- HTML 문서 전체를 대표하는 최상위 객체

- document 타입의 객체를 반환할 때, 이 객체는 루트 document 객체 자체를 의미

→ document 객체를 통해 페이지의 모든 요소에 접근 가능


Element:

- DOM API의 멤버에 의해 반환된 element 또는 element 타입의 노드를 의미

- HTML 태그 하나하나를 의미

- getElementById, querySelector 등으로 접근 가능


NodeList:

- 노드들의 유사 배열

- nodeList의 항목들은 인덱스를 통해 접근 가능 하지만 실제 배열은 아님

- document.querySelectorAll()과 같은 메서드가 NodeList를 반환


Attribute:

- 요소들의 속성을 나타내며, getAttribute, setAttribute 등으로 조작

- attribute가 멤버에 의해 반환되는 것은 attribute에 대한 특별한 인터페이스를 노출하는 객체 참조

- attributes는 DOM에서 elements와 같은 노드이지만, elements만큼 많이 사용되지 않음


NamedNodeMap:

- 속성(attribute)들의 컬렉션을 표현하며, 인덱스 또는 이름으로 접근 가능

→ element.attributes 속성에서 사용됨


DOM의 문제점

- 성능 이슈: DOM 조작은 무겁고, 특히 대량의 DOM 요소를 변경할 경우 렌더링 성능 저하가 발생

- 리플로우(Reflow)와 리페인트(Repaint): DOM 변경 시 브라우저는 레이아웃을 다시 계산하고 화면을 다시 그려야 함

- 복잡성 증가: 대규모 애플리케이션에서 직접적인 DOM 조작은 코드의 복잡성을 증가시킴


Virtual DOM이란?

- Virtual DOM은 실제 DOM의 가벼운 JavaScript 표현

- 메모리에 가상적으로 존재하는 DOM으로, 실제 DOM과 동기화되는 개념

- React, Vue.js 등의 모던 프레임워크에서 성능 최적화를 위해 사용


Virtual DOM의 작동 원리

f0e40049a3a5c.png

- 가상 DOM 생성: 실제 DOM의 구조를 JavaScript 객체로 표현

- 상태 변경 감지: 애플리케이션의 상태가 변경되면 새로운 Virtual DOM 트리를 생성

- Diffing: 이전 Virtual DOM과 새로운 Virtual DOM을 비교하여 변경된 부분을 찾음

- Reconciliation: 변경된 부분만 실제 DOM에 반영 → 최소한의 조작만 수행


Virtual DOM의 장점

- 성능 최적화: 배치 처리(변경 사항을 모아서 처리)를 통해 불필요한 DOM 조작 최소화

- 예측 가능한 UI 업데이트: 상태 기반의 선언적 업데이트 구조

- 크로스 브라우저 호환성: 브라우저 차이를 프레임워크가 추상화

- 개발 경험 개선: 선언적 코드 작성 가능, 디버깅과 유지보수에 용이


Virtual DOM의 한계

- 초기 렌더링 비용: 가상 DOM 트리를 구성하는 초기 작업이 무겁게 작용할 수 있음

- 복잡한 Diff 알고리즘 비용: 매우 복잡한 구조일 경우 diff 연산 자체도 무시할 수 없음

- 메모리 사용 증가: 메모리에 Virtual DOM 구조를 유지해야 하므로 추가 자원 소모


DOM vs Virtual DOM 비교

성능측면

b06d482826f36.png

개발 경험

ee3f151ec4e46.png


결론

- DOM과 Virtual DOM은 각각의 장단점을 가지고 있으며, 프로젝트의 특성과 요구사항에 따라 적절한 선택이 필요

- DOM 직접 조작: 간단한 프로젝트나 특정 성능이 중요한 상황에서 유용

- Virtual DOM: 복잡한 사용자 인터페이스와 빈번한 상태 변경이 있는 모던 웹 애플리케이션에서 유용

→ Virtual DOM을 기반으로 한 프레임워크들이 주류가 되고 있지만, DOM의 기본 개념과 작동 원리 이해가 중요



                                                                                                                                                                                                                       ⭐발표자 : 이현주님

0 0

페이지 바로가기

@2024 K2SYSTEMS. All rights reserved.

HOME       |       ABOUT US       |       SOLUTION       |       PR CENTER       |       CONTACT       |       인재채용       |       kakao i cloud 고객센터  

@2024 K2SYSTEMS. All rights reserved.