티스토리 뷰
브라우저 원리
- HTML parsing → Dom 생성
- CSS parsing → CSSOM 생성
- DOM + CSSOM → render tree 셍성
- layout → 위치와 크기를 계산한다
- paint → 화면상에 실제 픽셀로 변환하여 레이어를 만든다, 색 채워넣기
- composite → 레이어를 합성하여 실제 화면에 나타낸다.
Reflow, Repaint
layout 과정과 paint과정이 자주 일어나게 되면 웹성능이 저하된다. layout과 print 과정을 피하는 방법에 대해 알아보자.
Reflow
정의
기존의 엘리멘트의 크기나 위치가 변경되는 경우 DOM 과정부터 모든과정을 다시 계산하는 과정
- 성능을 가장 떨어트리게 되는 부분이며 성능최적화가 가장 많이 일어나는 곳이다.
- width, height, font-size 등이 이에 해당되며 콘텐츠의 크기가 변경 될 수 있는 요에서 일반적으로 일어난다.
Repaint
정의
- 색이 변경 되는 경우에 해당 하며 Layout 과정을 생략하게 된다.
- background, border-style, box-shadow, color 등이 변경 되었을 때 Repaint 현상이 일어난다.
layout, paint 피하기
정의
layout과 paint 과정을 피하는 css property를 사용한다.
일반 적으로 transform, opacity가 해당된다.
엘리먼트들을 움직여야 하는 경우 animation과 transform을 많이 고려하게 되는데 일반적인 경우 transform을 이용하는 것이좋다.
transform의 경우 gpu 파워를 사용하고 실제 이동할 때 다른엘리먼트 요소에 피해가 가지않게 이동이 되기 때문에 reflow와 repaint 과정이 다시 일어나지 않는다.
- 성능 최적화에 많이 쓰인다. 쟁크현상이 발생 했을 때 사용하면 CPU 파워뿐만 아니라 GPU 파워를 사용하기 때문에 버벅이는 현상을 해결 할 수 있다.
- opacity와 transform이 이에 해당 된다.
쟁크현상은 미세하게 엘리먼트가 떨리는 현상이 발생하는데 성능이슈로 인해 발생하는 현상이다
reference
https://csstriggers.com/
웹성능 최적화 by 유동균
애니메이션 관찰방법
쟁크현상은 사실 세심하게 보지 않으면 관찰하기가 어려운 경우가 많다. performance 탭을 이용해서 cpu의 속도를 떨어뜨려 관찰해보면 좀 더 쉽게 발견 할 수 있다.
- performance tab
- cpu 6x slowdown 설정
'프론트엔드' 카테고리의 다른 글
캐시(cache) (0) | 2023.03.10 |
---|---|
브라우저 렌더링 최적화 - LCP (0) | 2023.03.09 |
브라우저 렌더링 최적화 - CLS (0) | 2023.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 가장 긴 짝수 연속한 부분 수열
- serverless nestjs
- nestjs 배포하기
- React useMemo
- 서비스 디자인 패턴
- React useCallback
- storybook scss이슈
- 미로탈출 명령어
- serverless 배포
- 서버사이드 error handling
- nextjs 에러핸들링
- CSS
- node 버전 마이그레이션
- storybook react is not defiend 해결
- 에러핸들링
- 자바스크립트
- 불량 사용자 자바스크립트
- 표현 가능한 이진트리
- 1600 파이썬
- storybook scss import
- node version yarn berry
- useCallback과 useMemo 사용
- suspense 장점
- 선언적 UI
- 관심사 분리하기
- react suspense
- 백준 22862
- 백준 1600번
- nextjs errorboundary
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함