본문으로 건너뛰기
뒤로 가기

🎨브라우저 렌더링 과정 완전 분석

🖌렌더링?

drawing

평소에 개발 관련이 아니더라도 영상 렌더링이라든지 렌더링 이라는 말을 들어본 적이 있을 것입니다.

렌더링 이란 쉽게 말해 화면에 그림을 그리는 행위입니다.

나아가서

브라우저 렌더링HTML 등을 이용해서 브라우저에 그림을 그리는 행위를 뜻하죠.

🎨렌더링 과정

모든 그림에는 밑그림을 그리고 색을 칠하고, 과정이 필요합니다. 위의 스폰지밥 짤처럼 원을 그리는 데에도 긴 과정이 필요해요

브라우저 렌더링도 그림을 그리는 것과 마찬가지입니다.

자, 준비물을 알아봅시다.

이것들을 짜내서 브라우저에 그림을 그려봅시다!

1. Object-model 생성

dom

cssom

2. Render Tree 생성

자 이제 만들어 놓은 DOMCSSOM을 합쳐볼 차례입니다.

render-tree

3. 레이아웃 계산하기

렌더링 트리가 완성되었으니 이제 공간을 가늠해볼 차례입니다. 그림으로 치면 밑그림 정도죠.

layout

위 그림에서처럼 뷰포트 내부에서 렌더링 트리가 가진 노드들의 위치를 계산합니다.

4. 페인팅(or 래스터화)

자 모든 것이 준비되었으니 이제 그림을 그릴 일만 남았네요!

painting

🧹정리

자, 마지막으로 정리를 해봅시다.

  1. 처음에 HTML, CSS를 받아와서 DOM, CSSOM 트리를 만들었습니다.

  2. 이렇게 만들어진 DOM, CSSOM를 합쳐 Render Tree를 만들어냅니다.

  3. Render Tree노드를 순회하며 뷰포트 내에 차지할 공간을 계산합니다.

  4. 이제 노드들을 화면에 페인트 하면 됩니다!

간단해보이지만 DOM이나 CSSOM이 수정되기라도 하면 전부 처음부터 반복해야 합니다.

어때요 참 쉽죠?


공유하기
복사됨!

이전 글
[JS] 알아두면 쓸데있는 🔍Intersection Observer API 완전 정복
다음 글
유다시티 ⚛리액트 나노디그리 후기