질문 : 브라우저 렌더링 과정에 대해 설명하세요.
-크루답변 :
1. 사용자가 브라우저를 통해 웹 사이트에 접속
2. Resource Downloading : 브라우저는 서버로부터 HTML, CSS, JavaScript와 같은 웹사이트에 필요한 리소스를 다운 받음
3. HTML DOM Tree 구축 : 렌더링 엔진은 전달받은 HTML 문서를 파싱(parsing)해 DOM(Document Object Model, 문서 객체 모델) 트리 형성
4. CSSOM Tree 구축 : 이어서 다운 받은 외부 CSS 파일과 함께 포함된 스타일 요소를 파싱(parsing)해 CSSOM Tree 형성
5. Render Tree 구축 : 만든 DOM 트리와 CSSOM 트리를 결합
6. Rayout : 각 요소를 어디에 배치할 지 결정
7. Paint : 레이아웃 과정이 끝나면 UI 백엔드에서 Render 트리를 화면에 그리기 시작하는 과정
꼬리질문 : 리플로우와 리페인트에 대해 설명하시오
어떤 *웹 인터랙션으로 인해 앞서 보았던 렌더링 과정의 레이아웃을 반복해 수행하는 것을 리플로우, 페인트 과정을 반복해 수행하는 것을 리페인트라고 합니다.
*웹 인터랙션이 뭐죠? 라는 꼬리 질문이 들어올 수 있습니다.
웹 인터랙션이란?
인터랙션은 정적인 화면이 아니라 움직임이 있는 있는 화면 및 액션 입니다.
예를 들어 화면에 있는 사물들을 터치하거나 기울이면 화면이 바뀌거나 안에 있는 사물들이 즉각 반응을 합니다. 그리고 언어도 선택할 수 있어서 다른 나라의 언어도 함께 배울 수 있고 단어는 물론 음성까지도 들으면서 텍스트를 읽을 수 있습니다. 화면에 강아지를 터치하면 멍멍대며, 강아지의 소리를 들을 수 있거나, 글에서 볼 수 있는 내용들이 그림으로 변형되어 화면에 펼쳐지며 이 화면에 있는 사물들이나 배경들을 터치해서 즉각 반응을 느낄 수 있는 것 등 다양한 예시가 있습니다.
즉 웹 상에서 움직임이 있거나 유저와 상호 작용을 할 수 있는 화면 및 액션을 웹 인터랙션이라고 합니다.
질문 : 브라우저 렌더링 방식에 대해 설명하세요.