HTML,CSS, 자바스크립트 등 개발자가 작성한 문서가 브라우저에서 출력되는 과정
파싱
해서 각각 Tree
를 만든다. (Parsing)Rendering Tree
를 만든다. (Style)레이아웃
을 만든다. (Paint)합성
하여 실제 화면에 나타낸다. (Composite)파싱은 어떤 페이지(문서, html 등)에서 내가 원하는 데이터를 특정 패턴이나 순서로 추출해 가공하는 것
파싱을 통해 HTML→ DOM 트리, CSS → CSSOM 트리 로 구조 변경
❗️한줄씩 읽으면서 DOM트리 생성.
⚠️ 읽던 중 Link태그를 만나 CSS 요청시 CSS 를 CSSOM 트리 생성
⚠️ 읽던 중 Script 태그를 만나 JS 요청시 JS엔진에게 제어권을 넘기고 JS먼저 파싱
✅CSS/JS 파싱이 완료되면 다시 남은 HTML 파싱 시작.
Bytes → Characters ( 변환 )
Characters → Tokens ( 어휘 분석 )
Tokens → Nodes ( 구문 분석 )
Nodes → DOM ( 의미 분석 )
DOM 트리와 CSSOM를 합쳐서 한개로 만든 관계도
브라우저는 페이지에 있는 각 요소들의 정확한 크기와 위치를 계산하여 위에서 만든 렌더링 트리를 바탕으로 레이아웃 작업을 수행함.
각 요소의 정확한 위치 정보가 계산 되었기 때문에 계산된 위치에 픽셀을 채우는 작업을 수행함.
픽셀이 채워진 여러가지 레이아웃을 합성하여 실제 화면에 그려준다.
이 과정이 끝나면 우리는 화면에서 웹 페이지를 볼 수 있다!!