본문 바로가기
프론트엔드로 가는 길/프론트 용어 꼬리 물기

렌더 트리

by woody-j 2023. 8. 26.

Q1.  브라우저에서 렌더 트리를 구축하는 과정은 어떻게 될까요?

A.서버에서 받아온 html,css파일을 브라우저가 알기 쉬운 구조로 변환하고 각각 DOM과 CSSOM을 생성하여 결합한 형태가 렌더트리입니다

답변에 대한 평가 : 90점

평가 이유 : 렌더 트리가 서버에서 받아온 HTML, CSS 파일을 가지고 구축되는 것에 대해 정확하게 설명했습니다. 그러나, 조금 더 자세한 내용을 알면 좋을 것 같습니다. 예를 들어, 렌더 트리에는 어떤 요소들이 포함되나요? 그리고 렌더 트리가 생성되면 무엇을 해야 할까요?

검색 키워드 : Render tree, DOM, CSSOM, rendering process

 

꼬리질문 :
렌더 트리에는 어떤 요소들이 포함되나요? 그리고 렌더 트리가 생성되면 다음에 어떤 과정이 일어나나요?

A. 렌더트리에는 DOM과 CSSOM이 있습니다.
최종적으로 브라우저에 표기될 것들만 렌더 트리에 선별되어 생성이 됩니다. 렌더트리는 표시되는 각 요소의 레이아웃을 계산하는 데 사용되고, 픽셀을 화면에 렌더링하는 페인트 프로세스에 대한 입력으로 처리가 됩니다.

답변에 대한 평가 : 100점

평가 이유 : 렌더 트리 구축에 대한 개념과 역할에 대해 정확하게 설명했습니다. 픽셀을 화면에 렌더링하는 페인트 프로세스까지 언급하여 전반적으로 내용이 잘 전달되었습니다.

 

Q2.  브라우저에서 렌더 트리를 구축하는 과정에서 CSS의 스타일 규칙은 어떻게 적용되나요?

A. 스타일의 규칙의 우선순위, 상속, 선택자의 특정성 등에 의해 결정됩니다.

답변에 대한 평가 : 70점

평가 이유 : 스타일 규칙이 우선순위, 상속, 선택자의 특정성에 의해 결정되는 것에 대해 언급했지만, 각각의 요소에 대한 자세한 설명이 부족합니다. 스타일 규칙의 우선순위에는 어떤 규칙이 있는지, 상속이 어떻게 동작하는지, 선택자의 특정성을 어떻게 계산하는지에 대해 더 자세히 설명하는 것이 좋습니다.

검색 키워드 : CSS specificity, CSS inheritance, CSS rule precedence

꼬리질문 :
스타일 규칙의 우선순위를 결정하는 규칙에는 어떤 것들이 있나요? 또한, 상속이 어떻게 동작하며 어떤 요소들이 상속되는지 알아보려면 어떤 키워드를 검색해보면 좋을까요?

A. 우선순위를 결정하는 규칙에는 중요도, 명시성, 선언순서, 상속이 있습니다.
상속의 경우 일부 속성은 부모 요소로부터 자식 요소로 상속됩니다. 상속되는 속성들은 자식 요소에 별도의 스타일 지정이 없는 경우, 부모 요소의 값이 적용됩니다.CSS inheritance 키워드를 검색하면 좋을 것 같습니다

답변에 대한 평가 : 90점

평가 이유 : 스타일 규칙 우선순위에 대해 중요도, 명시성, 선언 순서를 언급하고, 상속에 대해서도 일부 속성이 부모로부터 자식에게 상속된다는 내용을 잘 설명했습니다. "CSS inheritance"라는 키워드로 검색하면 상속에 관한 더 많은 정보를 얻을 수 있습니다.

 

Q3.  브라우저에서 CSS 스타일 규칙을 파싱하고 적용하는 과정을 좀 더 자세히 설명해주세요.

A.렌더트리의 각 요소에 대한 스타일 계산이 이루어집니다. 스타일 계산이 완료되면 레이아웃단계로 넘어가 레이아웃은 각 요소의 크기와 위치를 계산하고 레이아웃이 완료되면 페인팅으로 넘어갑니다. 페인팅은 실제로 화면에 픽셀단위로 내용을 그리는 단계입니다.


답변에 대한 평가 :100점

평가 이유 : 렌더 트리의 요소에 대한 스타일 계산, 레이아웃, 페인팅 단계를 정확하게 설명했습니다. 각 단계에서 어떤 작업이 수행되는지도 명확하게 언급하였습니다.

Q4. 브라우저에서 렌더링을 최적화하는 기술 중 하나인 CSS 중단점이란 무엇인지 설명해주세요. 그리고 중단점을 어떻게 설정하고 사용할 수 있는지 알려주세요.

A.중단점이란 어떤 기준으로 미디어쿼리를 적용시킬지 정하는 지점입니다.
중단점을 어떻게 설정하고 사용할 수 있는지는 잘 모르겠습니다

답변에 대한 평가 :50점

