Posts 브라우저 렌더링 과정에 대하여
Post
Cancel

브라우저 렌더링 과정에 대하여

브라우저의 구조

브라우저는 우리가 요청한 자원을 서버에 요청하고 화면에 출력하는 기능을 한다.
브라우저의 주요 구성 요소는 다음과 같다.

  • 사용자 인터페이스: 사용자에게 제공하는 브라우저 기본 기능 (주소표시줄, 이전/다음/새로고침 버튼 등)
  • 브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작 제어
  • 렌더링 엔진 : 요청한 콘텐츠 파싱, 출력
  • 통신 : 네트워크 통신
  • UI 백엔드 : 브라우저의 기본장치를 그릴때 사용.
  • 자바스크립트 해석기: 자바스크립트 코드 파싱 및 실행
  • 자료 저장소: 쿠키와 같은 데이터 저장소

렌더링 엔진

렌더링 엔진은 사용자의 요청으로 서버로부터 받은 HTML 문서를 화면에 표출하는 역할을 수행한다.

브라우저렌더링 엔진
크롬Blink (Webkit 으로부터 파생)
오페라Webkit
사파리Webkit
파이어폭스Gecko

렌더링 과정

[로딩] -> [파싱] -> [배치] -> [그리기]

  1. 로딩: 서버로부터 다운받은 CSS, HTML 을 읽어들인다
  2. 객체모델 생성: 파서는 CSS을 DOM 으로, CSS를 CSSOM 으로 변환한다. (DOM Tree 생성)
  3. 생성된 DOM, CSSOM을 결합하여 실제 화면에 표출된 노드로만 구성된 Render Tree 생성
  4. 렌더 배치: Layout 단계라고도 부르며, 이를 거쳐 브라우저의 View port 내 요소들의 위치와 크기를 계산한다. 이 단계에서 크기와 관련된 스타일 값(%, vh, vm) 이 계산되고 픽셀 단위로 변환된다.
  5. 그리기: Paint 단계라고도 하며 그림자, 색상, 텍스트, 이미지 와같은 것들이 처리되어 브라우저에 그려진다.

참고 자료

This post is licensed under CC BY 4.0 by the author.