브라우저 렌더링 원리(파이프라인)에 대해서 설명해주세요.
<aside> 💡
답변
브라우저가 웹 페이지를 화면에 표시하기 위해 거치는 과정을 브라우저 렌더링 파이프라인이라고 합니다. 이 과정은 크게 6단계로 나눌 수 있습니다.
HTML을 파싱하여, DOM을 생성합니다.
CSS를 파싱하여, CSSOM을 생성합니다.
2.5. JS를 실행합니다. 1번의 HTML 파싱 중, script 코드가 있다면, HTML 파싱이 중단됩니다.
DOM과 CSSOM을 결합하여, 렌더 트리를 생성합니다.
display: none 속성처럼 보이지 않고, 공간 차지도 없는 요소는 렌더 트리에 포함되지 않습니다.레이아웃 단계에서는 브라우저가 렌더 트리를 사용해 각 요소의 정확한 위치와 크기를 계산합니다.
페인팅 단계에서는 브라우저가 각 요소를 계산된 크기/위치에 따라 실제로 화면에 그리는 작업을 시작합니다.
컴포지팅 단계에서는 브라우저가 화면에 그려질 요소들을 각각의 레이어(layer)로 분리하고, 이 레이어들을 결합하여 최종 화면을 구성합니다.