티스토리 뷰
핵심
사용하지 않는 css를 제거하고 css가 렌더링을 차단하지 않게 설정한다
사용하지 않는 css 제거하는 방법
구글 light house 활용하기
문제
Remove unused css 이슈 발생
해결방법
- vertical dots에서 coverage tab을통해 unused css를 찾을 수 있다.
- purgecss를 통해 빌드 시 사용하지 않는 클래스들을 삭제한다.
추후에 자세한 사용방법에 대해 알아봐야겠다
렌더 블록킹 리소스 제거
defer
- html parsing 중단없이 빠르게 진행하며 script 다운로드를 동시에 실행한다
- HTML parsing이 중단없이 진행되기 때문에 화면에 나타나는 것이 빠르다
- script 실행은 parsing이 끝난 후에 실행된다.
async
- 다운로드가 끝나면 스크립트를 실행하며 html parsing은 끝난다.
- html parsing이 모두 끝난 뒤에 실행해도 괜찮은 경우 async를 사용할 수 있다.
link 태그 최적화하기
css 로딩 속도를 올리면 FCP를 향상 시킬 수 있다.
- 디바이스에 따라 필요한것만 로딩할 수 있게 해주면 좋다.
- desktop
- mobile
<link role="stylesheet" media="(max-width: 1024px)" /> <link role="stylesheet" media="(max-width: 768px)" />
FCP: first contentful paint 첫번째 내용물이 그려지는 시점, 내용물이 그려지는 시점이 느려지면 사용자입장에서는 브라우저가 느리다고 인식한다.
태블릿과 모바일, 데스크톱을 나누어서 필요한것만 받을 수 있게 하였다.
<link rel="preload" onload="this.onload=null;this.rel='styleshhet'" />
- preload를 사용하면 css를 지연시킬 수 있다.
- 모달, 팝업
- 스크롤 밑에 있는 컴포넌트의 경우
- 다운로드만 진행하고 실행은 하지 않는다.
- 해당 css가 필요할 때 실행
출처
The RED : 견고한 UI 설계를 위한 마크업 가이드 by 정찬명
'프론트엔드' 카테고리의 다른 글
브라우저 렌더링 최적화 - CLS (0) | 2023.03.09 |
---|---|
[프론트엔드] 크로스 브라우징 (0) | 2023.03.08 |
[프론트엔드] 이미지 최적화하기 (0) | 2023.03.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 표현 가능한 이진트리
- 서버사이드 error handling
- 미로탈출 명령어
- useCallback과 useMemo 사용
- React useMemo
- serverless nestjs
- storybook scss import
- 가장 긴 짝수 연속한 부분 수열
- storybook scss이슈
- 백준 22862
- 1600 파이썬
- 불량 사용자 자바스크립트
- nextjs errorboundary
- javascript
- React useCallback
- 에러핸들링
- node 버전 마이그레이션
- storybook react is not defiend 해결
- CSS
- suspense 장점
- nextjs 에러핸들링
- 관심사 분리하기
- node version yarn berry
- 서비스 디자인 패턴
- 자바스크립트
- react suspense
- serverless 배포
- 선언적 UI
- 백준 1600번
- nestjs 배포하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함