위 강의를 보고 정리한 내용입니다.
URL과 URI
URL은 URI에 포함된다.
URI는 네트워크 상에서 자원을 식별하기 위한 문자열(식별자까지 포함)
URL은 네트워크 상의 자원의 위치를 나타내는 주소
결론적으로 요약하자면, URL과 URN은 URI의 종류이다.
그렇기에 모든 URL은 URI이고, 또한 모든 URN은 URI이다.
렌더링 엔진
URI를 통해 요청을 받아서 해당하는 데이터를 렌더링 하는 역할
렌더링 엔진이 하는일
1. Dom tree 구축
2. Render tree 구축
3. Render tree 배치
4. Render tree 그리기
DOM tree가 완벽하게 구축되고나서 Render tree가 배치,그려지는 순서가 아니고
DOM tree가 완성되는 중간중간 Render tree가 그려지는 병렬적인 실행
Dom tree 와 Render tree 구축 과정
1. html문서를 파싱하고 content tree 내부에서 tag들을 DOM node로 변환
2. css파일과 함께 모든 스타일 요소를 파싱 > 스타일 규칙이 적용된 CSSOM tree가 구성
3. DOM tree와 CSSOM tree가 만들어지면 화면에 렌더링 될 노드들만 포함하여 Render tree가 생성된다
webkit의 동작과정
webkit은 사파리에사 사용중인 브라우저 렌더링 엔진이다.
1. html을 파싱해서 DOM tree를 생성
html태그가 파싱되어 DOM tree가 생성되는데, 정확히는 DOM node의 tree형태를 이야기 함
html을 DOM tree로 바꾸는 이유 > javascript로 조작이 가능해져 동적 상호작용이 가능해진다.
html5에서는 <script>태그를 비동기로 처리하는 속성을 추가했다.
1. defer
: HTML 파싱이 완료된 후, JavaScript 코드의 실행이 시작된다
2. async
: HTML 파싱과 함께, 비동기로 JavaScript 파일을 불러온다.
> HTML파싱이 완료되지 않았더라도, 먼저 로딩되는 JavaScript파일부터 실행이 시작된다.
또한 이 때, HTML 파싱이 중단된다.
2. css를 파싱하여 스타일 규칙을 얻는다.
css파서가 DOM node에 대한 스타일 규칙을 가진 CSSOM를 생성한다.
3. 1번에서 생성한 DOM tree에 2번에서 생성한 CSSOM을 Attachment한다.
DOM tree를 구성하는 하나의 DOM node는 attach라는 method를 가지고 있는데,
attach를 실행하게 되면 DOM node가 render object를 생성한다.
render object는 render tree의 구성요소로써, 자기 자신과 자기 자식들을 다 알고있다.
모든 DOM node가 전부 render object로 생성되는것은 아니다 ( head 태그, display :none 등은 생성되지 않음 )
<html>,<body>태그도 render object로 구성되는데, render tree root로써 render view라고 불린다.
4. 구축한 render tree를 배치한다.
최상위 render object부터 시작해
화면의 왼쪽 위부터 render object에 해당하는 DOM node를 그려나간다.
5. 배치가 끝난 render tree를 그린다.
render tree 탐색 후 해당하는 render object의 paint method롤 호출해 render tree를 화면에 그린다.(ui 백엔드가 담당)
✔️ 참고
https://cyk0825.tistory.com/12
https://curryyou.tistory.com/342
'FrontEnd' 카테고리의 다른 글
실행 컨텍스트(Execution Context)의 정의와 종류 (0) | 2022.05.02 |
---|---|
[Browser Rendering] - 3. 브라우저 렌더링 최적화 (0) | 2022.04.04 |
[Browser Rendering] - 1. 브라우저 구성 요소, 렌더링 과정 (0) | 2022.03.29 |
a태그의 target="_blank"와 rel="noopener noreferrer" (0) | 2022.03.28 |
package.json의 scripts의 활용 ( &&, pre-, post- ) (0) | 2022.02.17 |