Skip to content

5주차 멘토링

Seyoung Kim edited this page Dec 9, 2022 · 2 revisions

렌더링 최적화

context 많이 쓰시고, 함수나 값을 memoization하는 편

브라우저 렌더링 과정

Populating the page: how browsers work - Web performance | MDN

면접 단골(?) 질문

퍼포먼스 향상

  1. Latency → fast load
  2. 메인 스레드 작업 최소화

브라우저 싱글 스레드. 요청 많아지면 누적, 버벅

메인 스레드의 일을 최소화하는것이 싱글 스레드 기반의 브라우저에서 퍼포먼스를 향상시킬 수 있는 방법

Parsing

DOM tree

script 안에 있는 작업들은 비용이 커서 병목 현상이 발생할 수 있다.

→ script는 제일 마지막에 넣어라

Preload scanner

이미지, 폰트, css, js의 요청을 보냄

DOM tree를 다 그리고 요청을 보내지 않고 조금 일찍 보냄

CSSOM

조부모 → 부모 → 자식 스타일링

트리구조이기 때문에 위에서부터 타고타고 스타일 속성 적용

조부모에서 해도 부모에서 덮어씌울 수 있고 또 자식도 덮어씌울 수 있음.

그래서 제일 가까운 CSS가 적용됨

Render

Style

{ display: none } — Render tree에 포함

{ visibility: hidden } — X

➕ cascade

Layout

width, height, size, position

Reflow

부모 요소에서 레이아웃이 변경되면 자식 요소들 변경

부모 요소 말고 자식요소들만 바뀔 수 있게 한다면?

이걸 어떻게 하냐구요 zㅋㅋㅋㅋㅋㅋㅋㅋ

최초 계산은 Layout → 그 이후에 일어나는 크기와 위치 계산은 Reflow

Painting

FCP

처음으로 Painting이 이루어질때까지 걸리는 시간

특정 properties나 element는 layer 분리

a.k.a opacity, transform

But. 메모리를 많이 잡아먹음 → TradeOff

Compositing

여러 layer들과 overwrapping된 것들을 합침

멘토님이 reflow를 줄였던 경험

최근에 현업에서 막 깊게 본 적은 없음

요구하는 기능을 만드는게 너무 빠듯 🥲

요즘 읽고 있는 책 - 프론트엔드 성능 최적화 가이드

Clone this wiki locally