React가 메모리에 생성한 진짜 DOM의 복사본
JavaScript 객체로 구성됨
상태가 바뀔 때, 새로운 Virtual DOM 생성
상태 변경 시 즉시 새로운 돔이 생성되진 않고, Batch Update전략에 의해 한 렌더링 사이클 동안 모든 변경사항이 취합되어 한꺼번에 반영됨
이전 Virtual DOM과 비교하여 변경사항 감지
모든 변경사항에 대해 React가 실제 DOM 조작
성능 최적화
DOM을 직접 조작하면, 내용이 바뀔 때마다 화면이 업데이트됨
// 이런 식으로 하면 화면을 3번 다시 그림
document.querySelector('#title').textContent = '새 제목';
document.querySelector('#count').textContent = '10';
document.querySelector('#status').textContent = '완료';
가상 돔을 사용하면 모든 변경사항을 수집한 다음 한 번에 반영 가능