React

Virtual DOM 은 뭘까?

최데브 2021. 1. 19. 21:53

이번 글은 Virtual DOM 에 대해서 기록해보려고 한다.

 

React 나 Vue.js 에서도 쓰이고 있는 Virtual DOM 이라는 단어자체는 많이 들어봤는데 

어렴풋이 기억에만 있는 개념을 정리해보고자 한다.

 

먼저 이것을 알기에 앞서 DOM 이 뭔지부터 되짚어 볼 필요가 있다.

 

구글에 DOM 을 검색 했을때 가장 먼저 나오는게 뭔지 보자.

 

"DOM 은 동일한 문서를 표현하고, 저장하고, 조작하는 방법을 제공한다. DOM 은 웹 페이지의 객체 지향 표현이며, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM 을 수정할 수 있다"

출처 : developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/%EC%86%8C%EA%B0%9C

 

DOM 소개 - Web API | MDN

이 문서는 DOM에 대한 개념을 간략하게 소개하는 문서이다: DOM 이 무엇이며, 그것이 어떻게 HTML, XML 문서들을 위한 구조를 제공하는지, 어떻게 DOM 에 접근하는지, API 가 어떻게 사용되는지에 대한

developer.mozilla.org

라고 한다.

 

쉽게 말하면 웹 페이지에 대한 인터페이스 역할을 한다고 보면 된다.

 

그럼 본론으로 돌아와 왜 React 는 Virtual DOM 을 쓸까?

 

한마디로 말하면 비효율적이라서다.

 

기존의 DOM 조작은 자바스크립트나 Jquery 를 통해 dom 에서 원하는 요소를 찾고 변경했었는데.

해당 요소를 getElementById 로 찾아낸다면 수많은 요소중 하나를 찾기에는 너무 많은 리소스가 든다.

 

그리고 그것은 속도, 성능에 대한 오버헤드를 발생시킨다.

 

그래서 탄생한 것이 Virtual DOM

 

화면에 변화가 생기면 실제 DOM 에 적용되기전 가상의 DOm 에 먼저 적용시키고 실제 DOM으로

전달하는데 이렇게 하게 되면 이전 Virtual DOM에 있던 내용과 현재의 내용을 비교하고

변화된 내용만 교체하면 되기 때문에 브라우저내에서 발생하는 연산의 양을 줄이면서 성능이 개선된다.

 

또한 메모리에 존재하기 때문에 훨씬 빠르고 실제로 렌딩되지도 않는다.

 

 

 

* 추가

velog.io/@sbinha/React%EC%97%90%EC%84%9C-Virtual-DOM

 

Virtual DOM

TL;DR DOM Virtual DOM Reconciliation(재조정) 동기 React를 사용하면서 작동방식에 대한 고민을 많이 하지 못했는데, 기본 개념중 하나인 Virtual DOM에 대해서 정리하고자 했습니다. DOM? 문서 객체 모델(The Doc

velog.io

더 자세히 알고리즘적인 부분까지 설명한 글이 있어서 첨부한다.

 

 

반응형