
![]()
DOM(Document Object Model)은 HTML / XML 문서에 접근하기 위한 인터페이스입니다.
브라우저는 HTML 문서를 파싱하여 사용자에게 시각화를 해주는데 이러한 경우에 우리는 여러가지 이유로 브라우저가 띄어주는 HTML 문서에 어떤 동적 처리를 해주는 과정을 도와주는 인터페이스가 DOM입니다.
DOM은 트리 구조로 특정 노드를 찾아 수정하거나 제거하는 작업이 가능하다.
WEB의 복잡도가 빠른 속도로 증가했고, 그에 비례해서 DOM 조작도 빈번하게 일어나게 됐다. 대규모의 애플리케이션에서 많은 동적 요소들을 움직일 때, DOM을 많이 조작하게 되고 같은 연산을 반복하는 등 상당히 비효율적이다.
이를 해결하기 위해 등장한 것이 Virtual DOM 방식을 이용해 DOM 처리 횟수를 최소화하고 효율적으로 진행할 수 있게 된다. 👉 Virtual DOM을 사용하는 이유
Virtual DOM은 하나의 가상 레이어로, Virtual DOM에 적용하는 변경사항은 DOM에 바로 반영되지 않고 그 변경사항들을 모아 한번에 DOM에 보냅니다. 그러면 DOM은 여러번 할 일을 최소한으로 할 수 있으며, 렌더도 최소한으로 할 수 있게 된다.
React는 실제로 DOM에 바로 접근하여 사용하지 않는다.
출처: https://blog.bitsrc.io/incremental-vs-virtual-dom-eb7157e43dca
이런 과정에서 Virtual DOM은 일련의 버퍼링 또는 캐싱의 과정이라고 말할 수 있다.