웹 브라우저는 웹 페이지를 보여주기 위해 HTML, CSS, JavaScript 등의 웹 기술을 해석하고 처리하는 소프트웨어입니다. 이를 위해서는 웹 브라우저가 웹 페이지를 렌더링하는 과정을 이해해야 합니다.
HTML 파싱
웹 브라우저는 웹 페이지의 HTML 코드를 파싱하여 문서 객체 모델(Document Object Model, DOM)을 생성합니다. 이 DOM은 웹 페이지의 구조와 내용을 표현하는 트리 구조입니다.
CSS 파싱 및 스타일 계산
웹 브라우저는 CSS 코드를 파싱하여 스타일 시트 객체 모델(Cascading Style Sheets Object Model, CSSOM)을 생성합니다. 이 CSSOM은 스타일 정보를 나타내는 트리 구조입니다. 이후에는 HTML 문서 객체와 CSS 스타일 정보를 결합하여 렌더링 트리(Render Tree)를 생성합니다. 이 렌더링 트리는 실제로 화면에 출력되는 요소를 포함하며, 논리적인 구조와 시각적인 스타일을 결합한 것입니다.
레이아웃 계산
웹 브라우저는 렌더링 트리를 기반으로 레이아웃 계산을 수행합니다. 이 과정에서 브라우저는 각 요소의 크기와 위치를 계산합니다.
페인팅
레이아웃 계산 후에는 실제로 화면에 출력되는 작업인 페인팅(painting)이 수행됩니다. 이 과정에서는 레이아웃 계산으로 결정된 위치에 따라 요소가 화면에 그려지게 됩니다.
이러한 과정을 거쳐 웹 브라우저는 최종적으로 웹 페이지를 출력하게 됩니다. 브라우저가 웹 페이지를 렌더링하는 과정에서는 여러 가지 최적화 기술이 사용되며, 이를 통해 빠른 화면 출력과 원활한 사용자 경험을 제공하게 됩니다.
프론트 엔드 공부에 ChatGPT를 이용해보자!
'개발관련 > 프론트엔드 지식' 카테고리의 다른 글
OWASP Top 10: 웹 애플리케이션 보안 취약점 (0) | 2023.07.09 |
---|---|
프론트 엔드 면접 관련 공부 (0) | 2023.05.11 |
Next.js 이 4가지는 뭐가 다를까요? 🤔 getInitialProps / getServerSideProps / getStaticPaths / getStaticProps (0) | 2023.04.25 |
SSR vs SSG: Next.js의 렌더링 대결! 어떤 것을 택할까? (0) | 2023.04.21 |
CORS에 대한 모든 것 (1) | 2023.04.04 |