웹 페이지라는 건물을 쌓는데 필요한 블록(Component)을 만드는 기술이다.
이 블록(Component)를 재사용하여 비슷한 건물을 쌓을 때 이미 만들어진 블록을 바탕으로 빠르게 건물을 완성할 수 있고, 누군가 만들어놓은 블록을 가져와서 내 건물의 블록으로 활용할 수 있게 해주는 도구이자 기술이라고 표현하고 싶다.
Jquery의 경우 쉽고 효율적으로 DOM을 다룰 수 있어서 많은 사랑을 받았고,
Backbone, Angular의 경우 SPA방식을 사용하지만, DOM을 다룰 때 여전히 Jquery를 사용했다.
가장 큰 문제는 속도!
웹페이지는 브라우저상에서 돔(DOM, Document Object Model)이라는 표준 형식으로 파싱(Parsing)되어 표현된다.
따라서 사용자 조작에 맞춰 동적으로 변화하는 반응형 웹을 구현하기 위해서는 DOM 조작이 필수적인데, 대부분의 브라우저에서 돔 조작이 발생할 때마다 배치나 화면 표시에 많은 연산을 발생시키다 보니 조작이 빈번해질수록 브라우저 성능이 낮아지는 문제가 있었다.
이러한 이슈를 해결하기 위해 자바스크립트 라이브러리의 하나인 리액트는 VirtualDOM을 채용하여 이를 해결했다.