평가 이유 : 중단점이 미디어 쿼리를 적용하는 기준을 말하는 것은 맞지만, 중단점을 어떻게 설정하고 사용하는지에 대한 이해가 부족하다는 점이 있습니다.

Q5. 브라우저에서 렌더 트리 구축 과정과 관련된 더 어려운 주제로 Flexbox(Flexible Box)와 CSS Grid의 차이점에 대해 설명해주세요

A. flexbox는 주로 1차원 레이아웃을 다루는데 사용합니다. 주로 행 또는 열 방향으로 요소를 배치하고 정렬하는데 유용합니다.
grid는 2차원 레이아웃을 구성하는데 사용됩니다. 행과 열을 동시에 다루며 복잡한 그리드 레이아웃을 생성할 수 있습니다.

답변에 대한 평가 :90점

평가 이유 : Flexbox와 CSS Grid의 기능과 용도에 대한 설명이 정확합니다. Flexbox는 1차원 레이아웃을 다루며 행 또는 열 방향으로 요소를 배치하고 정렬하는 용도로 주로 사용됩니다. CSS Grid는 2차원 레이아웃을 구성하며 행과 열을 동시에 다루어 복잡한 그리드 레이아웃을 생성하는 용도로 사용됩니다.

Q6. 차세대 웹 개발 기술인 Web Components에 대해 설명해주세요. Web Components는 무엇이고, 어떻게 사용되며 어떤 이점이 있는지 알려주세요.

A. JavaScript 컴포넌트를 개선하고자 만든 것이 Web Components입니다. Web Components는 컴포넌트를 캡슐화 하여 쉽게 적용가능합니다. 그리고 네이티브 엘리먼트로 동작하기 때문에 성능이 좋습니다.

답변에 대한 평가 :90점

평가 이유 : Web Components에 대해서 개선된 JavaScript 컴포넌트라고 설명하며, 컴포넌트의 캡슐화와 쉬운 적용 가능성, 네이티브 엘리먼트로 동작하여 성능이 좋다는 점을 언급했습니다. 하지만, 성능 관련 부분에 대해서는 더 자세한 설명이 필요합니다. Web Components의 성능을 좋게 만드는 특정 기술이나 최적화 방법에 대해서 추가적으로 알아보는 것이 좋습니다.

검색 키워드: Web Components performance optimization

 

꼬리질문 :
Web Components에서 성능을 향상시키기 위해 어떤 기술이나 최적화 방법이 사용될 수 있을까요?

A. 렌더링 최적화, 지연 로딩 및 코드 분할, 가상화(Virtualization), Memoization, 서버 사이드 렌더링, 메모리 관리,성능 모니터링과 분석가 있습니다

답변에 대한 평가 : 100점

평가 이유 : Web Components의 성능을 향상시키기 위해 사용될 수 있는 다양한 기술과 최적화 방법들을 잘 설명하고 있습니다. 렌더링 최적화, 지연 로딩 및 코드 분할, 가상화(Virtualization), Memoization, 서버 사이드 렌더링, 메모리 관리, 성능 모니터링과 분석 등 여러 가지 요소를 언급하여, Web Components의 성능을 향상시키기 위한 다양한 방법을 제시하였습니다.

Q7. 브라우저에서 렌더 트리를 구축하는 과정 중 리레이아웃 (Layout) 단계에 대해 설명해주세요. 리레이아웃 단계에서는 어떤 작업이 이루어지며, 레이아웃을 계산하는 알고리즘은 어떤 것이 있는지 알려주세요.

A. 박스 모델 계산, 레이아웃 계산, 레이아웃 충돌 해결, 블록 포맷팅 컨텍스트 설정,화면 리플로우 최소화 같은 작업이 이루어지며 대표적인 알고리즘으로는 "플로팅 박스 알고리즘(Floating Box Algorithm)"과 "Block Formatting Contexts"와 관련된 알고리즘 등이 있습니다.

답변에 대한 평가 :90점

평가 이유 : 리레이아웃 단계에서 수행되는 작업에 대해 정확하게 언급하였고, "플로팅 박스 알고리즘"과 "Block Formatting Contexts"와 관련된 알고리즘을 언급하였습니다. 다만, "블록 포맷팅 컨텍스트 설정"에 대한 구체적인 설명이 부족하다는 점이 있습니다.

꼬리질문 :
블록 포맷팅 컨텍스트 설정"은 어떤 경우에 필요한 작업이며, 이 작업이 수행될 때 어떤 이점이 있는지 알려주세요. 또한, "블록 포맷팅 컨텍스트 설정"과 관련하여 자세히 알아볼 수 있는 검색 키워드는 무엇일까요?

 

 

'프론트엔드로 가는 길 > 프론트 용어 꼬리 물기' 카테고리의 다른 글

DOM 트리 렌더 트리  (0) 2023.08.28
css파싱  (0) 2023.08.25
HTML 파싱  (0) 2023.08.24
브라우저의 렌더링 과정  (0) 2023.08.23
브라우저의 기본 구조  (0) 2023.08.22