가상 DOM(Virtual DOM)은 현대적인 웹 애플리케이션에서 성능을 향상시키고 사용자 경험을 개선하는 핵심적인 개념입니다. 이를 이해하기 위해서는 먼저 실제 DOM(Document Object Model)의 동작 방식을 이해해야 합니다.
웹 페이지의 구조를 표현하는 트리 구조로, HTML 문서의 각 요소(Element)를 객체로 표현합니다. JavaScript나 CSS를 사용하여 DOM을 조작할 수 있으며, 변경된 DOM은 브라우저에서 다시 렌더링되어 화면에 반영됩니다.
가상 DOM(Virtual DOM)은 메모리에 존재하는 실제 DOM의 가벼운 복사본으로, 실제 DOM과 동일한 구조를 가지지만 화면에 직접 렌더링되지 않습니다. 대신에 상태 변경이 발생할 때마다 가상 DOM이 업데이트되고, 변경된 부분만 실제 DOM에 반영됩니다.
초기 렌더링: 초기에는 실제 DOM과 가상 DOM이 동일한 상태를 가지고 있습니다.
상태 변경 감지: 사용자의 상호 작용이나 외부 이벤트로 인해 상태가 변경되면, 프레임워크(예: React)가 해당 변경을 감지하고 가상 DOM에 반영합니다.
가상 DOM 비교: 가상 DOM은 이전 가상 DOM과 비교하여 변경된 부분을 찾습니다.
실제 DOM 업데이트: 변경된 부분만을 실제 DOM에 반영하여 화면을 업데이트합니다. 이 과정에서 불필요한 DOM 조작을 최소화하여 성능을 향상시킵니다.
가상 DOM은 현대적인 웹 애플리케이션 개발에서 필수적인 기술로, 성능 최적화와 코드 유지보수를 위해 중요한 역할을 합니다. React, Vue, Angular 등의 프레임워크에서 이러한 개념을 활용하여 웹 애플리케이션을 보다 효율적으로 개발할 수 있습니다.
이 글은 기존 Raect를 왜 사용해야 하는지에 간단하게 적어 놨었는데 조금 더 자세한 설명이 필요할것같아서 작성하게 되었습니다.