whatisthis?
etc. 브라우저의 렌더링 과정 본문
** 렌더링이란?
HTML,CSS, 자바스크립트 등 개발자가 작성한 문서가 브라우저에서 출력되는 과정.
브라우저는 렌더링을 수행하는 렌더링 엔진을 가지고 있음.
<렌더링 엔진>
크롬 | 블링크(Blink) |
사파리 | 웹킷(Webkit) |
파이어폭스 | 게코(Gecko) |
브라우저를 통해 웹 사이트에 접속하면,
서버로 부터 HTML, CSS 등 웹 사이트에 필요한 리소스를 다운로드받음.
1. DOM / CSSOM 트리 생성
브라우저가 렌더링 하기 위해서
HTML 코드는 DOM, CSS는 CSSOM 트리를 생성해야 함.
** DOM 이란 무엇인지?
document object model의 약자이며, 한글로는 "문서 객체 모델"이라고 부름.
DOM은 객체 지향 모델로써 구조화된 문서를 표현하는 방식.
|
브라우저는 HTML 마크업을 처리 할 때 마다 위의 모든 단계를 수행함.
즉,
bytes -> character -> token -> node -> DOM 의 과정을 통해 DOM트리를 생성한다.
CSSOM(CSS Object Model)을 생성하는 방법도 DOM과 동일하다.
bytes -> character -> token -> node -> CSSOM 의 과정을 통해 CSSOM 트리를 생성한다.
2. 렌더링 트리 생성
DOM 트리와 CSSOM 트리가 만들어지면, 그 둘을 결합한 '렌더링 트리'를 생성
렌더링 트리에는 페이지를 렌더링 하는데 필요한 노드만 포함됨.
3. 레이아웃(Layout) 단계
레이아웃 단계에서는 뷰포트 내에서 각 요소의 정확한 위치와 크기를 정확하게 캡처하는 Box 모델이 출력됨.
-> 모든 상대적인 측정값은 절대적인 값인 px(픽셀)단위로 변환됨.
** 뷰포트 (viewport)
모바일 브라우저들은 viewport로 알려진 가상의 window상에 페이지를 렌더링한다.
즉, 뷰포트 = 화면 Display상의 표시 영역을 뜻한다.
4. 페인팅 단계
마지막으로 렌더링 트리의 각 노드를 화면의 실제 픽셀로 변환함.
전 단계이누레이아웃 단계에서 모든 계산이 완료가 되면, 화면에 요소들을 그리는데,
이 단계를 “페인팅” 또는 “래스터화”라고 합니다.
래스터화(영어: Rasterisation 또는 Rasterization)는 벡터 그래픽 형식(쉐이프)으로 설명된 이미지를 래스터 이미지(픽셀, 점 또는 선 시리즈, 함께 표시될 때 도형을 통해 표현된 이미지를 생성하는 작업)로 변환하는 작업) cr: https://ko.wikipedia.org/wiki |
+) 추후 수정 예정 - 읽어보기.
REFERENCE
https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%84%9C_%EA%B0%9D%EC%B2%B4_%EB%AA%A8%EB%8D%B8
문서 객체 모델 - 위키백과, 우리 모두의 백과사전
문서 객체 모델(DOM; Document Object Model)은 XML, HTML 문서의 각 항목을 계층으로 표현하여 생성, 변형, 삭제할 수 있도록 돕는 인터페이스이다. W3C의 표준이다. W3C의 표준화한 API들의 기반이 된다. DOM
ko.wikipedia.org
https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction
DOM 소개 - Web API | MDN
이 문서는 DOM에 대한 개념을 간략하게 소개하는 문서이다: DOM 이 무엇이며, 그것이 어떻게 HTML, XML (en-US) 문서들을 위한 구조를 제공하는지, 어떻게 DOM 에 접근하는지, API 가 어떻게 사용되는지에
developer.mozilla.org
브라우저의 렌더링 과정
렌더링이란 HTML,CSS, 자바스크립트 등 개발자가 작성한 문서가 브라우저에서 출력되는 과정을 말합니다.
medium.com
'WEB STUDY > ETC.' 카테고리의 다른 글
etc. study planner (0) | 2021.11.24 |
---|---|
tmp) style.css (0) | 2021.10.19 |
etc) HTML vs XML (0) | 2021.10.12 |
etc) HTTP - GET 방식 vs POST 방식 (0) | 2021.10.12 |
etc) URL(Uniform Resource Link) vs. URI(Uniform Resource Identifier) (0) | 2021.10.12 |