공부하자

[React] Virtual DOM(가상 돔) 본문

면접 준비

[React] Virtual DOM(가상 돔)

dev_riley 2023. 2. 8. 19:31

DOM이란?

Document Object Model의 약자이고, 웹 페이지를 이루는 태그들을 자바스크립트가 이용할 수 있게끔 브라우저가 트리구조로 만든 객체 모델을 의미한다. 즉, HTML과 스크립팅 언어(javascript)를 서로 이어주는 역할을 한다.

 

DOM을 문서 객체 모델이라고 하는데 여기서 문서 객체란 html, head, body와 같은 태그들을 javascript가 이용할 수 있는(메모리에 보관할 수 있는) 객체를 의미한다.

[ Virtual DOM을 사용하는 이유 ]

큰 규모의 웹 어플리케이션은 수많은 데이터가 로딩된다. 데이터가 로딩될때마다 수많은 요소들이 DOM에 직접 접근하여 변화를 주다 보면 로딩 속도가 느려질 가능성이 크다. 이는 DOM 자체가 느려지는 걸 의미하는 게 아니다. 웹 브라우저 단에서 DOM 변화가 일어나면 웹 브라우저가 CSS를 다시 연산하고 레이아웃을 구성하고, 페이지를 리페인트하는 과정이 오래걸리는 것이다. 이 과정들을 거치며 많은 업데이트가 일어날 경우 성능 저하가 생길 수 밖에 없다.

 

위와 같은 속도 이슈와 많은 일을 수행하다가 버그가 발생하거나 브라우저가 죽는 일 등의 일을 개선하고자 Virtual DOM이 나왔다.

속도 이슈에 대한 해결책은 결국 DOM을 최소한으로 조작하는 방법 밖에는 없다. 그래서 리액트에서는 이 문제점을 해결하기 위해 Virtual DOM 방식을 사용해 DOM의 업데이트를 추상화하여 처리 횟수를 최소한으로 한다.

Virtual DOM이란?

virutal DOM은 실제 DOM을 조작하는 게 아니라 메모리에 DOM을 추상화한 자바스크립트 객체를 구상해 사용하는 것이다. 다시 말해, 메모리에 실제 DOM트리와 동일한 트리 구조의 javascript 객체를 가지고 있는 것이다.

[ 리액트가 Virtual DOM을 반영하는 절차 ]

  1. 데이터가 업데이트 되면, 전체 UI를 Virtual DOM에 리렌더링함
  2. 이전 Virtual DOM에 있던 내용과 현재의 내용을 비교함(가상 돔끼리 비교)
  3. 바뀐 부분만 실제 DOM에 적용이 됨 (컴포넌트가 업데이트될 때, 레이아웃 계산이 한번만 이루어 짐)

 

출처

 

[React] DOM이란? 가상 돔 (Virtual DOM )이 나오게 된 이유

돔(DOM)이란? DOM(Document Object Model)은 웹 페이지를 이루는 태그들을 자바스크립트가 이용할 수 있게끔 브라우저가 트리구조로 만든 객체 모델을 의미한다. DOM(Document Object Model)을 영어 뜻풀이 그대

dev-cini.tistory.com

 

[React] 가상돔 Virtual DOM이란?

가상 돔(Virtual DOM) 이란? Virtual DOM을 사용하면 실제 DOM에 접근하여 조작하는 대신, 이를 추상화한 자바스크립트 객체를 구성하여 사용 ✅ 실제 DOM의 가벼운 사본 DOM의 상태를 메모리에 저장하고,

dev-cini.tistory.com

 

React- 가상돔(Virtual DOM) 이해하기

리액트 동작원리를 찾다보니 가상돔에 대한 이야기를 참 많이 들었다. DOM 에 대한 개념을 알고 있지만 가상돔은 생소한 개념이었다. 얘의 정체를 하나하나 공부해보자. 다음은 웹 브라우저 접속

devbirdfeet.tistory.com

 

[React] Virtual DOM

React - 3 | [본 글은 '리액트를 다루는 기술' 의 책을 참고로 정리한 공부 내용입니다.] 이번에는 리액트의 가장 큰 특징인 Virtual DOM에 대해 알아보려 한다. 그 전에 우선 DOM에 대한 개념을 알아두어

brunch.co.kr

 

Comments