일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 프론트엔드
- React
- Promise
- flutter 오류
- 웹 성능
- dom
- #프론트엔드개발
- flutter android sdk
- 코드리뷰
- 웹 개발
- aondroid toolchain 오류
- 자바스크립트
- css
- macos flutter
- 프라미스체이닝
- 웹 성능 최적화
- 자바스크립트공부
- jsx
- Node.js
- html
- 퍼포먼스 최적화
- cmdline-tools missing
- 컴포넌트
- 패키지 스크립트
- 국제화(i18n)
- JavaScript
- 풀스택 개발
- fe
- 웹개발
- 비동기프로그래밍
- Today
- Total
sodol-dotcom
브라우저의 렌더링 과정(Critical Rendering Path) 본문
브라우저의 렌더링 과정(Critical Rendering Path)은 웹 페이지를 사용자에게 표시하기 위해 브라우저가 데이터를 처리하고 시각적으로 표현하는 일련의 단계이다. 이 과정을 이해하면 웹페이지가 어떻게 만들어지는지, 그리고 최적화할 부분이 어디인지 알 수 있다.
1. HTML 다운로드
사용자가 웹페이지를 요청하면 브라우저는 서버에서 HTML 파일을 다운로드한다. 이 파일은 웹 페이지의 구조를 정의한다.
2. HTML 파싱
다운로드한 HTML 파일을 읽어들여 DOM(Document Object Model)을 생성한다. DOM은 웹페이지의 각 요소를 객체로 표현한 구조이다. 예를 들어, <h1>
태그는 DOM에서 하나의 객체로 만들어진다.
3. CSS 다운로드
HTML을 파싱하면서 브라우저는 CSS 파일(스타일 시트)도 찾아 다운로드한다. CSS는 웹 페이지의 스타일을 정의한다.
4. CSS 파싱
다운로드한 CSS 파일을 읽어드려 CSSOM(CSS Object Model)을 생성한다. CSSOM은 스타일 규칙을 객체로 표현한 구조이다. 이 단계에서는 각 요소에 적용될 스타일을 정리한다.
5. 렌더 트리 생성
DOM과 CSSOM이 준비되면 브라우저는 렌더 트리를 만든다. 렌더 트리는 실제로 화면에 표시될 요소와 그 스타일의 정보를 포함한다. 예를 들어, <h1>
태그가 보이도록 설정된 경우에만 렌더 트리를 포함한다.
6. 레이아웃 계산
렌더 트리가 생성되면 브라우저는 각 요소의 정확한 위치의 크기를 계산한다. 이 과정을 레이아웃(Layout)이라고 하며, 각 요소가 화면에서 어디에 위치해야 하는지를 결정한다.
7. 페인팅
레이아웃이 완료되면 브라우저는 실제로 화면에 요소를 그리는 단계인 페인팅(Painting)을 수행한다. 이 단계에서는 요소의 색상, 텍스트 이미지 등을 그린다.
8. 합성
마지막으로 브라우저는 여러 레이어를 합쳐 최종적으로 화면에 표시한다. 이 과정을 합성(Compositioning)이라고 하고 여러 개의 레이어를 조합하여 최종 이미지를 만든다.
최적화 포인트
이 과정을 이해하면 최적화할 수 있는 부분을 알 수 있다. 예를 들어:
- CSS 파일을 병합하거나 압축하여 다운로드 시간을 줄이기
- HTML과 CSS의 순서를 조정하여 필요한 요소를 먼저 로드하도록 하기
- 자바스크립트 로딩 방식을 최적화하여 렌더링 차단을 최소화하기
이러한 최적화는 웹 페에지의 로드 속도를 개선하고 사용자 경험을 향상시키는데 큰 도움이 된다고 한다.
'Fundamentals > Browser Mechanics' 카테고리의 다른 글
Reflow & Repaint (0) | 2024.10.02 |
---|---|
브라우저에서 어떻게 DOM으로 변환되는지 (0) | 2024.09.09 |
JavaScript와 HTML의 상호작용 그리고 DOM (0) | 2024.09.09 |