virtual-domdiffingreconciliation

Virtual DOM은 왜 쓰나요?

면접 출제
예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

Virtual DOM은 왜 등장했나요?

부가 설명

reflow와 repaint가 정확히 어느 단계를 다시 타는지는 reflow와 repaint 질문에서 더 자세히 다룹니다.

상태 변경 → 새 Virtual DOM tree 생성 → 이전 tree와 diffing → 달라진 노드만 실제 DOM에 commit

diffing은 메모리상의 JS 객체끼리 하는 작업이라, 실제 DOM에 손대지 않고도 '뭐가 달라졌는지'를 먼저 계산할 수 있습니다. 이 결과로 실제로 달라진 최소한의 노드만 골라내는 과정을 reconciliation이라고 부릅니다.

한 줄 정리

Virtual DOM은 비용이 큰 실제 DOM 조작 전에 저렴한 JS 객체 비교(diffing)로 변경점을 먼저 찾아내, 최소한의 DOM만 갱신하는 방식입니다. 다만 diffing 자체도 비용이라 사람이 완벽하게 최적화한 직접 조작보다 항상 빠른 건 아니며, 진짜 강점은 속도보다 선언형 코드로도 합리적인 성능을 낸다는 데 있습니다.