문득 **[프레임워크 없는 프론트엔드 개발]**이라는 책을 읽으면서 가상 돔에 대해서 정리하고자 한다.
DOM은 브라우저 상에서 자바스크립트가 HTML 문서를 조작하기 위한 API
브라우저가 렌더링할 때의 과정
: 브라우저가 서버로부터 HTML을 전달받으면, 렌더링 엔진이 HTML을 파싱(구문 분석)하고, DOM의 Node로 이루어진 트리를 만든다.
: CSS파일과 각 엘리먼트의 inline 스타일을 파싱하고 CSSOM(CSS Object Model)을 생성한다.
: 생성된 Render Tree의 각 Node들이 스크린상의 좌표와 크기 등이 결정된다.
: 구성된 레이아웃을 화면에 그리는 과정이 진행되고 트리의 각 노드들을 거쳐가면서 화면이 스크린에 나타난다. DOM을 임의적으로 조작하면 이 과정을 반복하게 된다.