Lighthouse๋?
์ฌ์ดํธ๋ฅผ ๊ฒ์ฌํ์ฌ ์ฑ๋ฅ ์ธก์ ์ ํ ์ ์๋ ๋๊ตฌ์ด๊ณ , ๊ฐ์ ์ฑ ๋ ์ ๊ณตํด์ฃผ๋ ์๋ํ ํด์ด๋ค.
- ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ ์คํ์์ค์ด๊ณ , ์ฑ๋ฅ, ์ ๊ทผ์ฑ, PWA, SEO ๋ฑ์ ๊ฒ์ฌ ํ๋ค.
- Chorme DevTools, CLI, ๋ ธ๋ ๋ชจ๋ ๋ฑ ๋ค์ํ ๊ฒฝ๋ก๋ฅผ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- ๊ฒ์ฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ๋ฆฌํฌํธ๋ฅผ ์์ฑํด์ฃผ์ด, ์ ์๊ฐ ๋ฎ์ ์งํ๋ฅผ ํ๋์ ์์๋ณผ ์ ์๋ค.
1. ๊ตฌ๊ธ ๊ฐ๋ฐ์ ๋๊ตฌ์์ lighthouse ํญ์์ ๊ฒ์ฌ ๊ฐ๋ฅ
2. Node CLI ์์ ์คํํ๊ธฐ
- ์ ์ญ ๋ชจ๋๋ก ์ค์น
npm install -g lighthouse
- ๊ฒ์ฌ ์คํ
lighthouse <url>
- ๋ชจ๋ ์ต์ ๋ณด๋ ๋ช ๋ น์ด
lighthouse --help
๐ ํฌ๋กฌ์์ ๋ณธ ๋ฐฑ์ค ํ์ด์ง์ Ligthhouse ๐
๐ ํฌ๋กฌ์์ ๋ณธ ์ ์ก๊ฐ ํ์ด์ง์ Ligthhouse ๐
โป Lighthouse ๋ถ์ ๊ฒฐ๊ณผ ํญ๋ชฉ
1. performance = ์น ์ฑ๋ฅ ์ธก์
- ํ๋ฉด์ ์ฝํ ์ธ ๊ฐ ํ์๋๋๋ฐ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง
- ํ๋ฉด์ ํ์๋ ํ ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ธฐ๊น์ง ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง
- ํ๋ฉด์ ๋ถ์์ ํ ์์์ ์ ๋ฌด
2. accessibility = ์น ์ ๊ทผ์ฑ์ ์ ๊ฐ์ถ๊ณ ์๋์ง ํ์ธ
- ๋์ฒด ํ ์คํธ๋ฅผ ์ ์์ฑํ๋์ง
- ๋ฐฐ๊ฒฝ์๊ณผ ์ฝํ ์ธ ์์์ ๋๋น๊ฐ ์ถฉ๋ถํ์ง
- ์ ์ ํ WAI-ARIA ์์ฑ์ ์ฌ์ฉํ๋์ง
3. best practice = ์น ํ์ค ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์ธ
- HTTPS ํ๋กํ ์ฝ ์ฌ์ฉํ๋์ง
- ์ฝ์ ์ฐฝ์ ์ค๋ฅ๊ฐ ํ์๋๋์ง
4. SEO = ๊ฒ์ ์์ง ์ต์ ํ๊ฐ ์ ๋์ด์๋์ง ํ์ธ
- ์ ํ๋ฆฌ์ผ์ด์ ์ robots.txt๊ฐ ์ ํจํ์ง
- <meta> ์์๋ ์ ์์ฑ๋์ด ์๋์ง
- ํ ์คํธ ํฌ๊ธฐ๊ฐ ์ฝ๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์๋์ง
5. PWA (progressive web app) = ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ ์ ์๋ํ๋์ง ํ์ธ
- ์ฑ ์์ด์ฝ์ ์ ๊ณตํ๋์ง
- ์คํ๋์ ํ๋ฉด์ด ์๋์ง
- ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฝํ ์ธ ๋ฅผ ์ ์ ํ๊ฒ ๋ฐฐ์นํ๋์ง
๐ ์ ์ก๊ฐ ํ์ด์ง์ Ligthhouse performance ์ธก์ ๋ฉํธ๋ฆญ ๐
1. First Contentful Paint (FCP)
์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ ์ํ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ DOM ์ปจํ ์ธ ์ ์ฒซ๋ฒ์งธ ๋ถ๋ถ์ ๋ ๋๋งํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ๋ค. (์ฌ์ฉ์๊ฐ ๊ฐ์งํ๋ ํ์ด์ง์ ๋ก๋ฉ ์๋๋ฅผ ์ธก์ )
FCP๊ฐ 1.8์ด ์ดํ์ด๋ฉด UX ์ข์.
2. Largest Contentful Paint (LCP)
๋ทฐํฌํธ๋ฅผ ์ฐจ์งํ๋ ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ์ ๋ ๋ ์๊ฐ์ ์ธก์
LCP 0~2.5 fast
LCP 2.5~4 moderate
LCP 4~ slow
3. Speed Index
ํ์ด์ง๋ฅผ ๋ก๋ํ๋ ๋์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ฝํ ์ธ ๊ฐ ์๊ฐ์ ์ผ๋ก ํ์๋๋์ง ์ธก์
0~3.4 fast
3.4~5.8 moderate
5.8~ slow
4. Time to interactive (TTI)
ํ์ด์ง๊ฐ ๋ก๋๋๋ ์์ ๋ถํฐ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ์์ ๊น์ง์ ์๊ฐ ์ธก์
0~3.8 fast
3.9~7.3 moderate
7.3~ slow
5. Total Blocking Time (TBT)
ํ์ด์ง๊ฐ ์ ์ ์ ์ํธ์์ฉํ๊ธฐ๊น์ง์ ๋งํ์๋ ์๊ฐ์ ์ธก์
(FCP, TTI ์ฌ์ด์ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์์ ๋ค์ ๋ชจ๋ ๊ธฐ๋กํด์ TBT ์ธก์ ํ๋ค. )
6. Cumulative Layout Shift (CLS)
์ฌ์ฉ์์๊ฒ ์ปจํ ์ธ ๊ฐ ํ๋ฉด์์ ์ผ๋ง๋ ๋ง์ด ์์ง์ด๋์ง ์์นํํ ์งํ
๐ ๋ฐฑ์ค ํ์ด์ง์ Performance์ Opportunities ํญ๋ชฉ ๐
๐ ์ ์ก๊ฐ ํ์ด์ง์ Performance์ Opportunities ํญ๋ชฉ ๐
๊ฐ์ฅ ๋ง์ ์๊ฐ์ด ์์๋ ํญ๋ชฉ
Reduce unused JavaScript
=> ์ฌ์ฉํ์ง ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋๋ฐ ํ์ํ์ง ์์ ๋ฆฌ์์ค์ด๋ค. ๋์ด์ ์ฌ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ธ๋ชจ์๋ ๋ฆฌ์์ค๋ ์ ๋ฆฌํด์ผํ๋ค.
ํ์ด์ง๋ฅผ ๋ ๋นจ๋ฆฌ ๋ก๋ํ๊ธฐ ์ํด์๋ ํ์ ๋ฆฌ์์ค์ธ HTML ์ฝ๋๋ง ๋ ๋๋ง ํด์ผํ๋ค.
"unused JavaScript"๋?
1. ์ค์ํ์ง ์์ JS - ์น ํ์ด์ง์ ์๋จ์ ์ฝํ ์ธ ์ ์ฌ์ฉ๋์ง ์์ง๋ง ๋ค๋ฅธ ๊ณณ์์ ์ฌ์ฉ๋ ์ ์๋ค.
2. ์ฌ์ฉํ์ง ์๋ JS - ๋ ์ด์ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ์ผ์์ ์ผ๋ก ์ฌ์ฉ๋ JS ์ฝ๋
์์ ๊ณต์ ๋ฒํผ๊ณผ ๊ฐ์ ์๋ ํํฐ ์ฝ๋๋ ํ๋ฌ๊ทธ์ธ ๋๋ ํ์ด์ง ๋น๋๋ก ์ธํด ๋ฐ์ํ๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity.
์ฌ์ฉํ์ง ์๋ JavaScript๋ฅผ ์ค์ด๊ณ ๋คํธ์ํฌ ํ๋์ ์ฌ์ฉ๋๋ ๋ฐ์ดํธ๋ฅผ ์ค์ด๋ ๋ฐ ํ์ํ ๋๊น์ง ์คํฌ๋ฆฝํธ ๋ก๋๋ฅผ ์ฐ๊ธฐํ๋ค.
- ์น์ฌ์ดํธ๊ฐ WordPress์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด์ ์ฌ์ฉํ์ง ์๋ JS๋ฅผ ์ ๊ฑฐ๋ ๋นํ์ฑํ ํ ์ ์๋ค.
https://ko.wordpress.org/plugins/wp-asset-clean-up/
- Chorme ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ์ฌ์ฉํ์ง ์๋ JS ๊ฐ์งํ๊ณ ๋ถํ์ํ ํ์ผ ์ญ์ ํ๊ธฐ
[Chorme ๊ฐ๋ฐ์ ๋๊ตฌ] - More tools - Coverage
- [Chorme ๊ฐ๋ฐ์ ๋๊ตฌ] - Lighthouse
์ฌ์ฉํ์ง ์์ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋๋ฐ ๋์์ ์ฃผ๋ ๋น๋ ๋๊ตฌ ์์๋ณด๊ธฐ
https://bundlers.tooling.report/
(์ฝ๋ ๋ถํ , ๋ฏธ์ฌ์ฉ ์ฝ๋ ์ ๊ฑฐ, ์ฌ์ฉํ์ง ์์ ์ฝ๋ ์ ๊ฑฐ)
Serve images in next-gen formats
์ฐจ์ธ๋ ํ์์ ์ด๋ฏธ์ง ์ ๊ณต
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption.
WebP ๋๋ AVIF ์ด๋ฏธ์ง ํฌ๋งท ์ฌ์ฉํ๊ธฐ
=> WebP ๋ฐ AVIF์ ๊ฐ์ ์ด๋ฏธ์ง ํ์์ ์ข ์ข PNG ๋๋ JPEG๋ณด๋ค ๋ ๋์ ์์ถ์ ์ ๊ณตํ๋ฏ๋ก ๋ ๋น ๋ฅธ ๋ค์ด๋ก๋์ ๋ ์ ์ ๋ฐ์ดํฐ ์๋น๋ฅผ ์๋ฏธํ๋ค.
WebP ๋ฐ AVIF๋ JPEG, PNG ํ์๋ณด๋ค ์ฉ๋์ ๊ฐ์์ํฌ ์ ์๋ ์๋กญ๊ฒ ๋ฑ์ฅํ ์ด๋ฏธ์ง ํฌ๋งท์ด๋ค.
์ต๊ทผ์ ๋ฑ์ฅํ ํฌ๋งท์ด๊ธฐ ๋๋ฌธ์, ์์ง ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ํธํ๋์ง ์๋๋ค๋ ๋จ์ ์ด ์๋ค.
ํ์ง๋ง, ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ด๋ฏธ์ง ํธํ์ฑ์ ํ์ ํด์ ์ด๋ฏธ์ง ํ์ผ์ ๋ถ๊ธฐํ ํ์์์ด HTML์ <picture>ํ๊ทธ*๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
* img ์์์ ๋ค์ค ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ์ํ ์ปจํ ์ด๋๋ก ์ฌ์ฉ
<picture>
<source srcset="logo.webp" type="image/webp">
<img src="logo.png" alt="logo">
</picture>
โฅ ๋ง์ฝ ์ ์ํ ๋ธ๋ผ์ฐ์ ์์ <source>ํ๊ทธ ๋ด์ srcset์ ์ ์ํ WebP ํฌ๋งท์ ์ง์ํ์ง ์๋๋ค๋ฉด ํด๋น <source> ํ๊ทธ๋ ๋ฌด์๋๋ค.
๐ ๋ช ๋ น์ค์ ์ฌ์ฉํด์ WebP ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ ๐
https://web.dev/codelab-serve-images-webp/
์ฐธ๊ณ )
https://sitechecker.pro/site-audit-issues/remove-unused-javascript/
https://web.dev/uses-webp-images/?utm_source=lighthouse&utm_medium=devtools