

동적인 것은 런타임 동안에 변화하는 것을 의미합니다. 예시로 변수가 동적일 경우, 프로그램 실행 중에 값이나 속성이 변경될 수 있어요.
동적인 것에 예시는 Python의 리스트를 예시로 들 수 있습니다. 리스트에 요소를 추가, 삭제가 가능하고, 요소가 변경될 수 있죠
축약하자면, 정적이라는 것은 고정적이고, 동적인 것은 변화 가능합니다.
예시를 들어보겠습니다. 페이스북을 생각해보세요. 스크롤바를 내릴수록 수 많은 데이터가 로딩됩니다. 그리고 각 데이터를 표현하는 요소들이 있습니다. 요소 개수가 1000개, 10000개와 같이 많다면 얘기가 달라집니다.

규모가 큰 어플리케이션에서 DOM이 직접 접근하여 변화를 주다 보면 성능 이슈가 발생하기 시작합니다. 한마디로 느려진다는 말이죠.
- 데이터를 업데이트 할 경우 전체 UI를 가상의 돔에 리렌더링합니다
- 이전 가상의 돔의 내용과 현재 내용을 비교합니다
- 바뀐 부분만 실제 돔에 적용합니다.

- 렌더링 횟수를 줄여서 성능을 더욱 향상시켜줍니다.
- 빠른 업데이트를 가능하게 하고 어플리케이션 반응성을 높여줍니다
- 개발자가 플랫폼 간 호환성을 쉽게 유지할 수 있도록 도와줍니다
- 코드의 가독성을 높이고 유지보수 역시 좋아집니다
- 무엇보다 리액트가 가상의 돔을 지원하기에 우리는 가상의 돔에 대해 알아야합니다