가상DOM
가상 DOM을 이해하려면 우선 DOM이 무엇인지 알아야 한다.
1. DOM(Document Object Model)
트리 구조로 문서의 계층 구조를 표현한 것을 DOM이라고 한다. DOM 트리 라고도 한다. Javascript에서 활용한 findElementById
같은 메서드는 언어가 제공하는 API라기보다 브라우저와 상호작용하기 위한 웹 API라고 볼 수 있다. Javascript는 웹 API를 이용해 DOM을 조작한다.
UI를 모델링하기 위해 우리가 사용하는 DOM 들은 다음과 같다.
- DOM - HTML 트리
- CSSOM - CSS 트리
- Accessibility Tree
- React DOM
React DOM 같은 경우는 위의 이미지와 같이 React가 JSX를 트리로 변환한 것을 말한다.
2. 가상 DOM
가상 DOM은 브라우저에 존재하는 DOM을 흉내 낸 데이터 구조이다. 어플리케이션 코드와 실제 브라우저 DOM 사이에 중간 계층을 담당하여 데이터 변경을 탐지하거나 브라우저와 코드 사이의 이벤트 통신, 최적화 등을 한다.