Lighthouse v5.6๊ณผ ์๋ก์ด 6.0 (https://lighthouse-metrics.com/)์ ๋น๊ตํ ๋ ๋ด ์ฌ์ดํธ์์ ๋ฑ๋ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ์ ํ๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ฌ์ฉํ ์์๋ ์ ๋ณด๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ด ๋ณต์กํ ์ฌ์ดํธ์์๋ (์ฑ๋ฅ ์ธก๋ฉด์์) ~ 90์์ ~ 50์ผ๋ก ์ด๋ํฉ๋๋ค.
๋ด ๊ฐ๋จํ ์คํํฐ์์๋ ~ 98์์ ~ 80์ผ๋ก ๋ฎ์์ง๋๋ค.
์ด๊ฒ์ https://gatsby-starter-default-demo.netlify.app/ ๋๋ https://gatsby-v2-perf.netlify.app/ ๊ณผ ๊ฐ์ ์คํํฐ์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ www.gatsbyjs.org (~ 98์์ ~ 73) ๋๋ https://theme-ui.com (~ 90์์ ~ 75)์์ ๋ฐ์ํฉ๋๋ค.
๋ด ์ฝ๋์์ 98-100 ๊ฐ์ ๊ตฌ๋์ ์ ๋ฌ์ฑํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋๊ธฐ ๋๋ฌธ์ (๋งค์ฐ ํ๋ณตํ๊ฒ ๋ง๋ค์์ต๋๋ค), ๊ฐ์ ํ ์ฌ์ง๊ฐ ๋ง์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค (์๋ง๋ ์์ต๋๋ค). ๋ฌด์จ ์ผ์ด ์๋์ง ์ฌ๊ธฐ์์ ๋ฌผ์ด๋ณด์ธ์
๊ฐ์ฌ
Lighthouse 6๋ ๋ช ๊ฐ์ง ์๋ก์ด ์งํ๋ฅผ ๋์ ํ๊ณ v5์์ ๋ค๋ฅธ ์งํ๋ฅผ ์ ๊ฑฐํ์ฌ ์ ์๊ฐ ๋ณ๊ฒฝ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด ๋ฌธ์์์๋ ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
https://web.dev/lighthouse-whats-new-6.0/
๋ํ ์ ์๋ฅผ ๋ถ์ํ๊ณ ์ด๋ค ์์ธ์ด ๊ฐ์ฅ ๋ง์ด ๊ธฐ์ฌํ๊ณ ์๋์ง ์ดํดํ๋ ๋ฐ ์ ๋ง ์ ์ฉํ ์ ์ ๊ณ์ฐ๊ธฐ์ ๋ํ ๋งํฌ๋ ์์ต๋๋ค.
https://googlechrome.github.io/lighthouse/scorecalc
v6์ ๋ฉ์ธ ์ค๋ ๋ ์ํธ ์์ฉ์ ๋ ์ค์ ์๋๊ณ ์๋ค๋ ์ธ์์ ๋ฐ์์ผ๋ฏ๋ก ์ฌ์ดํธ์ ํฐ JS ๋ฒ๋ค์ด ํฌํจ๋์ด ์๋ค๋ฉด ์๋ง๋ ์ค์ํ ์์ ์ผ ๊ฒ์ ๋๋ค.
์ @shanekenney , ์๊ณ ์์ง๋ง ์ด๋ค ๋ถ๋ถ์ด ์ด๊ฒ์ ์ ๋ฐํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ์ดํธ์ ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ ์ธ์ ๊ทธ๊ฒ์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ๋ชจ๋ฆ ๋๋ค.
gaysbyjs ๋ฐ ํ ๋ง UI ์ฌ์ดํธ์๋ ์ํฅ์ ๋ฏธ์นฉ๋ ๊น? ๊ถ๊ธํฉ๋๋ค / ์ฌ์ดํธ์์ ์ด๋ค ์ต์ ํ๋ฅผ ๊ณ ๋ คํ๊ณ ์๋์ง ๋๋ ํน์ ์์ธ์ ๋ฐ๊ฒฌํ๋์ง ์๊ณ ์ถ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ํ๋ฅญํ๋ฏ๋ก ์ ์ฒด Lighthouse / PageSpeed โโ์ธ์ฌ์ดํธ ์ ์์ v6์์ ๋ณผ ์์๋ ๊ฐ๋ฅํ ํ๊ท์ ๋ํด ๋ ผ์ ํ ์ ์์ต๋๋ค.
@kuworking ํ ๊ฐ์ง ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ์๋ ์ ์ lighthouse-metrics.com์ด 5.6์ _ "Emulated Nexus 5X"_๋ฅผ ์ฌ์ฉํ๊ณ 6.0์ _ "Emulated Moto G4"_๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋น๊ต์ ์ฝ๊ฐ์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
922 ๊ฐ ์ฌ์ดํธ์ ๋ํ์ด ๋ฒค์น ๋งํฌ๋ v5์์ Gatsby ์ฌ์ดํธ์ ์ค๊ฐ ์ฑ๋ฅ ์ ์๊ฐ 75๋ผ๊ณ ์ฃผ์ฅ ํฉ๋๋ค. ๋ก์ปฌ ๋คํธ์ํฌ๊ฐ ๋ ๋ค๋ฅธ ๊ฐ๋ณ์ฑ ์์๊ฐ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํธ์คํ ๋ ์๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ๋ณด๊ธฐ๋ฅผ ์๋ ํ ๊ฒ์ ๋๋ค.
PSI๋ "Fast 3G"์ Moto G4์์ ์คํ๋ฉ๋๋ค. ์ถ์ฒ
Gatsby๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ ๋ ํน์ 'ํ๋๊ทธ'์ฌ์ดํธ๋ PageSpeed โโInsights์์ ์ค์ ๋ก ํ๋ฅญํ๊ฒ ์๋ํ์ง ์์ต๋๋ค (๋ด ์๊ฐ์๋ Lighthouse v5.6์ ์ฌ์ ํ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์คํ๋ ๋๋ง๋ค ํ์ค ๊ฐ๋ณ์ฑ์ด ์ ์ฉ๋๋ฉฐ 3 ๋ฐฐ ๋๋ 5 ๋ฐฐ๋ฅผ ์คํํ๊ณ ํ๊ท ์ ๋ ์ ๋ขฐํ ์์๋ ์ธก์ ํญ๋ชฉ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํฉ๋๋ค ) .
๊ทธ๋ฌ๋ ์ผ๋ถ ๋ค๋ฅธ ์ฌ์ดํธ (๋ฐ ๋๋ถ๋ถ์ ์์)๋ PageSpeed โโInsights์์ ๋งค์ฐ ์ ์๋ํฉ๋๋ค.
ํ๊ท TTI๋ ๋์ ๋๋๋ค. v6๋ TTI์ ์ ์ฒด ๊ฐ์ค์น๋ฅผ 33 %์์ 15 %๋ก ๋ณ๊ฒฝํ๊ณ First CPU Idle์ ๋จ์ด ๋จ ๋ ธ์ง๋ง ๊ฐ์ค์น๊ฐ 25 % ์ธ TBT๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ ๋ฐ์ ์ธ JS ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ์คํ.
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ฒํธ๋ฅผ ํด๋ฆญํ๋ฉด Lighthouse ๋ณด๊ณ ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ ๋ณด๊ณ ์์์ ๊ฐ์ ์ถ์ถํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ค์ ๋ ์ฌ์ดํธ์์ ํ๊ท๋ฅผ ํ์ธํ์ญ์์ค.
๋ด๊ฐ ๊ฐ์ง ๋ช ๊ฐ์ง ๊ณต๊ฐ ์ง๋ฌธ.
gatsby-image
LQIP๊ฐ LCP์ ๊ด๋ จํ์ฌ ๋์์ด๋ฉ๋๊น? ์ ์คํ์์ store.gatsby.org์ LCP๋ 4.7 ์ด์์ต๋๋ค!(์์ ๋งํฌ๋ฅผ ์์ ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๊ตฐ๊ฐ ํน์ ๋งํฌ๋ฅผ ์ ๊ฑฐํ๊ณ ์ถ๋ค๋ฉด ๋ฉ์์ง๋ฅผ ๊ธฐ๊บผ์ด ํธ์ง ํ ์ ์์ต๋๋ค.)
๋ด ์ฌ์ดํธ (https://matthewmiller.dev/)๊ฐ ๊ฐ์ ๋ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง (~ 92 ~~ 95) ์ผ๋ถ ์๋ก์ด ํ ์คํธ์์๋ ๊ฐ์ ํ ์์๋ ๋ช ๊ฐ์ง ์ฌํญ์ด ๋๋ฌ๋ฌ์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ถํ์ํ JavaScript ํ
์คํธ๋
(์ฒซ ๋ฒ์งธ ์ด์ ํฌ๊ธฐ, ๋ ๋ฒ์งธ ์ด์ ๋ถํ์ํ ์)
์ด๊ฒ์ ์ฌ๊ธฐ์ ํฌํจ ๋ ๋ค๋ฅธ ํ์ด์ง์ ํ์ํ ํญ๋ชฉ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํ๋ฏ๋ก loadable-components์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋์๊ฒ ๋๋ Largest Contentful Paint
์ ์ดํดํ๋ ๋ฐ ํฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ณ ๋งค์ฐ ํฐ ๊ฐ์ ์ป๊ณ ๋ณด๊ณ ์์ ๊ฐ (์ : 7.4 s์ LCP
Performance
- ViewTrace
ํญ์ ํ์๋๋ LCP
๋ ์ด๋ธ (~ 800ms)
๋น์ทํ ์ผ์ด ์์ ๊ธฐ https://parmsang.github.io/gatsby-starter-ecommerce/ ์์ ๋ฐ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ ๋ฐ์ดํธ๋ก-PageSpeed โโInsights๊ฐ Lighthouse v6์ ์คํํ๊ธฐ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ํํธ ๋ฐ์นญ ํ ๊ฒ ๊ฐ์ต๋๋ค (์์ง ์ผ๋ถ ์ง์ญ์ ์์ง ์์ ์ ์์).
https://gatsbyjs.org/ ํ ์คํธ ๋งํฌ . ํ์ฌ ์ฃผ๋ก TBT ๋ฐ TTI์ ๊ฐ์ ๋ฐ๋ผ 60 ๋ ๋ ์ค๋ฐ์์ 80 ๋ ๋ ์ค๋ฐ๊น์ง ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์์ต๋๋ค.
@kuworking Lighthouse v6๊ฐ gatsby-image๋ฅผ ์ธ์ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค.
webdev ์ ๋ฐ๋ฅด๋ฉด
๊ธฐ๋ณธ ํฌ๊ธฐ์์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ์ด๋ฏธ์ง ์์์ ๊ฒฝ์ฐ๋ณด๊ณ ๋๋ ํฌ๊ธฐ๋ ๋ณด์ด๋ ํฌ๊ธฐ ๋๋ ๊ธฐ๋ณธ ํฌ๊ธฐ ์ค ๋ ์์ ํฌ๊ธฐ์ ๋๋ค.
์ ๊ฒฝ์ฐ์๋ Lighthouse๊ฐ ๋ทฐ ํฌ๊ธฐ๋ฅผ ์กด์คํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ ๋ฌธ์ ์ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค.
3000 ํฝ์ ์ด๋ฏ๋ก 13s LCP ์ธ ๊ณ ์ ํฌ๊ธฐ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
@ daydream05 ๋น์ทํ ์ด๋ก ๊ณผ ๊ฒฐ๊ณผ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง์์ด ํ์ด์ง๋ฅผ ํ ์คํธํ์ง๋ง ์ฌ์ ํ ๋ฏธ์น ๊ธด LCP (10-12 ์ด)๋ฅผ ๊ฐ์ก์ต๋๋ค. ๋ด ํ๋ก์ ํธ์์ ๋ง์ ์ผ์ด ์งํ๋์ด ๋ค๋ฅธ ๋ณ์๋ ๋ ์ ์์ง๋ง ํ ์คํธ ์ฝํ ์ธ ๊ฐ ์๊ณ ์ด๋ฏธ์ง๊ฐ์๋ ํ์ด์ง๋ฅผ ์์ง ํ ์คํธํ๋์ง ๊ถ๊ธํฉ๋๋ค.
์ต๊ทผ 100์์ 79๋ก ๋จ์ด์ก์ต๋๋ค ~ https://dougsilkstone.com/ . Google ํ๊ทธ ๊ด๋ฆฌ์ (๋ฐ Google Analytics)๊ฐ ์ ๊ฑฐ๋๋ฉด ์ต๋ 90 ๊ฐ๊น์ง ์ด๋ํฉ๋๋ค.
๋ด๊ฐ ํ ์คํธ ํ ๋ ๋ ๋ง์ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
ํธ์ง : gatsby-plugin-web-font-loader (preload-fonts ์บ์๋ ์ฌ์ฉ)์์ typekit๋ก๋ ๋ ๊ธ๊ผด์ ์ ๊ฑฐ ํ ๋ 100์ ๋๋ฅด์ญ์์ค.
GTM์ ์ ๋ฐ์ ์ผ๋ก ๋ด ํ๋ก์ ํธ์ ํฐ ์ํฅ์ ๋ฏธ์น๊ณ ์์ง๋ง ์ ๊ฑฐํด๋ ํฐ ๋ณํ๋ ์๋๋๋ค. ๋๋ ์ฌ์ ํ ๋ ๋ง์ ํ ์คํธ๋ฅผ ํ ํ์๊ฐ ์์ง๋ง ๊ทธ๋ฅ ๊ทธ๊ฒ์ ๋ฒ๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
@Jimmydalecleveland ํฅ๋ฏธ๋ก์ด! ๋๋ ๋ํ ํ๋ฉด์ด ํ ์คํธ์ด๊ณ LCP์ ์ฃผ์ ์์ธ์ผ๋ก ์์ ํ ์คํธ๋ฅผ ๋น๋ํ๋ ๋ ๋ค๋ฅธ ์ฌ์ดํธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ LCP๋๋ณด๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ ์ค๋ช ํฉ๋๋ค. ํ ์คํธ๊ฐ ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ํฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๊น?
@dougwithseismic ๋๋ ๋ํ
Lighthouse v6๋ JS ํ๋ ์ ์ํฌ์์ ์ ์ ๊ฐ์ค์น๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝํ๋์ง์ ๋ฐ๋ผ ์ ๋ง ํ๋ค๋ค๊ณ ์๊ฐํฉ๋๋ค. (์ฐจ๋จ ์๊ฐ์ ๋ ์ง์ค) ๊ทธ๋ฆฌ๊ณ Gatsby ์ฌ์ดํธ๋ ์ฌ์ ํ ๋ฐ ๊ธฐํ ์ฌํญ์ผ๋ก ์ธํด ์ญ์ฌ์ ์ผ๋ก ์คํฌ๋ฆฝํธ ํ๊ฐ / ๋ฉ์ธ ์ค๋ ๋ ์ ์๊ฐ ๋ฎ์ต๋๋ค.
@dougwithseismic ์คํ์ผ ์ํธ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ typekit ๊ธ๊ผด์ ์ด๋ป๊ฒ ์ฐ๊ฒฐ ํ์ต๋๊น?
์ ๋ ๋น์ทํ ๊ฒฝํ์ํ๊ณ ์์ต๋๋ค. lighthouse 5.7.1์์ ์ ์ฑ๋ฅ ์ ์๋ ์ฝ 91 ์ ์ด์ง๋ง lighthouse 6์ ์ ์ฑ๋ฅ ์ ์๋ฅผ ์ฝ 60 ์ ์ผ๋ก ํฌ๊ฒ ๋จ์ด ๋จ ๋ ธ์ต๋๋ค.
์ต๊ทผ 100์์ 79๋ก ๋จ์ด์ก์ต๋๋ค ~ https://dougsilkstone.com/ . Google ํ๊ทธ ๊ด๋ฆฌ์ (๋ฐ Google Analytics)๊ฐ ์ ๊ฑฐ๋๋ฉด ์ต๋ 90 ๊ฐ๊น์ง ์ด๋ํฉ๋๋ค.
๋ด๊ฐ ํ ์คํธ ํ ๋ ๋ ๋ง์ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
ํธ์ง : gatsby-plugin-web-font-loader (preload-fonts ์บ์๋ ์ฌ์ฉ)์์ typekit๋ก๋ ๋ ๊ธ๊ผด์ ์ ๊ฑฐ ํ ๋ 100์ ๋๋ฅด์ญ์์ค.
์ด ํ๋ฌ๊ทธ์ธ๋ ์ค์นํ์ง ์์์ง๋ง ๋ชจ๋ฐ์ผ ์ ์๊ฐ 90+์์ 60 ~ 70 +๋ก ๋จ์ด์ก์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฌ๋ฌ ์ฌ์ดํธ์์ 90ish์์ 60ish๋ก ๋ํญ ๊ฐ์ํ์ต๋๋ค.
์ฝ 30 ์ ์ด์ +1 ๋๋กญ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋์ด ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋์ ์ ์๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด Gatsby over Next๋ฅผ ์ฌ์ฉํ ํ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋์ด ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋์ ์ ์๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด Gatsby over Next๋ฅผ ์ฌ์ฉํ ํ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ๋ฒํธ๊ฐ ์์ต๋๊น?
์ด ์ ์๊ฐ ๋น ๋ฅธ ์น์ ์๋ก์ด ํ์ค์ธ์ง ๊ถ๊ธํฉ๋๋ค (์ ์ ์ด์ง ์๊ณ JS๊ฐ์๊ณ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฐ๋ฅ์ฑ๋ ์์)
๋ค์ ๋ฒํธ๊ฐ ์์ต๋๊น?
https://nextjs.org/ ์ ์ ์๋ 85 ์ ์ผ๋ก ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ํ์ธํธ (3.8)์ ์ฒซ ๋ฒ์งธ ์ฝํ ์ธ ํ์ธํธ (2.8)๊ฐ ์ฃผ๋ฒ์ ๋๋ค. ๋ํ "Unused JS"๊ฐ ๋ง์ด ์์ต๋๋ค. Lighthouse 5.7.1์ 95์์ ๊ฐ์ํ์ต๋๋ค. ๊ฐ์ธ ๋น ์ฌ์ดํธ๋ ๋ ๋ฐฐ๋ ๋ง์ ํฌ์ธํธ๋ฅผ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ฐ๋ฉด, ์ฝ 10 ํฌ์ธํธ๊ฐ "๋จ์ง"๋จ์ด์ง๋๋ค.
๋๋์ด ์ธ์์ ์ต์ํ์ง ์์ง๋ง npm์ ๋ฑ๋ 6.0.0์ผ๋ก ํ ์คํธํ์ ๋ ๋ด ๊ฐ์ธ ๋น ์ฌ์ดํธ๊ฐ ์ฝ 25 ์ ์ ์์ ํ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋ npm ๋ฑ๋ ๋์ ํ์ด์ง ์๋ ์ธ์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด ์ฌ์ดํธ๊ฐ ์ฝ 99๋ก ๋์๊ฐ๋๋ค. gatsbyjs.org๋ pagespeed ์ธ์ฌ์ดํธ์์ ~ 70์ ์ป์ง ๋ง npm ๋ฑ๋์์๋ ~ 84๋ฅผ ์ป์ต๋๋ค. ์ด๋๊ฐ์์ ๋ญ๊ฐ ์กฐ์ ๋๊ณ ์๋ ๊ฒ ๊ฐ์์. ๊ทธ๋ค ๋ชจ๋๋ 'Unused JS'๊ฒฝ๊ณ ๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋์ด ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋์ ์ ์๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด Gatsby over Next๋ฅผ ์ฌ์ฉํ ํ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ๋ฒํธ๊ฐ ์์ต๋๊น?
์ด ์ ์๊ฐ ๋น ๋ฅธ ์น์ ์๋ก์ด ํ์ค์ธ์ง ๊ถ๊ธํฉ๋๋ค (์ ์ ์ด์ง ์๊ณ JS๊ฐ์๊ณ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฐ๋ฅ์ฑ๋ ์์)Next.js ์น ์ฌ์ดํธ-> https://masteringnextjs.com/ 77 ๋ชจ๋ฐ์ผ ์ ์. ๋ง์ "์ฌ์ฉ๋์ง ์์ JS".
lighthouse-metrics https://lighthouse-metrics.com/one-time-tests/5edfbbb1cf858500080125f7๋ก ๋ ๋์ ์ ์๋ฅผ ๋ด ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋ํ ๊ฑฐ๊ธฐ์์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ง ๋ชปํ๊ณ ๋ด ๊ฒฝํ์ ์ด๋ฏธ์ง๊ฐ ๋์ (๊ทธ๋ฆฌ๊ณ ํฉ๋ฒ์ ์ธ IMO) ์ํฅ์ ๋ฏธ์น๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ gatsbyjs.org์๋ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉฐ ์ ์๊ฐ (์๋์ ์ผ๋ก) ๋์๋ค https://lighthouse-metrics.com/one-time-tests/5edfbc58cf858500080125ff ( @cbdp ์์ ์ ๋น๊ต)
๊ฐ์ธ ๋น ๊ฐ๋ฐ์๋ค์ด ์ด๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ณด์
์ฝ๊ฐ์ ์กฐ์ ๋ง์ผ๋ก ์ฌ์ดํธ๊ฐ ์ต๊ณ ์ ์๋ก ๋์ ์์ต๋๋ค.
Google์ด ๋ชฉํ ๊ฒ์๋ฌผ์ ๋ ๋ง์ด ์ฎ๊ธฐ๋ ๊ฒฝ์ฐ์ฒ๋ผ ๋ณด์
๋๋ค.
์ฑ๋ฅ, ํนํ FCP์ ๋ํด ์๊ฒฉํฉ๋๋ค.
์ฐ๋ฆฌ ์ฌ์ดํธ๋ ์ด๋ค ์ ์ผ๋ก๋ ๋๋ฆฌ์ง ์๊ณ
๊ธฐ์ค. ์ ๊ฐ ๋์ ๋๋ฆด๊ฒ์ โ๏ธ
ํ์์ผ, 2020 ๋ 6 ์ 9 ์ผ, 18:48 kuworking, [email protected] ์์ฑ :
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋์ด ์์ต๋๊น? Gatsby๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฏธ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์์ผ๋ก ๋ ๋์ ์ ์๋ฅผ ์ฆ์ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ.๋ค์ ๋ฒํธ๊ฐ ์์ต๋๊น?
์ด ์ ์๊ฐ ๋น ๋ฅธ ์น์ ์๋ก์ด ํ์ค์ธ์ง ๊ถ๊ธํฉ๋๋ค.
์ ์ ์ด ์๋๋ฉฐ JS๊ฐ ์์ผ๋ฉฐ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค)Next.js ์น ์ฌ์ดํธ-> https://masteringnextjs.com/ 77 ๋ชจ๋ฐ์ผ ์ ์. ๋ง์ด
"Unused JS"์.lighthouse-metrics๋ก ๋ ๋์ ์ ์๋ฅผ ๋ด ๋๋ค.
https://lighthouse-metrics.com/one-time-tests/5edfbbb1cf858500080125f7๊ทธ๋ฌ๋ ๋๋ ๋ํ ๊ฑฐ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ง ๋ชปํ๊ณ ๋ด ๊ฒฝํ์์ ์ด๋ฏธ์ง๋
๋์ (๊ทธ๋ฆฌ๊ณ ํฉ๋ฒ์ ์ธ IMO) ์ํฅ๊ทธ๋ฌ๋ gatsbyjs.org์๋ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉฐ ์ ์๊ฐ (์๋์ ์ผ๋ก) ๋์ฉ๋๋ค.
https://lighthouse-metrics.com/one-time-tests/5edfbc58cf858500080125ff
( @cbdp https://github.com/cbdp ์์ ์ ๋น๊ต)๊ฐ์ธ ๋น ๊ฐ๋ฐ์๋ค์ด ์ด๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ณด์
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-641433463 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/ALSIKRH4G74CRN2FNCUO4NDRVZRVNANCNFSM4NHP7XCA
.
v6์ ๊ฒฐ๊ณผ๋ฅผ v5์ ๋น๊ตํ๊ธฐ ์ํด์ด ์ ์ฉํ ๊ณ์ฐ๊ธฐ๋ฅผ ์ญ์ ํ๊ณ ์ถ์์ต๋๋ค. https://googlechrome.github.io/lighthouse/scorecalc/
Lighthouse ์ ์๋ PageSpeed โโInsights๋ฅผ ํตํด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ๋ค๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด https://www.gatsbyjs.org/์ ๊ฒฝ์ฐ 5 ํ ์คํ ํ 64 ~ 88 ๊ฐ์ ๋ชจ๋ฐ์ผ ์ฑ๋ฅ์ ๋ชจ๋ ๋ฐ์์ต๋๋ค. ๋ฐ๋ผ์์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๊ณ์ฐ๊ธฐ๋ ๋์ผํ ์คํ์์ ๋ค๋ฅธ ๊ฐ์ค์น์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๋ฐ ์ ์ฉ ํ ์ ์์ต๋๋ค (์ฐธ๊ณ : ๋ฉํธ๋ฆญ์ด ์ฝ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ FMP์ ๊ฐ์ ์ผ๋ถ ๊ฐ์ ์ด์ ์ธก์ ์ ์ฌ์ฉํ์ฌ ๊ฐ์ ํด์ผ ํจ).
์ถ์ : ์ฌ๊ธฐ gatsbyjs.org์ ๋ํ PageSpeed โโInsights์ ๋ ์คํ์ ๋น๊ตํ์ต๋๋ค.
์คํ 1-v6 : 67-v5 : 85
์คํ 2-v6 : 78-v5 : 87
๊ฐ์ฅ ํฐ ์ํฅ์ ๋ ์คํ ๋ชจ๋์์ 70 ์ ๋ฏธ๋ง์ด๊ณ ๊ฐ์ค์น๊ฐ 25 % ์ธ ์๋ก์ด ๋ฉํธ๋ฆญ "์ด ์ฐจ๋จ ์๊ฐ"์ ์ํด ๋ฐ์ํฉ๋๋ค.
๋ค, @Pyrax ์ ์ถ๊ฐํ๋ ค๋ฉด LCP (Largest Contentful Paint) ๋ฐ TBT์ ๋ฌด๊ฒ ๋ Lighthouse v6์์ ๊ฐ๊ฐ
LCP
tracedSVG
์ ํํ๋ ๊ฒ์ ๋๋ถ๋ถ์ ํ์ด์ง์ ํฐ ์์
์ด๋ฏธ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ๋์์ด๋๋ ๊ฒ ๊ฐ์ต๋๋ค. (์ง์ง ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ถ๊ฐ ์กฐ์ฌ์์ด. UX๋ ์ฝ๊ฐ ํฅ์๋ฉ๋๋ค.)TBT
Unused JS
๋ ์ฅ๊ธฐ์ ์ผ๋ก ๋ณด๋ฉด ๊ฐ์ฅ ํฐ ์ปต๋ฆฟ ( web.dev์ ๋ฌธ์ ๋ฐฑ์
) ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ด์ง ์์ค ํธ๋ฆฌ ์์ดํน์ด ํ์คํ ๊ฐ์ ๋ ์ ์์ต๋๊น?์ด ์ต๊ทผ Lighthouse ์ ๋ฐ์ดํธ๋ ๋ค์์ ํฌํจํ์ฌ ๋ชจ๋ ์ฌ๋์ ์ฑ๋ฅ ์ ์๋ฅผ ๋ง์น ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ๋ก ์ง์์ง์ง ์์ ์ ์ผํ ๊ฐ์ธ ๋น ์ฌ์ดํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ผ ํ์ด์ง์ด๊ณ 99 % html๊ณผ ๊ฐ์ ์ฌ์ดํธ์ ๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ๋ 5 ~ 10 ์ ์ ๋ ๋จ์ด์ก๋ค.
๊ทธ๋๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๋ฐ๋๋ฅผ ๋ณด์์ต๋๋ค. ์ฆ, Chrome ๋ธ๋ผ์ฐ์ ์ Lighthouse๊ฐ ์ฌ์ ํ ๋ด ์ฌ์ดํธ์ ๋ํด ์ข์ ์ ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ง๋ง PageSpeed โโInsights์์ ์คํํ๋ฉด ์ฑ๋ฅ ์ ์๊ฐ 20-30 ์ ๋จ์ด์ง๋๋ค. ์๋ง๋ Chrome Lighthouse ๋ฒ์ ์ผ ์๋ ์์ต๋๋ค. ๋ค์ ์์ต๋๊น? Chrome์ ์ต์ ๋ฒ์ ์ด๋ฉฐ ๋ด์ฅ ๋ Lighthouse ๋ฒ์ ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ...
์ด ์ต๊ทผ Lighthouse ์ ๋ฐ์ดํธ๋ ๋ค์์ ํฌํจํ์ฌ ๋ชจ๋ ์ฌ๋์ ์ฑ๋ฅ ์ ์๋ฅผ ๋ง์น ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ๋ก ์ง์์ง์ง ์์ ์ ์ผํ ๊ฐ์ธ ๋น ์ฌ์ดํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ผ ํ์ด์ง์ด๊ณ 99 % html๊ณผ ๊ฐ์ ์ฌ์ดํธ์ ๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ๋ 5 ~ 10 ์ ์ ๋ ๋จ์ด์ก๋ค.
๊ทธ๋๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๋ฐ๋๋ฅผ ๋ณด์์ต๋๋ค. ์ฆ, Chrome ๋ธ๋ผ์ฐ์ ์ Lighthouse๊ฐ ์ฌ์ ํ ๋ด ์ฌ์ดํธ์ ๋ํด ์ข์ ์ ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ง๋ง PageSpeed โโInsights์์ ์คํํ๋ฉด ์ฑ๋ฅ ์ ์๊ฐ 20-30 ์ ๋จ์ด์ง๋๋ค. ์๋ง๋ Chrome Lighthouse ๋ฒ์ ์ผ ์๋ ์์ต๋๋ค. ๋ค์ ์์ต๋๊น? Chrome์ ์ต์ ๋ฒ์ ์ด๋ฉฐ ๋ด์ฅ ๋ Lighthouse ๋ฒ์ ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ...
Lighthouse ๋ฒ์ ์ ๊ฐ์ฌ ํ๋จ์ ํ์๋ฉ๋๋ค.
@dylanblokhuis ์,
@dylanblokhuis ์,
๊ทธ๋ ์ง ์์ต๋๋ค. ์ด์จ๋ ์์ง. ์ต์ ๋ฒ์ ์ ์ํ๋ ๊ฒฝ์ฐ npm์์ ์ค์น ํ ๋ค์ lighthouse https://yoursite.com --view
๋ฅผ ์คํํ๋ฉด Chrome ๊ฐ์ฌ์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ํ์์ผ๋ก ์ ์๋ฅผ๋ฐ์ ์ ์์ต๋๋ค. :)
์ ์์์ ํฐ ์ธ๊ธฐ๋ฅผ ์ป์ ๋ค๋ฅธ ์ฌ๋์๊ฒ๋ # 24866๋ ๊ด๋ จ์ด์์ ์ ์์ต๋๋ค. Gatsby๊ฐ ์ฒญํน์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๊ฒ๋ณด๊ธฐ์๋ ์๋นํ ์ค์ํ ๋ณํ๊ฐ์์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ํ์คํ ์๋ฏธ๊ฐ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ ์ด๋ ์ฐ๋ฆฌ์๊ฒ๋์ด ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ์ฒญํฌ์ ๋ถ์ฐ ๋ ์ฝ๋๊ฐ commons
๋ฐ app
์ฒญํฌ์ ์ง์ค๋์์ต๋๋ค. ํจ์ฌ ๋ ํฐ js๋ก๋ / ํ์ฑ์ ์๋ฏธํฉ๋๋ค.
์ฌ๊ธฐ์ ๊ฐ์ฅ ์ฐ๋ ค๋๋ ์ ์ ์ด๋ฌํ ๋ฉํธ๋ฆญ์ด ์๋์ ์ผ๋ก ๊ณง ํ์ด์ง ์์์ ์ํฅ์ ๋ฏธ์น๊ธฐ ์์ํ ๊ฒ์ด๋ผ๋ ์ ์ ๋๋ค.
๋ชจ๋ ์ 3 ์ ์์ฒญ (Tag Manager / Typekit / Pixel / Analytics / ReCaptcha)์ ์ ๊ฑฐํ์ผ๋ฉฐ ์๋์ ์ผ๋ก ์ ์ ์ ์ ๋ง ์ ๊ณตํ๋ฏ๋ก ๋ค๋ฅธ ์์ ์ด ์งํ ์ค์ ๋๋ค.
๋ํ Lighthouse 6๋ฅผ ๋ก์ปฌ์์ ์คํํ๋ ค๋ ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์ํด ํ์ฌ Chrome Canary์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ 7 ์์ Chrome์ผ๋ก ์ถ์ ๋ ์์ ์ ๋๋ค.
์ฒซ์งธ : web.dev์์ ์์ ํ๋ Google ์์ง๋์ด์ ์ฐ๋ฝํ์ฌ ์ด์ ๋ํด ๋ฌผ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ ํฐ ์ค๋ช ์ผ๋ก ์ด์ด์ง์ง ํ์คํ์ง ์์ง๋ง ๊ทธ๋ค์ ๋์์ ์ฃผ๋ ค๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ๊ทธ๋ค๊ณผ ์ฑํ ํ ์์๊ฒ๋๋ฉด ํ์ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ์ต๋๋ค.
๋ด ์ฑ๊ณผ ์ ์๋ 94-99์์ 40-55๋ก ๋จ์ด์ก์ต๋๋ค. ๐ข
๋ด ์น ์ฌ์ดํธ๋ฅผ์ํ ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ํ์ธํธ ๋ ๋๋ถ๋ถ ํฐ ์ด๋ฏธ์ง๊ฐ์๋ ํ์ด์ง์ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ค ์ด์ ๋ก ์ด๋ฏธ์ง๋ฅผ๋ก๋ํ๋ ๋ฐ 14 ์ด ์ ๋ ๊ฑธ๋ฆฐ๋ค๊ณ ํฉ๋๋ค.
์ต์ํ์ Gatsby ์์ ์ฌ์ดํธ ๋ฅผ ์ด๋ฉด ์ด๋ฏธ์ง๊ฐ์๋ ๋ชจ๋ ํ์ด์ง๊ฐ ์ต๋ 70 ์ด์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์์ ๋ง์ ์ด๋ฏธ์ง๋ก ๋ณธ ์ฒ์ ๋ ๊ฐ์ ์คํํฐ์ ๋๋ค.
๊ทธ๋ฌ๋ Gatsby ์คํํฐ ๋ธ๋ก๊ทธ ๋ 98 ๊ฐ์ ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค (ํ์ฉ๋๋ฉฐ ์ผ๋ถ ํ ์คํธ ๋ง์๋ ๋งค์ฐ ์ต์ํ์ ํ์ด์ง์ ๋๋ค).
CLI๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด์ ๊ณผ ์ Lighthouse ๋ฐฉ๋ฒ ์ ์๋ฅผ ๋น๊ตํ ์ ์์ต๋๋ค. ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ Lighthouse ์ ์๋ฅผ ๋ณด๋ ค๋ฉด ๋ธ๋ผ์ฐ์ ํด๋ฐ ๋์ Chrome ๊ฐ๋ฐ์ ๋๊ตฌ์์ Lighthouse Chrome ํ์ฅ ํ๋ก๊ทธ๋จ์ ์คํํ์ธ์.
ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ๋ฐ์์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.
๋ค์์ ์ ํํ ๋์ผํ ํ์ด์ง์ ๋ํ ๋ ๊ฐ์ง ์ ์์ ๋๋ค.
์ค๋๋ ๋ฑ๋ (Chrome ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ํตํด)
์ ๋ฑ๋ (์ฃผ์ ํ์ ์ค์ Chrome ํ์ฅ ํ๋ก๊ทธ๋จ์ ํตํด)
๐คทโโ๏ธ
@nandorojo ์ด๋ฏธ์ง์
์ด๋ฏธ์ง๋ฅผ ์ ๊ฑฐํ๋ ์ต์ ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์๋ง๋ ์ด๋ฌํ 70 ์ ์ ์ด๋ฌํ ์ ํ์ ํ์ด์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ์ ์ผ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉ์ ๋ ๋นจ๋ฆฌ ์์ํ ์ ์๋๋ก ๋ก๋ฉ์ ์ง์ฐ์ํค๋ ์ต์ ์ ํธ๋ฆญ์ ์ํํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค (์ ๊ฒฝ์ฐ)
๋ฆ์ด์ ์ฃ์กํฉ๋๋ค. ์ ๋ Lighthouse์์ ์ผํด ์์ผ๋ฉฐ ๊ฐ๋ฅํ ํ ์ ์ค๋ช ํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
Chrome ๊ฐ๋ฐ์๋ ๊ฑด๊ฐํ ์ฌ์ดํธ๋ฅผ์ํ ํ์ ์ธก์ ํญ๋ชฉ ์ธ 'Web Vitals'๋ฅผ ๊ฒ์ํ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ง์ ๋ฉํธ๋ฆญ์ด ํฌํจ๋์ด ์์ง๋ง ํต์ฌ์ LCP (Largest Contentful Paint) , FID (First Input Delay) ๋ฐ CLS (Cumulative Layout Shift) ์ ๋๋ค. Lighthouse FID์ ๊ฐ์ ๋๊ตฌ์ ๊ฒฝ์ฐ ์ด ์ฐจ๋จ ์๊ฐ (TBT)์ผ๋ก ๋ฐ๋๋๋ค.
Lighthouse v6๋ ์ด๋ฌํ ๋ฉํธ๋ฆญ์ ๊ณ ๋ คํ์ฌ ๋ณํํ์ต๋๋ค. ์ด๊ฒ์ Gatsby๊ฐ ๋๋ฆฌ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค. ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ต์ ํ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ณ๊ฒฝ๋ ๋ฐฉ์์
๋๋ค.
LCP์ ๋ํด ๋ ์๊ณ ์ถ๋ค๋ฉด https://www.youtube.com/watch?v=diAc65p15ag๋ฅผ ํ์ธํ์ญ์์ค.
๊ทธ๋ผ ๊ฐ์ธ ๋น์ ๋ํด ์ด์ผ๊ธฐํฉ์๋ค. Gatsby ์์ฒด๋ ์ฌ์ ํ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ ๋์ฑ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. MDX, Contentful์ ์์์๋ ํ ์คํธ์ ๊ฐ์ ํ์ด์ง ๋น๋๋ ๋ฒ๋ค์ ์ต์ ํ ํ ์ ์๋๋ก ์ API๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค. LCP๋ฅผ ์ต์ ํํ๋ฉด ๋ง์ ์์ ์ ์ํ ํ ์ ์์ต๋๋ค. ๊ธ๊ผด ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ๋ ๋๋ฆฌ๊ฒ๋ก๋๋์ง ์๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ๋ก๋๋๋์ง ํ์ธํ์ญ์์ค. ์ด๋ฌํ ์์ฐ์ ์ฌ์ดํธ์ ๋์ผํ ์ถ์ฒ์์๋ก๋ํด์ผํ๋ฉฐ CDN์์๋ก๋ํ๋ฉด ์๋ฉ๋๋ค.
์ฌํ๊ฒ๋ TBT๋ ํด๊ฒฐํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ์ด๋ฉฐ React๊ฐ ์ต์ ํํ์ง ์๋ ๋ฌธ์ ์
๋๋ค. TBT๋ฅผ ์ญ์ ํ๋ ค๋ฉด preact ๋ฅผ ์ฒดํฌ ์์ํด์ผํฉ๋๋ค. Preact๋ React์ ๋์ผํ API๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์๋ฐ ์คํฌ๋ฆฝํธ ํ ํ๋ฆฐํธ๊ฐ ๋ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ค๋ฅด๊ฒ ์ผ์ํ์ง๋ง React ์ปดํฌ๋ํธ๋ ํธํ๋ฉ๋๋ค. gatsby recipes preact
๋ฅผ ์คํํ์ฌ ์ค์นํฉ๋๋ค.
gatsbyjs.com ๋ฐ gatsbyjs.org๋ฅผ ํ๋กํ์ผ ๋ง ํ ๋ ๋์ ๋๋ ๊ฒ์ TBT์ ์ผ๋ถ๊ฐ๋์ง ์๋๋ก ์ง๊ธ๋ณด๋ค ์กฐ๊ธ ๋ฆ๊ฒ Google ์ ๋๋ฆฌํฑ์ค ๋ฑ์๋ก๋ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ถ์๊ณผ GTM์ ์ฐ๊ธฐํ๊ณ ๊ธ๊ผด์ด ๋ ๋นจ๋ฆฌ๋ก๋๋๋๋กํ์ฌ .com์ ์ดํด๋ณด๋ฉด ์ด๋ฏธ +17์ ๊ฐ์ ์ ๋ณผ ์ ์์ต๋๋ค. ๋ฏน์ค์ ํ๋ฆฌ ์กํธ๋ฅผ ์ถ๊ฐํ๋ฉด +6์ด ํ์๋ฉ๋๋ค.
.org์ ๋ํด์๋ ๋์ผํ ์์
์ ์ํ ํ ์ ์์ต๋๋ค. 63 ์ ๋ถํฐ ์์ํฉ๋๋ค. LCP ๋ฐ TBT๋ฅผ ์ต์ ํํ๋ฉด 75 ์ ์ ๋๋ฌ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ก ๋ฌด์์ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์ ํ ์์๋ ์ผ์ด ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๋ซ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ค ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
์ถ๊ฐ ํต์ฐฐ๋ ฅ์ ์ํด @wardpeet Ty.
์ฐ๋ฆฌ๋ Contentful์ ์ฌ์ฉํ๋ ๋๊ท๋ชจ Gatsby ํ๋ก์ ํธ์์์ด ๋ฌธ์ ๋ฅผ ๋ง์ด ํํค ์ณค์ผ๋ฉฐ ์ฐ๋ฆฌ๋ฅผ ์ํด ์ฌ๋ฌ ์ฌ์ดํธ์์ ์ฌ์ฉ๋ ๊ฒ์ ๋๋ค (Gatsby ํ ๋ง๋ ํ๋ฅญํฉ๋๋ค). ์ด๊ฒ์๋ณด๊ณ ์๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋์์ด๋๋ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
.find
์์ ์ค๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ ์ค๊ธฐ ์ํด useStaticQuery
๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ณ ์ ํ ์ํฉ๋ ์๋๋ผ๊ณ ๋ฏฟ์๋งํผ ์ถฉ๋ถํ ๋ณด์์ต๋๋ค .find
ํ๋๋ ์๋ณ์๋ก. ์ฐ๋ฆฌ๋ ํญ์ ์ด๊ฒ์ด ํ๋ ธ๋ค๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ์ฌ์ดํธ์ ๊ท๋ชจ๊ฐ 300 ๊ฐ ์ด์์ ์ด๋ฏธ์ง๋ก ์ปค์ง๊ณ LH6๊ฐ ์์ ์ฐ๋ฆฌ๋ฅผ ๋๋ฆด ๋๊น์ง ๋์ ๋๊ฒ ์ฒ๋ฒ๋ฐ์ง ์์์ต๋๋ค.๊ทธ ์ด์ ๋ ์ด๋ฏธ์ง๊ฐ ๋ฆฌ์น ํ ์คํธ ์๋ฒ ๋์ ์ผ๋ถ์ด๊ณ ํ์ด์ง ์ฟผ๋ฆฌ ์์ค์์ ํด๋น ์ด๋ฏธ์ง์ ๋ํด graphql ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค (๊ธฐ๋ณธ์ ์ผ๋ก Contentful์ ๊ตฌ๋ฌธ ๋ถ์ ํ ํจํค์ง๊ฐ์๋ json ํ๋). Webpack ๋ฒ๋ค ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํ ๋ ์ฐ๋ฆฌ๋ ๋ฐฉ๋ํ JSON ํ์ผ (์ฝ 720KB)์ ๋ฐ๊ฒฌํ๊ณ ํด๋น ์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ๋ก ์ถ์ ํ์ผ๋ฉฐ, Webpack์์ ๋๋ถ๋ถ์ ํ์ด์ง์ ์ฌ์ฉํ๋ ํ ํ๋ฆฟ์ผ๋ก ๊ทธ๋ฃนํ๋์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธ ํ๋ ๋ค์ด๋ก๋ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ ์ชฝ์์๋ ํฐ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ค๋ฅธ ๋๊ตฐ๊ฐ๊ฐ ํฐ ์ ์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ (๋ฌผ๋ก ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์) ์ด๋ฌํ ์ํฉ์์ฃผ์ํ๊ณ ๋ฒ๋ค ์ฒญํฌ๋ฅผ ์ฃผ์ํ์ญ์์ค.
loading
์ํ์ ์ฌ์ฉํ์ฌ ์ค๋ ๋ช ๊ฐ์ง ์ฑ๊ณต์ ๊ฑฐ๋์์ต๋๋ค (Hero ์ด๋ฏธ์ง). ์ฐ๋ฆฌ๋ ๊ฐ์ฅ ํฐ ์ฝํ
์ธ ๊ฐ ํฌํจ ๋ ํ์ธํธ ์์
์ ์๋ํด ์์ผ๋ฉฐ ์ผ๋ถ ์ด๊ธฐ ํ
์คํธ์์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ๋ด๊ฐ ๊ฑฐ์ ๋์น ์ค์ํ ๋ถ๋ถ์ด ์์ต๋๋ค. ์ต์์ ์ด๋ฏธ์ง์ loading="eager"
๋ฅผ ์ค์ ํ๋ฉด base64์ ์์ ํ๋ก๋ ๋ ์ด๋ฏธ์ง ์ฌ์ด์ ์ ํ ๋๋ฌธ์ ํด๋น ์ด๋ฏธ์ง์ ๋ํด fadeIn={false}
๋ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฏธ์ง๋ LCP๋ฅผ ์ง์ฐ์ํค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.๋ค์์ ์ ๊ฐ ์ธ๊ธํ๊ณ ์๋ ์ํ ๋ฌธ์์ด๋ฉฐ fadeIn
์ ๋ํ ๋ฉ๋ชจ๋ ํ๋จ์ ์์ต๋๋ค. https://www.gatsbyjs.org/packages/gatsby-image/#gatsby -image-props
์คํฌ๋ฆฐ ์ท์ ๊ณต์ ํ๊ณ ์ถ์ง๋ง ํ์ฉ๋๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. Chrome devtools๋ฅผ ์ฌ์ฉํ๊ณ ์ฑ๋ฅ ํจ๋์ ๋ณด๋ฉด FP, FCP, FMP ๋ฐ LCP์ ๋ํ "ํ์ด๋ฐ"ํ ์๋์ ๋ฉ์ง ์์ ํ๊ทธ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๋นํ์ ์ผ๋ก๋ก๋ํ๋๋ก ์ ํํ์ ๋ ์ฑ๋ฅ ์ ์๊ฐ 8 ~ 10 ์ ์ฆ๊ฐํ์๋ฟ๋ง ์๋๋ผ ๋ด ๊ฒฝ์ฐ์๋ FMP ์งํ์ LCP ํ๊ทธ๊ฐ๋ก๋๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ง๊ธ๊น์ง ์๋ต ํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
gatsbyjs.com ๋ฐ gatsbyjs.org๋ฅผ ํ๋กํ์ผ ๋ง ํ ๋ ๋์ ๋๋ ์ ์ TBT์ ์ผ๋ถ๊ฐ๋์ง ์๋๋ก ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๊ฒ๋ณด๋ค ์กฐ๊ธ ๋ฆ๊ฒ Google ์ ๋๋ฆฌํฑ์ค ๋ฑ์๋ก๋ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค.
@wardpeet ๋ถ์๊ณผ GTM์ ์ด๋ป๊ฒ ์ฐ๊ธฐํ๊ณ ์์ต๋๊น?
๋ต์ฅ์ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ธ๋ชจ์๋ค. ์๋ง๋์ด ๋ฌธ์ ์ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ ์๋ก์ด Lighthouse์ ๊ฐ ๋ฉํธ๋ฆญ์ ๋ํด ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ๋ฌธ์ ์ผ ๊ฒ์ ๋๋ค. ๋๋ ์ฐ๋ฆฌ ์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅด๊ฒ ๋๊ปด์ง๊ณ Gatsby ์์ฒด๊ฐ ์ค์ ์ฌ์ฉ์๋ฅผ ์ํด ์ฌ์ดํธ๋ฅผ ์ต์ ํํ๋ ๋ฐ ํฐ ์ญํ ์ํ๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ Google์ ์น ๋ฐ์ดํ์ด ํ์ด์ง ์์๋ฅผ ์๋ฆฌ๊ธฐ ์์ํ๋ฉด ์ข์ ๋ฑ๋ ์ ์๋ฅผ ์ป๋ ๊ฒ์ด ๋๋ถ๋ถ์ ์ฌ์ดํธ์์ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ์ด ๋ ๊ฒ์ ๋๋ค.
@Jimmydalecleveland ์ฐ๋ฆฌ๋ ๋งํฌ ๋ค์ด ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ (์ฆ, GraphQL์ ์ฌ์ฉํ์ฌ ํํฐ๋ง ํ ์ ์์) ๋ค๋ฅธ ์กฐ๊ฐ์ ์ฌ์ฉํ์ฌ ์ต์ ํ ํ ์ ์๋๋ก ๋ฆฌ์์ค์ ๋ชจ๋ ํญ๋ชฉ์๋ก๋ํด์ผํ๋ ์ ์ฌํ ๋ฌธ์ ๊ฐ์์์ต๋๋ค (a ํจ์ฌ ์์ ํ๋ ํ์ ์งํฉ) ์ ์ฒด ๋ฆฌ์์ค๋ฅผ๋ก๋ ํ ๋์ ํํฐ๋ง์ ์ํด ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ๋ก๋ ํ ๋. ์ด๊ฒ์ JSON์ผ๋ก ์ธํด ์ฐ๋ฆฌ์ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์์ต๋๋ค.
@treyles ํต๊ณ๊ฐ ๋ถ์์ ํ๋ค๋ ๊ฒ์ ์๋ฏธ ํ ์ ์์ผ๋ฏ๋ก Analytics๋ก๋๋ฅผ ์ง์ฐ ์ํค๋ ค๋ฉด์ฃผ์ํด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด๋ณด๊ณ ๋ ์ดํ๋ฅ ์ด ์ ํํ์ง ์์์ ์๋ฏธ ํ ์ ์์ต๋๋ค. ๋ง์ผํ ์์ ์ง์ฐ์ ํ์ฉํ์ง ์๋ ์คํฌ๋ฆฝํธ (ํฝ์ , ๋ถ์, hotjar ๋ฐ ํ๊ทธ ๊ด๋ฆฌ์)๊ฐ ์์ง๋ง ๋ค๋ฅธ ์คํฌ๋ฆฝํธ (์ : Intercom)๋ ๊ด์ฐฎ๊ณ ์ต์ ํ ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ฐํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จํ์ฌ ํ์ฌ์์ ์ ๊ณตํ๋ ์คํฌ๋ฆฝํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋น๋๊ธฐ๋ก๋ํ์ง๋ง ์ด๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์๋ง๋ ์ฌ๋ฌ๋ถ์ดํด์ผ ํ ์ผ์์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ๋ฌ๋ถ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค. window.load๋ฅผ ์์ ํ ๋ค์ ๋ค์ด๋ก๋๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ผ๋ถ ์คํฌ๋ฆฝํธ๋ ์ด๊ธฐํ๋ฅผ ์ํด window.load์ ์์กดํ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ๋ก๋ํ๋ ๋ฐ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ค์ ์คํ๋์ง ์์ผ๋ฏ๋ก์ฃผ์ํด์ผํฉ๋๋ค. ๋ฐ๋ผ์ ์๋์ผ๋ก ์ด๊ธฐํํด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธํฐ์ฝค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<script>...</script>
degault๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.window.load
์ ๋ํ ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.@wardpeet ๋งค์ฐ ์ ์ฉํ ํต์ฐฐ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ด ์๋ฃจ์ ๊ณผ ๊ด๋ จํ์ฌ :
๊ธ๊ผด ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ๋ ๋๋ฆฌ๊ฒ๋ก๋๋์ง ์๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ๋ก๋๋๋์ง ํ์ธํ์ญ์์ค. ์ด๋ฌํ ์์ฐ์ ์ฌ์ดํธ์ ๋์ผํ ์ถ์ฒ์์๋ก๋ํด์ผํ๋ฉฐ CDN์์๋ก๋ํ๋ฉด ์๋ฉ๋๋ค.
์ด๊ฒ์ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ฐํ์ง ์์๊น์? ๋ํ ๋๋ถ๋ถ์ CMS๋ ์๋ฒ์์ ์ด๋ฏธ์ง ๋ณํ์ ์ฒ๋ฆฌํ๊ณ ์์ฒด CDN์์ ํธ์คํ ๋ฉ๋๋ค. (์ข์ ๊ฒ, imo). ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์์ฒด ์ฌ์ดํธ์์ ํธ์คํ ํ๋ฉด ์ญํจ๊ณผ๊ฐ ๋ฐ์ํ์ง ์์๊น์?
@Undistraction์ด ๋งํ ๊ฒ์ ํ์ด์ง ๋ญํน ์ ๋ฐ์ดํธ ์์ด ๋ด์ฉ์ ํฌํจ์ํฌ ๊ฒ์ ๋๋ค.
@Jimmydalecleveland ์ฟผ๋ฆฌ ํดํน์์ด ์ฝํ
์ธ ๊ฐ์๋ ๋ฆฌ์น ํ
์คํธ ๋ด์์ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๋ก ์์
ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค! ์ฌ๊ธฐ์ ์์ ์ด ์์ต๋๋ค. ์ฝ๋๋ gatsby-source-contentful
์์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ ๋ฃ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก GQL ์ธ๋ถ์์ ์ฝํ
์ธ ๊ฐ ๋ง์ ์ ์ฒด ๋๋ ๊ณ ์ ์ํ์ ์์ฑ ํ ์ ์์ต๋๋ค. ์ฝํ
์ธ ๊ฐ์๋ ๋ฆฌ์น ํ
์คํธ์ ์ ํฉํฉ๋๋ค.
๋ํ gatsby-source-contentful
์์ ์ง์ API์ ์ก์ธ์ค ํ ์ ์๋๋ก pull ์์ฒญ์ ์์ฑํ์ต๋๋ค.
๋๋ฅผ ์ํด ๋ญ๊ฐ ํฉ์ฐ๋์ง ์์ต๋๋ค. ๋๋ ํ์ด์ง ๋น ์ด๋ฏธ์ง์ ๋ํ ๋งค์ฐ ๋จ์ํ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. Im์ gatsby-image๊ฐ์๋ ์ด๋ฏธ์ง์ SVG๋ฅผ ์ฌ์ฉํ๊ณ Google ๋ถ์์ ์ ๊ฑฐํ๋ ค๊ณ ์๋ํ์ง๋ง ํฐ ์ฐจ์ด๋ ์์์ต๋๋ค. ์ ์ ์๋ ์ฑ๋ฅ๋ฉด์์ ์ฝ 50-60์ด์์ต๋๋ค.
์ ์๊ฒ ์ ๋ง ํผ๋์ค๋ฌ์ด ์ ์ ํํ์ด์ง (index.js)๋ง์ด ๋งค์ฐ ๋ฎ์ ์ ์๋ฅผ ๋ฐ๊ณ ์๋ ๋ฐ๋ฉด ์๋น์ค ํ์ด์ง ๋ ์ฐ๋ฝ์ฒ ํ์ด์ง์ ๊ฐ์ ๋ค๋ฅธ ํ์ด์ง๋ ~ 80 ์ ์ ๋ฐ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด ์ฌ์ดํธ๋ฅผ ์๋นํ ์ผ๊ด๋๊ฒ ๊ตฌ์ถํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง๊ฐ์ ํฐ ์ฐจ์ด๊ฐ ์์ง๋ง ์ด๋ค ์ด์ ๋ก ํ ํ์ด์ง์ ์ ์๋ ~ 50 ์ ์ด๊ณ ์๋น์ค ํ์ด์ง์ ์ ์๋ ~ 80 ์ ์ ๋๋ค.
์์ ์ธ๊ธํ๋ฏ์ด lighthouse v5์์๋ ์ ์๊ฐ ~ 90 ์ ์ด์์ต๋๋ค. ์ด์ ๊ฐ์ ๋จ์ํ ์ฌ์ดํธ์ ์ ์๊ฐ ~ 50 ์ ์ด๋ผ๋ ๊ฒ์ ์ ํ ์๋ฏธ๊ฐ ์์ต๋๋ค.
Btw, ์คํฌ๋กค์์ด ๋ณผ ์์๋ ์ด๋ฏธ์ง๋ฅผ eager
๋ก ์ค์ ํด ๋ณด์
จ๋์?
์ด๋ ๊ฒํ๋ฉด ์ง์ฐ๋ก๋๊ฐ ๋นํ์ฑํ๋๊ณ ์ ์๊ฐ ์ฆ๊ฐ ํ ์ ์์ต๋๋ค. ํ๋ฆผ ๋๋ SVG
๋ก๋ฉ ํจ๊ณผ๊ฐ Lighthouse๋ฅผ ํผ๋ ํ ์ ์์ต๋๋ค (์ด ๊ฒฝ์ฐ
์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐํจ).
2020 ๋ 6 ์ 13 ์ผ ํ ์์ผ ์ค์ 10์ 48 ๋ถ t2ca [email protected] ์์ฑ :
๋๋ฅผ ์ํด ๋ญ๊ฐ ํฉ์ฐ๋์ง ์์ต๋๋ค. ๋งค์ฐ ๋จ์ํ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค.
ํ์ด์ง ๋น ์ด๋ฏธ์ง์ ๋ํด, ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๊ฐ์๋ ์ด๋ฏธ์ง์ SVG๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋๋ ๋ํ ๊ตฌ๊ธ ๋ถ์์ ์ ๊ฑฐํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ง์ ๊ฒ์ ์ป์ง ๋ชปํ์ต๋๋ค.
์ฐจ์ด, ๋ด ์ ์๋ ์ฑ๋ฅ์ ๋ํด ์ฝ 50-60์ด์์ต๋๋ค.์ ์๊ฒ ์ ๋ง ํท๊ฐ๋ฆฌ๋ ๊ฒ์ ํํ์ด์ง ๋ง
(index.js)๋ ๋งค์ฐ ๋ฎ์ ์ ์๋ฅผ ๋ฐ๊ณ ์์ง๋ง
์๋น์ค ํ์ด์ง ๋๋ ์ฐ๋ฝ์ฒ ํ์ด์ง์ ์ ์๋ ~ 80 ์ ์ ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ง๋ค์๋ค
์ฌ์ดํธ๋ ์๋นํ ์ผ๊ด ์ ์ด๋ฏ๋ก ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
ํ์ด์ง์ ์์ง๋ง ์ด๋ค ์ด์ ๋ก ํ ํ์ด์ง์ ์ ์๋ ~ 50 ์ ์ ๋๋ค.
์๋น์ค ํ์ด์ง์ ์ ์๋ ~ 80 ์ ์ ๋๋ค.์์ ์ธ๊ธํ๋ฏ์ด lighthouse v5์์๋ ์ ์๊ฐ ~ 90 ์ ์ด์์ต๋๋ค.
์ด์ ๊ฐ์ ๋จ์ํ ์ฌ์ดํธ๊ฐ ์ด์ ๋ฎ์
~ 50 ์ .โ
์ด ์ค๋ ๋๋ฅผ ๊ตฌ๋ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฉ์์ง๊ฐ ์ ์ก๋์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-643648423 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AAARLB2Q2IVSNVKGGBZ3ZPDRWOUU5ANCNFSM4NHP7XCA
.
@KyleAMathews ์ฐ๋ฆฌ๋ ์ฑ๋ฅ ์ ์์ ์ฒซ ๋ฒ์งธ ํ์ธํธ๋ฅผ ํฌ๊ฒ ํฅ์ ์์ผฐ์ต๋๋ค. ์์ ๊ธด ์ฃผ์์์ 2 ๋ฒ ํฌ์ธํธ๋ก ์ค๋ช
ํ์ต๋๋ค. fadeIn
์ทจ์๋ ๋ง์นจ๋ด LH๋ฅผ ํ๋ณตํ๊ฒ ๋ง๋ค์์ต๋๋ค.
ํธ์ง : ๋๋ ์๋ง๋ ๋ฌด์งํ๊ฒ๋ LCP์ ๋ํ ์ด์ ์ด ์ด๋ฏธ์ง์ ๋ํ ๊ด์ฌ์ ๊ฐ์ง๊ณ ๋ณดํธ์ ์ผ๋ก ์ทจํ๋ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ช ํ ์ผํ ์ ์ด์ง๋ง ์ด๋ฏธ์ง๊ฐ ์ฝํ ์ธ ์ ์ค์ํ์ง ์๋ ํ ๋ชจ๋ ์ฝํ ์ธ ๊ฐ๋ก๋๋๊ณ ์ด๋ฏธ์ง๊ฐ ๋์ค์ ํฌ๋ฏธ ํด์ง๋ฉด ์น ์ฌ์ดํธ๊ฐ ํจ์ฌ ๋นจ๋ผ์ง๋ค ๊ณ ๋๋๋๋ค.
ํ ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์๋ Medium ๊ธฐ์ฌ์ ๋๋ค. ๋ฌผ๋ก ๋์์ธ ๊ฒฐํจ์ด๋ผ๊ณ ๋งํ ์๋ ์์ง๋ง ๋๋ถ๋ถ์ Medium ๊ธฐ์ฌ (๋ฐ ๋ค๋ฅธ ๋ง์ ๋ธ๋ก๊ทธ)๋ ๋ถ์๊ธฐ ์์ฑ์ด๋ ํ๊ฒฝ๋ง์์ํ ์๋จ์ ํฐ ol '์ด๋ฏธ์ง๋ก ์์ํ๋ฉฐ ๊ฒ์ผ๋ฅธ๋ก๋ ์ฌ๋ถ๋ ์๊ด ์์ต๋๋ค. .
Btw, ์คํฌ๋กค์์ด ๋ณผ ์์๋ ์ด๋ฏธ์ง๋ฅผ
eager
๋ก ์ค์ ํด ๋ณด์ จ๋์? ์ด๋ ๊ฒํ๋ฉด ์ง์ฐ๋ก๋๊ฐ ๋นํ์ฑํ๋๊ณ ์ ์๊ฐ ์ฆ๊ฐ ํ ์ ์์ต๋๋ค. ๋ธ๋ฌ ๋๋ svg ๋ก๋ฉ ํจ๊ณผ๋ Lighthouse๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํ ์ ์์ต๋๋ค (์ด ๊ฒฝ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐํจ).
โฆ
์ง๊ธ ์๋ํด ๋ณผ๊ฒ์.
์ฌ๊ธฐ์์ ์ข์ ์ง์ ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋ณํ๋ก 57 ์ ์์ 84 ์ ์ผ๋ก ์ ์๋ฅผ ์ฌ๋ ธ์ต๋๋ค. ๋ด LCP๋ 12 ์ด ์์ ์ด๋ก ๋ณ๊ฒฝ ๋์์ต๋๋ค.
์ฆ, ์ผ๊ด์ฑ์ด ์์ต๋๋ค. ์๋์์ ์ค๋ช ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ์ดํ๋ก ๋ด ์ ์๋ 69-84๊น์ง ๋ค์ํฉ๋๋ค. ์ฑ๋ฅ ์ ์์๋ ๋ถ๋ช ํ ์ฝ๊ฐ์ ๋ณ๋์ด ์์ต๋๋ค.
๋จผ์ @KyleAMathews ๋ฐ @Jimmydalecleveland๊ฐ ์ ์ํ ๊ฒ์ฒ๋ผ ์ ํ ๋ถ๋ถ ์์์๋ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์์ loading="eager"
๋ฐ fadeIn={false}
์ค์ ์ ์๋ํ์ต๋๋ค.
๋ค์์ผ๋ก ๋ด ์ฟผ๋ฆฌ์์ base64
์ ๊ฑฐํ์ต๋๋ค.
์ด๊ฒ๋ค์ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ด๋ฏธ์ง ์กฐ๊ฐ์ _noBase64
๋ฅผ ์ถ๊ฐํ๋ฉด ์ ์๊ฐ 20 ์ ์ฌ๋์ต๋๋ค
localFile
-> childImageSharp
-> fluid
-> GatsbyImageSharpFluid_withWebp_noBase64
์ฌ์ฉํ์ฌ ์ฝํ
์ธ ๊ฐ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์์ต๋๋ค.loading="eager"
๋ฐ fadeIn={false}
์ธํด ์ต๋ ์ฝํ
์ธ ํ์ธํธ ์๊ฐ์ด ์ฝ 50 % ๋จ์ถ๋์์ต๋๋ค!
๋ด ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
localFile {
childImageSharp {
fluid(maxWidth: 800, quality: 100) {
...GatsbyImageSharpFluid_withWebp_noBase64
}
}
}
๋ด gatsby-image
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<Image
fluid={localFile.childImageSharp.fluid}
fadeIn={false}
loading="eager"
/>
๋ด ์น ์ฌ์ดํธ์ UX๊ฐ ์ด์ ํจ์ฌ ๋๋น ๋ณด์ ๋๋ค. base64 + ํ์ด๋ ์ธ์ ํ๋ฅญํ UX๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ด์ ์ฝ๊ฐ ๊ณ ๋ฅด์ง ์์ต๋๋ค. ๊ทธ๊ฒ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๊ณ ๋ คํด์ผ ํ ํธ๋ ์ด๋ ์คํ๋ผ๊ณ ์๊ฐํฉ๋๊น?
eager
& fadeIn={false}
์ ํ๋ค์์ ๋๊ฐ์ ํ์ด์ง๋ฅผ ๋๋ํ ๋น๊ต ํ ๊ฒ์
๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ์ค๋ฅธ์ชฝ์ loading="eager"
๋ฐ fadeIn={false}
์
๋๋ค.
LCP๊ฐ 49 % ๊ฐ์ํ์ต๋๋ค. ์ฑ๋ฅ ์ ์๋ 6 ์ ์ฌ๋์ต๋๋ค.
LCP๊ฐ 46 % ๊ฐ์ํ์ต๋๋ค. ์ฑ๋ฅ ์ ์๊ฐ 7 ์ ์ฌ๋์ต๋๋ค.
์์ ์์์ ์ด์ํ ์ : ์ผ์ชฝ์ ์คํฌ๋ฆฐ ์ท์๋ ๊ธฐ๋ณธ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ๋์์ด ์์ต๋๋ค (ํ์ด๋ ์ธ๋๊ณ eager
์ผ์ ธ ์์ง ์์). ๊ทธ๋ฌ๋ ์ฑ๋ฅ ์ ์๊ฐ ๋ ๋ฎ์์๋ ๋ถ๊ตฌํ๊ณ , ํ๋จ์ ์์ ์คํฌ๋ฆฐ ์ท์ ์ค๋ฅธ์ชฝ ์ด๋ฏธ์ง๋ณด๋ค ๋น ๋ฅด๊ฒ๋ก๋๋๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
์ฑ๋ฅ์ ํ๋จํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ฅ ๋ฒ์ ๋ด์ ์๊ฑฐ๋ @KyleAMathews๊ฐ ์ธ๊ธํ๋ฏ์ด ํ์ด๋ ์ธ ํจ๊ณผ์ ๊ด๋ จ๋ ์ต์ข ๋ฒ๊ทธ ์ผ ์ ์์ต๋๋ค.
_noBase64
์ค์ ํ๋ค์์ ์์ ์์ ๋์ผํ ํ๋ฉด์
๋๋ค. ๊ทธ๋ค์ ๋ชจ๋ Gatsby Image์ loading="eager"
, fadeIn={false}
์ํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ํ graqhql์ ์ด๋ฏธ์ง ์กฐ๊ฐ์ GatsbyImageSharpFluid_withWebp_noBase64
์ฝ๊ฐ ์ค๋ช ํ ์ ์์ง๋ง ๋๊ฐ์ ํ์ด์ง์์ ๋ฑ๋ ํ ์คํธ๋ฅผ ๋ฐ๋ณตํด์ ์คํํ๊ณ ์์ผ๋ฉฐ 84, 75, 69๋ฅผ ์ป์์ต๋๋ค
์ข ์ด์ํ์ง๋ง ์ด์จ๋ ์ ์๊ฐ ์ฌ๋ผ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ ๋ผ์ดํธ ํ์ฐ์ค ์๊ณ ๋ฆฌ์ฆ์ด ์ ๋ํ ๊ด๋ํ๋ค๊ณ ์๊ฐ ํด์ ^^
์ถ๊ฐ ์กฐ์ฌ ๋์ ๋ฑ๋๊ฐ LCP ์ ์์ ์ํฅ์ ๋ฏธ์น๋ ํน์ ์์์ ๋ํด ๋ถํํ๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ด๊ฐ ํ ๊ฒ์ ๋จ์ง ๋จ๋ฝ์ ๋ถ๊ณผํ์ด ์์๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ด์๊ณ ๋ด ์ ์๋ 80 ์ ์ ๋์ด ์ฐ์ต๋๋ค. ๋จ๋ฝ์ ์ด๋ํ์ฌ ์ ์๊ฐ ~ 50์์ ~ 80์ผ๋ก ์ฆ๊ฐํ ์ด์ ๋ฅผ ์ ํํ ์ ์ ์์ต๋๋ค.
@nandorojo ์ฒ ์ ํ ๊ธ์
์ถ๊ฐ ์กฐ์ฌ ๋์ ๋ฑ๋๊ฐ LCP ์ ์์ ์ํฅ์ ๋ฏธ์น๋ ํน์ ์์์ ๋ํด ๋ถํํ๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ด๊ฐ ํ ๊ฒ์ ๋จ์ง ๋จ๋ฝ์ ๋ถ๊ณผํ์ด ์์๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ด์๊ณ ๋ด ์ ์๋ 80 ์ ์ ๋์ด ์ฐ์ต๋๋ค. ๋จ๋ฝ์ ์ด๋ํ์ฌ ์ ์๊ฐ ~ 50์์ ~ 80์ผ๋ก ์ฆ๊ฐํ ์ด์ ๋ฅผ ์ ํํ ์ ์ ์์ต๋๋ค.
@ t2ca ์ด๊ฒ์ ๋ด๊ฐ ์ป์ ๊ฒ์ ๋๋ค (๋ด ๊ฒ์ด ํค๋ ํ๊ทธ ์์ง๋ง). ํ์ง๋ง ์ด๋๋ก ์ฎ๊ฒผ์ต๋๊น?
@ t2ca ์ด๊ฒ์ ๋ด๊ฐ ์ป์ ๊ฒ์ ๋๋ค (๋ด ๊ฒ์ด ํค๋ ํ๊ทธ ์์ง๋ง). ํ์ง๋ง ์ด๋๋ก ์ฎ๊ฒผ์ต๋๊น?
@michaeljwright ๋ด๊ฐ ๊ฐ์ฅ ๋จผ์ ํ ์ผ์ ๋จ๋ฝ์ ์ญ์ ํ๊ณ ๋ฑ๋ ์ ์๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์์ต๋๋ค. ๋จ๋ฝ์ ์ ๊ฑฐํ ํ ์ ์๊ฐ ์ฝ 20 ์ ์ฆ๊ฐํ์ต๋๋ค. ํ์ธํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ์ต๋๋ค. ๋๋ ๋ํ ๋จ๋ฝ์ ๋ค์ ๋ฃ๊ณ ์ถ๊ฐ ํ ์คํธ๋ฅผํ๊ณ ๋ด ํต์ฆ์ด ๋ค์ ํ ๋ฒ ๋ ๋ฎ์์ก์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋จ๋ฝ์ ์ด๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. Im์ div ๋ด๋ถ์์ framer-motion์ ์ฌ์ฉํ๊ณ ๋จ๋ฝ์ div ์ธ๋ถ๋ก ์ด๋ํ์ต๋๋ค. ์ด๊ฒ์ ๋จ๋ฝ์ ์ญ์ ํ ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
@ t2ca ๋๋ LCP๊ฐ ์ฐ๋ฆฌ ์์ ํ์ด์ง์ ๋ชจ๋ ์ ๋๋ฉ์ด์ ์ ๋ถ์ด์ต์
๋จ๋ฝ ํ๊ทธ๊ฐ LCP ์ธ LCP ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋๋ฉ์ด์
:
์ ๋๋ฉ์ด์
์์ด :
@ t2ca ๋๋ LCP๊ฐ ์ฐ๋ฆฌ ์์ ํ์ด์ง์ ๋ชจ๋ ์ ๋๋ฉ์ด์ ์ ๋ถ์ด์ต์
๋จ๋ฝ ํ๊ทธ๊ฐ LCP ์ธ LCP ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋๋ฉ์ด์ :
์ ๋๋ฉ์ด์ ์์ด :
@ daydream05 ํ์ธ ๊ฐ์ฌํฉ๋๋ค!
ํํ
์ด๊ฒ์ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ฐํ์ง ์์๊น์? ๋ํ ๋๋ถ๋ถ์ CMS๋ ์๋ฒ์์ ์ด๋ฏธ์ง ๋ณํ์ ์ฒ๋ฆฌํ๊ณ ์์ฒด CDN์์ ํธ์คํ ๋ฉ๋๋ค. (์ข์ ๊ฒ, imo). ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์์ฒด ์ฌ์ดํธ์์ ํธ์คํ ํ๋ฉด ์ญํจ๊ณผ๊ฐ ๋ฐ์ํ์ง ์์๊น์?
์๋์, gatsby-image๋ ๋ก์ปฌ ์ด๋ฏธ์ง์์๋ ์๋ํ๋ฏ๋ก ๋ค๋ฅธ CDN์์ ํธ์คํ ํ ํ์๊ฐ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ฒซ ๋ฒ์งธ ๋ ๋ (๋ทฐํฌํธ์์๋ ๊ฒ)๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋๋ฉ์ธ / CDN์์ ํธ์คํ ํ๋ค๋ ๊ฒ์ ์๋ก์ด ์ฐ๊ฒฐ (dns resolve, tls handshake ๋ฑ)์ ์ด์ด์ผํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋๋ฆฐ ์ฅ์น์์๋ ์ต๋ 300ms๊ฐ ๊ฑธ๋ฆด ์ ์์ผ๋ฉฐ ์ฌ์ ํ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํด์ผํฉ๋๋ค.
@Undistraction์ด ๋งํ ๊ฒ์ ํ์ด์ง ๋ญํน ์ ๋ฐ์ดํธ ์์ด ๋ด์ฉ์ ํฌํจ์ํฌ ๊ฒ์ ๋๋ค.
์ฌ์ฉ์๊ฐ 100์ ๋ฌด๋ฃ๋ก๋ฐ์ ์ ์๋๋ก Gatsby๋ฅผ ๋์ฑ ์ต์ ํ ํ ๊ฒ์ ๋๋ค.
@ t2ca ๋๋ LCP๊ฐ ์ฐ๋ฆฌ ์์ ํ์ด์ง์ ๋ชจ๋ ์ ๋๋ฉ์ด์ ์ ๋ถ์ด์ต์
ํ๋ฉด์ด ํ์ธํ ์ ๋ฉ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ์์๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก LCP๋ CSS ์ ๋๋ฉ์ด์ ์ ๋ฌด์ํด์ผํ์ง๋ง ์ ๋๋ฉ์ด์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
@ t2ca
์ฌ์ดํธ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค๋ฉด ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฐ ๋์์ ์ค ์ ์์ง๋ง ์๋ง๋ ์ด๋ฏธ์ง๋ฅผ ์ด์ฑ์ ์ผ๋ก ์ค์ ํ๊ณ ์์ ๊ฒ์ ๋๋ค.
๋ฟก๋ฟก
๋ฉ์ง ๊ธ! ๋ฑ๋ ๋ณด๊ณ ์์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น?
ํ๋ฉด์ด ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๋ฉ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@wardpeet ์ด๊ฒ์ ํ์ฅ ํด ์ฃผ์๊ฒ ์ต๋๊น?
@DannyHinshaw ๋ฑ๋์์์ด ์ค๋ช
์ ๋ฐ์์ต๋๋ค
"๋ด ์๊ฐ์ LCP๋ ์ด๋ฏธ์ง๊ฐ ์์ ํ๋ก๋๋๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ๊ณ ๋ณด๊ณ ๋๋ โโ์๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์ฒ์ ํ์ ๋ ๋๊ฐ ์๋๋ผ ์์ ํ๋ก๋ ๋ ๋์
๋๋ค. ์ด๋ฒ์๋ ์ ์ง์ ์ด๋ฏธ์ง์ ๋ฐ๋ณต์ ์ธ ํ์ธํธ๋ก ์ธํด ๋ค๋ฅผ ์ ์์ต๋๋ค. "
๊ทธ๋ฆฌ๊ณ ์ด ๋งํฌ๋ ์๋ง๋ ๋์์ด ๋ ๊ฒ์
๋๋ค.
https://web.dev/lcp/#when -is-largest-contentful-paint-reported
๊ทธ ๋์ ์๋ํด ๋ณผ ์์๋ ๊ฒ์ LCP (Largest Contentful Paint)๋ฅผ ์ด๋ฏธ์ง์์ ํ ์คํธ (์ฌ์น๊ฐ์๋ ๊ฒฝ์ฐ)๋ก ๋ณ๊ฒฝํ๊ณ ๊ธ๊ผด์ ๋ฏธ๋ฆฌ๋ก๋ / ํ๋ฆฌ ํ์นํ๊ณ ์ด๋ฏธ์ง๋ฅผ ์ง์ฐ๋ก๋ํ๋ ๊ฒ์ ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ฐ์ผ์์ ์์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ๋ฌธ์ ๋ฅผ ๋ ผ์ํ๋ ๋์ ์ ์๋ฅผ 90 ๋ ๋ ์์๋ก ๋์ด ์ฌ๋ ธ์ต๋๋ค.
import semiBoldFont from 'static/fonts/SemiBold-Web.woff2';
...
<Helmet>
<link rel="prefetch" href={semiBoldFont} as="font"></link>
</Helmet>
https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fwhatsmypayment.com%2F
https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content
ํ๋ฉด์ด ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๋ฉ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@wardpeet ์ด๊ฒ์ ํ์ฅ ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ฌผ๋ก ์ด๋ค ์ฌ์ดํธ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง์ด ์ค๋ ๋์์ URL์ ์ฐพ์ผ๋ ค๊ณ ํ์ง๋ง ํ๋ค์์ต๋๋ค. LCP๋ CSS ์ ๋๋ฉ์ด์ (์ ํ, CSS์ ์ ๋๋ฉ์ด์ ์ํ)์ ๊ณ ๋ คํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ์ ํํ๋ setTimeout / setInterval์ ์ฌ์ฉํ๋ ์ฝํ ์ธ ๊ฐ์๋ ๊ฒฝ์ฐ์ด๋ฅผ ๊ณ ๋ คํฉ๋๋ค. ํ์์ ์ ๊ทผ ๋ฐฉ์์ ์ ๋ง ๋์ CLS ์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฐ๋ผ์ ์์ ํ ์คํธ / ์ด๋ฏธ์ง์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๋ ค๋ฉด. CSS ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉํ์ธ์.
์๋ ,
๋ด ํ๋ก์ ํธ๊ฐ Google Page Speed โโInsights, Google Lighthouse ๊ฐ์ฌ ๋ฑ์์ ๋ฎ์ ์ ์๋ฅผ๋ฐ์ ์ด์ ๋ฅผ ์์ ๋ด๋ ค๊ณ ํ์ต๋๋ค.
์ฒ์๋ถํฐ ์์ํ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด ์คํํฐ / ํ ๋ง๋ฅผ ์ฌ์ฉํ์ฌ ์์ํ์ต๋๋ค : https://github.com/alexislepresle/gatsby-shopify-theme
๋๋ ์ฃผ๋ก bulma์์ chakra-ui๋ก ์ด๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ CSS๋ฅผ ๋ณ๊ฒฝํ๋ ๊ณผ์ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ด ์ ์ฅ์์
๋๋ค : https://github.com/Chizzah/genesis-style
๋ชจ๋ ๊ณ์ ํญ๋ชฉ๊ณผ gatsby-plugin-appollo-shopify ํญ๋ชฉ์ ์ ๊ฑฐํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ณ๊ฒฝ๋์ง๋ ์์์ต๋๋ค.
๋ค์์ ๋ผ์ด๋ธ ๋งํฌ์ ๋๋ค : https://genesis-style.netlify.app
๋ด๊ฐํ๋ ์ผ์ ์๋ฌด๊ฒ๋ ๋ฐ๊พธ์ง ์๋๋ค. ์ฒ์๋ถํฐ ์์ํ ํ์๊ฐ ์์ต๋๋ค. ๋๊ตฐ๊ฐ ๋์๊ฒ ํํธ ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ค ์ ์๋ค๋ฉด ๋๋ ๊ทธ๊ฒ์ ๊ณ ๋ง๊ฒ ์๊ฐํ ๊ฒ์ด๋ค.
Gatsby๊ฐ ๋ฌด๋ฃ๋ก 90-100์์ฃผ๋ ๋ฐ ๋๋ฌด ์ต์ํด ์ก๋ ๋ด
์ข์ ๋ฑ๋ ์ ์๋ฅผ ์ป๊ธฐ์ํ ํ ๋ก ์ด ํ์ํ๋ฏ๋ก์ด ์ค๋ ๋์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. v6์์๋ ์๋ก์ด LCP ๋ฉํธ๋ฆญ์ผ๋ก ์ธํด ์ต๊ณ ์ ์๊ฐ ๋์ฑ ์ด๋ ค์์ก์ต๋๋ค. ๋ด ์ฌ์ดํธ (https://www.jamify.org)๊ฐ Lighthouse v6์์ ~ 100์์ ~ 70์ผ๋ก ๋จ์ด์ก์ต๋๋ค.
๋ฐ์คํฌํฑ์์ 100์ผ๋ก ๋๋๋ฆฌ๋ ค๋ฉด
gatsby-image
์ loading="eager"
๋ฐ fadeIn=false
๋ชจ๋ฐ์ผ์์๋ 5 ์ด์ LCP๋ก ์ธํด ์ฌ์ ํ 80์์ ๋ฉ์ถฐ ์์ต๋๋ค. ์ด๋ ํนํ ๋ชจ๋ฐ์ผ ์ฉ์ผ๋ก ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ์ ํ๊ฒ ์กฐ์ ํ์ฌ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ์ต์ ํ๋ ์๋นํ ์คํ ๊ฐ๋ฅํ์ง๋ง, ๋ธ๋ฌ ์ ์ด์๋ ์ง์ฐ ๋ก๋ฉ ์ด๋ฏธ์ง ๋๋ ์ข์ Lighhouse ์ ์ ์ค ํ๋๋ฅผ ์ ํํด์ผํ๋ค๋ ์ ์ด ๋งค์ฐ ๋ถํํฉ๋๋ค. : roll_eyes :
์์ง lighthouse v6.1์ ๋ํ ํ ์คํธ๋ฅผ ์ํ ํ ์ฌ๋์ด ์์ต๋๊น? ๋ด ์ฑ๊ณผ ์ ์๊ฐ ํฅ์๋์์ต๋๋ค.
๋ธ๋ฌ ์ LCP ๋ฌธ์ ์ ๋ํด Google์์ Addy์๊ฒ ์ง๋ฌธํ์ผ๋ฉฐ https://twitter.com/addyosmani/status/1277293541878673411 ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ
์ฌ๊ธฐ์ ๊ตํ์ ์๋ก์ด ์ฑ๋ฅ ์ ์๋ฅผ ์์ง ์ ๋์ ์ผ๋ก ์ทจ๊ธํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ์ฌ์ ํ โโ์ฃ์ง ์ผ์ด์ค๋ฅผ ๋ค๋ฌ๊ณ ์์ต๋๋ค.
Lighthouse 6.1์์๋ ๋ฌธ์ ๊ฐ ๋ ์ ํ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. LCP๋ฅผ ๋๋ฌ์ผ ์ข์ ์ ์์ด ์์ง๋ง TBT๋ ๋ชจ๋ฐ์ผ์์ ๋์ ์ ์์ ๊ฐ์ฅ ํฐ ์ด์ ์ด๊ณ ํด๊ฒฐํ๊ธฐ ๊ฐ์ฅ ์ด๋ ค์ด ์ด์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Chrome Canary์์ Lighthouse 6.1์ ํ ์คํธ ํ ์ ์์ต๋๋ค. ๋๋ ๋ด ์ฌ์ดํธ๋ฅผ 6.0๊ณผ 6.1 ์ฌ์ด์์ ๋น๊ตํ์ผ๋ฉฐ ์ฌ๊ธฐ์ ์ธ๊ธ ๋ ๋ค๋ฅธ ์ฌ๋ฌ ์ฌ์ดํธ๋ฅผ ๋น๊ตํ๋๋ฐ TBT๊ฐ ๋ํญ ์ฆ๊ฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ด 6.1 ํ ์คํธ์์ :
TBT์ ๋ํด 600์ด ๋๋ ๊ฒ์ ๋นจ๊ฐ์์ด๊ณ ๊ณ์ฐ๊ธฐ์ ๋ฐ๋ฅธ ๋ฌด๊ฒ๋ 25 %์ด๋ฏ๋ก ์ค์ํ ์์์ ๋๋ค. TBT๋ FCP์ Time to Interactive ์ฌ์ด์ ์คํํ๋ ๋ฐ 50ms ์ด์ ๊ฑธ๋ฆฌ๋ ํจ์๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
์ ์คํฌ๋ฆฐ ์ท์ ๋ด ์ฌ์ดํธ์ ํ๋กํ์ ๋๋ค. Chrome์์ Lighthouse๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ถ์ ๋ณด๊ธฐ ๋ฒํผ์ ํด๋ฆญํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ๋กํ ํญ์๋ก๋ํ์ฌ ๋์ผํ ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค. ๋ชจ์๋ฆฌ์ ๋นจ๊ฐ์ ํ๋๊ทธ๊ฐ์๋ FCP ์ดํ์ ๋ชจ๋ ์์ ์ TBT์ ํฌํจ๋ฉ๋๋ค. ๋๋ ์์ง ์์ ์ด ๋ฌด์์ธ์ง ํ๊ณ ๋ค์ง ์์๊ธฐ ๋๋ฌธ์ ์๋ง๋ Gatsby์ ๋ํด ๋ ๋ง์ ์ง์์ ๊ฐ์ง ๋๊ตฐ๊ฐ๊ฐ์ด ๋ถ์ผ์์ ๋์์ ์ค ์ ์๊ณ ์๋ง๋
@IanLunn ์ ํฅ๋ฏธ๋ก์ด ํ์ ์ ๋๋ค. ๊ทธ ์์ ์ด ๋ฌด์์ธ์ง ์ ์ ์์์ต๋๊น?
๊ฐ ๊ฐ์ธ ๋น ์ฌ์ดํธ์ JS ์๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ ์ค๋ ๋์์ ์ผ๋ง๋ ๋น์ธ์ง๋์ง๊ฐ์ ์๊ด ๊ด๊ณ๊ฐ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ ๋ก ์ ์ฌ์ง๊ฐ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. Gatsby๊ฐ ์ฟผ๋ฆฌ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ชจ๋๋ก๋ํ๋ ๋ฐฉ์์ ๋ฐ๋ฅธ ์ํฅ์ "์ํ"ํ๋ ๋ฐ ๋์์ด ๋ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
ํ์ฌ ์ ๊ฐ ๋ ์ ์ดํดํ๊ณ ์ํ๋ ์ธ ๊ฐ์ง ์์ญ์ด ์์ต๋๋ค.
<link rel=preload/>
๋ฅผ ์ถ๊ฐํฉ๋๋ค ( PRPL ํจํด์ ๋ฐ๋ผ ). ๋๋ ์ธก์ ๋ FCP์์ ์ฝ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค (๋งค์ฐ ๋๋์ต๋๋ค). ๊ทธ๋ฌ๋ FCP / LCP๋ฅผ ์ ๊ฑฐ ํ ๋ ์ฃผ๋ก FCP / LCP ์ฌ์ด์ ์ฐจ์ด์ ์์ต๋๋ค (์๋ง๋ ๋ค๋ฅธ ๋ณ๊ฒฝ์์ด ์ํํ๋ ๊ฒ์ด ๋ฐ์ ์๊ฐ์ด ์๋๋๋ค). ๋ฑ๋์ ๊ดํ ์ด๋ฒ ํธ์์๋ ํ์์ ๋ํด ๋
ผ์ํฉ๋๋ค.</body>
๋์ <script src=foo.js async />
๋ก ์ถ๊ฐ๋ฉ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ๊ฐ HTML ํ์ฑ์ ๋ง์น ์๋ง์ (์ถ์ ์ ๊ณง ํ์๋์ด์ผ ํจ) ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฑํ๊ณ ์คํํ๊ธฐ ์์ํฉ๋๋ค (์ด๋ฏธ ์ฌ์ ๋ก๋๋์์ผ๋ฏ๋ก). ๋ฉ์ธ ์ค๋ ๋๊ฐ ๋ชจ๋ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์คํํ๋๋ก ์์ฒญ๋๋ฏ๋ก ๊ธด ์์
์ด ํ์ฐ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๋๋ก์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๊น (์ ์ด๋ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ ๊ตฌ๋ฌธ ๋ถ์์ ์์ํ๋ _when_)? ์
๋ ฅ ํผ๋๋ฐฑ์ ์ง์ฐ์ํค์ง ์๊ณ (๋ฐ๋ผ์ TTI์ ํด๋ฅผ ๋ผ์น ์ง ์๊ณ ) ์ฃผ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๋ (๋ฐ๋ผ์ TBT์ ํด๋ฅผ ๋ผ์น ์ง ์๋) ์ฆ๋ถ ์๊ท๋ชจ ์์
์์์ด๋ฅผ ์ํ (ํ์ฑ ๋๋ ์คํ) ํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?์ง๊ธ์ ์ฌ์ค์ด์ง๋ง Gatsby ์ฌ์ดํธ๋ LCP๊ฐ ์์ง gatsby-image
์ LQIP ํจํด์ ์ธ์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ๋ถ์ด์ต์ ๋ฐ๊ณ ์์ต๋๋ค. Lighthouse v5์ ๋น๊ต ํ Javascript) ๋ฑ๋ ํ์ ๋ก๋๋งต์๋ ํ์ฌ ์ ์์์ ๊ฐ์ ๋ ๋ถ๋ถ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@juanferreras ๊ฐ์ฅ ํฐ ์์ ์ domready / ready.js (ํ์ฌ) ์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. Lighthouse๊ฐ ์๋ฐ ์คํฌ๋ฆฝํธ์ ํ๋ํฐ๋ฅผ์ฃผ๋ ๊ฒ์ ๋ํ ๊ทํ์ ์ง์ ์ด ์ณ๋ค๋ ๋๋์ ๋ฐ์์ผ๋ฉฐ Gatsby์์ ์์ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ ์๋ ์์ง๋ง ํด๊ฒฐํ ์์๋ ๊ฒ์ ์๋๋๋ค.
์ด๊ฒ์ด Lighthouse์์ ์งํ๋๋ ๋ฐฉ์์ด๋ผ๋ฉด ์ ์ด๋ TBT์ ๋ฌด๊ฒ๋ฅผ ์ค์ด๊ฑฐ ๋ ์ํ๋ ํ ์คํธ ํ๊ฒฝ์ ์ค์ ํ๋ ์ต์ ์ ์ ๊ณตํ๋๋ก ์์ฒญํ๊ณ ์ถ์ต๋๋ค. ์์ฐ ์ ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ํ ์คํธ์ค์ธ ์ฌ์ดํธ์ ํญ์ ์ ํฉํ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ์์ฐ ์ ํ๊ธฐ๋ 75 ์ ์ ๋ฐ์ง๋ง ์ฌ์ฉ์์ 95 %๊ฐ 90 ์ ์๋ฐ๋ ๊ณ ๊ธ ์ ํ๊ธฐ๋ ์, ์์ฌ / ๊ณ ๊ฐ์๊ฒ ์๋ฅผ ๋ณด์ฌ์ค ์ ์์ด์ผํฉ๋๋ค.
- ์ฟผ๋ฆฌ๋ ๊ฒฐ๊ตญ ๋ฉ์ธ ์ค๋ ๋์์ ํ๊ฐ๋๋ JSON (page-data.json ๋ฐ ์ ์ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ ํด์ ๋ ๊ฒ)์ ์์ฑํฉ๋๋ค. # 18787์ ๋ณด๋ผ. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๋ ๋์์ ๋ฐ๊ฒฌํ์ง ๋ชปํ ๊ฒ ๊ฐ๋ค (๋๋ ์กด์ฌํ๋ค๋ฉด). ๋ฐ์ดํฐ๊ฐ ํด์๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋ ๋ง์ด ๋ฐ์ํฉ๋๋ค (๋ฐ๋ผ์ ์ฟผ๋ฆฌ ํฌ๊ธฐ์ ๋ํ ์ฑ๋ฅ ์์ฐ ์ ๋น์ฐํ ํ์๋ฐ์ ๊ฒ์ ๋๋ค).ํ์ง๋ง ๋ฐ์ดํฐ๋ ์ฌ์ ํ ํ๋ก์ธ์ค๊น์ง ์ค์ ๋ก ํ์ํ์ง ์์ต๋๊น?
@juanferreras , ๋ฉ์ธ ์ค๋ ๋์์ json ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๋์ด ๋ฌธ์ ์ ๊ด๋ จํ์ฌ ๋ ์ค๋ฅด๋ ๊ฒ์ ์น ์์ ์์ ๋๋ค. Gatsby๋ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์น ์์ ์๋ฅผ ๋ฑ๋กํ๊ณ ์ด๋ฌํ ์ข ๋ฅ์ ๊ฒ๋ค์ ๋ฒํผ๋ง ํ ์ ์์ต๋๋ค. ์ฌ์ ํ ํ๋ก์ธ์ค๋ ์ค์ ๋ก ์ฆ์ ํ์ํ์ง ์์ผ๋ฏ๋ก ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์น ์์ ์๋ ie10์ ํฌํจํ ์ฃผ์ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋ฉ๋๋ค.
โฆ ์ฐ๋ฆฌ๋ ๋ชจ๋ฐ์ผ์์ ๋์ ์ ์๋ฅผ๋ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ด์ ํด๊ฒฐํ๊ธฐ ๊ฐ์ฅ ์ด๋ ค์ด TBT๋ฅผ๋ณ๋ก ๋ณด์ง ์์ต๋๋ค.
Total Blocking Time๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. Webpack ๋ฒ๋ค ๋ถ์๊ธฐ๋ก ๋ฒ๋ค์ ๊ฒํ ํ ํ ์ ์ ์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ JavaScript ๋ฒ๋ค์ ํฌํจ๋์ด ์์์ ํ์ธํ์ต๋๋ค. ๊ทธ๋ด๋ง ํ ์ด์ ๊ฐ ์๋ค๊ณ ํ์ ํ์ง๋ง ๋ฎ์ TBT์ ๋ํด ์๋ํฉ๋๋ค.
TBT๋ ํนํ React๊ฐ์ด๋ฅผ ์ํด ๊ตฌ์ถ๋์ง ์์๊ธฐ ๋๋ฌธ์ ํด๊ฒฐํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค. preact๋ก ์ด๋ํ๋ ๊ฒ์ ์ข์ ์ฒซ ๋จ๊ณ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์์ผ๋ก ๋ช ๋ฌ ๋์ TBT๋ฅผ ์ ์ ๋ ๊ฐ์ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ Gatsby๊ฐ ์ ๋ง ์์ ๊ณต๊ฐ์ ๊ฐ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ธ ๋น ๋ฒ์ > 2.24.0์์๋ ๊ฐ์ ๋ ํด๋ฆฌ ํ ์ง์์ ์ ๊ณตํ์ฌ IE11๊ณผ ๊ฐ์ ๋ ๊ฑฐ์ ๋ธ๋ผ์ฐ์ ์์๋ง ํด๋ฆฌ ํ์๋ก๋ํฉ๋๋ค. ๋ํ ๋ฉฐ์น ์ ์ ์นํฉ (@MarkosKon)์์ ์ ์ ์ฟผ๋ฆฌ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
@Teclone ์ฌํ๊ฒ๋ ์น ์์ปค๋ JSON ๊ตฌ๋ฌธ ๋ถ์์ ์ ํฉํ์ง ์์ต๋๋ค. ์ค๋ ๋ ๊ฐ ์ง๋ ฌํ ๋ฐ ์ญ ์ง๋ ฌํ์ ๋ํ ๋๊ฐ๋ ์ฌ์ ํ ์ง๋ถํฉ๋๋ค. ShardArrayBuffer๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ด์ผ๊ธฐ๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ฌํ๊ฒ๋ Meltdown / spectre๋ก ์ธํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค.
Chrome์ ๋ด์ฅ ๋ Lighthouse (6.0)์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํด 100/100์ ์ป์ ๋ค์ web.dev ๋ฒ์ (6.1)์ ์ฌ์ฉํ๊ณ LCP (์ฝ 5 ~ 6 ์ด)๋ก ์ธํด 70 ๋ ๋์ ์ฑ๋ฅ์ด ๋์ ์์ต๋๋ค. 6.1, 6.0์์ ์ฝ 0.5 ์ด). ๋ถํํ๋ ์ฅ์์ฉ ํค๋ ์ด๋ฏธ์ง (๊ฐ์ธ ๋น ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ฌ์ฉ)์ ๋๋ค.
๋ด ์น ์ฌ์ดํธ๋ฅผ ๋ณด๋ฉด Webpack ๋ฐํ์์ ์๋ฐ ์คํฌ๋ฆฝํธ ์คํ ์๊ฐ์ด ๊ฐ์ฅ ๋ง์ต๋๋ค. ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ํธ ์์ฉ์ ์์ํ ๋๊น์ง ํ์ด์ง์ ํ์ํ์ง ์์ ๊ฒ.
Gatsby๋ ์ด๋ฌํ ๋ชจ๋ ๋ฆฌ์์ค (์ฒญํฌ)๋ฅผ ํ ๋ฒ์๋ก๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. js ํ์ผ ์์ฒด๋ ๋งค์ฐ ์์ผ๋ฉฐ ๋ก๋์ด๋ฏ๋ก ํ์ผ์ ์ ๋ฌํ๋ ๋ฐ 2ms๊ฐ ์์๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ผ ์์ฒด๋ ์ฒญํฌ์ ํ ํ๋ฆฟ ํ์ผ์๋ก๋ํฉ๋๋ค.
์ฌ์ค, ์ฒญํฌ ํ์ผ์ ๊ฒ์ฌ ํ ๋ ๋ชจ๋ ํ์ผ์ด ๋์ ์ํฌํธ๋ผ๋ ๊ฒ์ ์๊ฒ๋์์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ์๋ง๋ก๋๋๊ธฐ๋ฅผ ๋ฐ๋ผ์ง ๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋๋ก๋๋ฉ๋๋ค. ์ด ๋์์ ๋ด๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์ด ์๋๋๋ค.
Gatsby-Image ๋์ ์ด๋ฏธ์ง๋ฅผ ์ง์ ์ฌ์ฉํ๊ณ ํด์๋์ ์์ถ์ ์ค์ด๋ ๊ฒ๊ณผ ๊ฐ์ด ํค๋ ์ด๋ฏธ์ง๋ฅผ ์๋นํ ์ต์ ํํ์ต๋๋ค. ๋ค๋ง, Safari๊ฐ WebP (grr)๋ฅผ ์ง์ํ์ง ์๋ ์ด๋ ค์ด ๋ฐฉ๋ฒ์ ๋ฐฉ๊ธ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Lighthouse์ ์น ๋ฒ์ ์ ์ ์ด๋ "์จ๊ฒจ์ง"๊ฐ๋ฐ ์ฌ์ดํธ์์ Chrome์ ๋ด์ฅ ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๊ด๋ํฉ๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด ์ง๊ณ ๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ฐ ์ค์๊ฐ์ผ๋ก ๋์์ด๋๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. ์ค์ ๋ก Moto G5๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ด ๊ทธ๋ ๊ฒ ๋ง์์ง ํ์ ํ ์ ์์ต๋๋ค!
@derykmarl ๊ณง ์ง์ ๋ ์์ ์
๋๋ค : https://www.macrumors.com/2020/06/22/webp-safari-14/
Apple์ด ๋๋ฆฌ ํผ์ง ์ด๋ฏธ์ง ํ์์ ์ง์ํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฐ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๋ pagespeedinsight๊ฐ ์ ์ ๊ณ์ฐ ๋ฐฉ๋ฒ์ ์๋ฎฌ๋ ์ดํธํ๋ค๋ ๊ฒ์ ์ฝ์์ต๋๋ค. ๋ณด๊ณ ์๋ฅผ ๋ ๋นจ๋ฆฌ ์ป์ ์ ์๋๋ก ๋คํธ์ํฌ๋ฅผ ์กฐ์ ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก https://lighthouse-metrics.com/์ ์ฌ์ฉํ์ง๋ง ์์ง 6.1์ ์ง์ํ์ง ์์ต๋๋ค.
lighthouse 6.x์ ๋ฌธ์ ๋ ์ธ์ ํ์ด๋ฐ์ ์์กดํ๊ณ , ๋์ผํ ํ ์คํธ๋ฅผ 10 ๋ฒ ์คํํ ์ ์์ผ๋ฉฐ ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค.
LCP๋ก ์ธํด 70 ๋ ๋์ ์ฑ๋ฅ์ผ๋ก ๋์ ์์ต๋๋ค.
๋ด ์น ์ฌ์ดํธ์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ธ LCP๊ฐ ์์๋๋ฐ ์ด๋ฏธ์ง๋ฅผ 6 ๊ฐ์ ํ์ ์ด๋ฏธ์ง๋ก ๋ถํ ํ์ฌ LCP๋ฅผ ๋ํญ ์ค์ผ ์์์์ต๋๋ค. ๊ฐ ์ธ๊ทธ๋จผํธ์ ๋์ด๋ฅผ ์๊ณ ์์ผ๋ฉด ์ฝ๊ฒ ์ํ ํ ์ ์๋๋ก Python ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์ต๋๋ค.
from PIL import Image
import os
import ntpath
def crop(pathToFile, height, width=False):
im = Image.open(pathToFile)
imgwidth, imgheight = im.size
[name, ext] = ntpath.basename(pathToFile).split('.')
if(not width):
width = imgwidth
k=1
for i in range(0,imgheight,height):
for j in range(0,imgwidth,width):
box = (j, i, j+width, i+height)
a = im.crop(box)
a.save(os.path.join("./" + name + "-" + str(k) + "." + ext), compress_level=9, optimize=True)
k +=1
pathToFile = '/path/to/your/img.jpg'
crop(pathToFile, 933)
๋ํ ์ด ์ด๋ฏธ์ง ์์ถ ์น ์ฌ์ดํธ ๊ฐ ๋๋ฌด ๋ง์ ํ์ง์ ์์ง ์์ผ๋ฉด ์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ ์ ๋ง ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 20 % -30 % ํ์ง ํ์๋ก ๋ด๋ ค ๊ฐ์ ํ์ผ ํฌ๊ธฐ๋ฅผ ๋ํญ ์ค์ผ ์ ์์ต๋๋ค.
๋๋ ์จ๋ผ์ธ์ ๋ํด ๋ช ๊ฐ์ง ์ง๋ฌธ์ํ๊ณ ์ด๋ค ์ฌ๋๋ค์ ๋ด ์ด๋ฏธ์ง๋ฅผ ์ ํ ๋ถ๋ถ๊ณผ ์ ํ ๋ถ๋ถ ์๋์ ๋ํด 2๋ก๋ง ๋ถํ ํ๋๋ก ๊ถ์ฅํ์ง๋ง ํจ์ฌ ๋ ์ ์๋ํ๊ธฐ ์ํด 6์ผ๋ก ๋ถํ ํ์ต๋๋ค.
TBT / TTI ๋ ธํธ์ @wardpeet ์์, ๋ค๋ฅธ ๋ฐ์ ๊ธฐ๋ฐ ์ฌ์ดํธ๊ฐ ์ด์ ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ ์ค๋ ๋์ ๋ฏธ์น๋ ์ ๋ฐ์ ์ธ ์ํฅ์ ์ด๋ป๊ฒ ์ํํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
reactjs.org ์์ฒด (๋ด๊ฐ ์๋ ํ Gatsby๋ก ๋น๋ ๋จ)๋ ์๋ก์ด gatsbyjs.com๋ณด๋ค ์๋นํ ์์ TTI (7-8 ~ vs 12 ~)๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค (๊ทธ๋ฐ๋ฐ ์ถ์๋ฅผ ์ถํํฉ๋๋ค!). NextJS๋ React ๊ธฐ๋ฐ ์์ฒด ์์๋ ๋ถ๊ตฌํ๊ณ TTI / TBT์์ ๋งค์ฐ ์ข์ ์๋ฅผ ์ ์งํ์ต๋๋ค (์คํฌ๋ฆฝํธ์ ์๋์ ํฌ๊ธฐ ๋๋ฌธ์ผ ์๋ ์์ต๋๋ค. ์ฌ๊ธฐ์ gatsby.com์๋ PSI์ ๋ฐ๋ผ ์ฝ 628.3kb์ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. reatjs.org 466.1kb) , nextjs.org ๋ง 216.8kb)
(์ด๊ฒ์ ๋ถ๋ช
ํ ๋จ์ผ ์คํ์ด๋ฉฐ ์ค์ ๋น๊ต๋ก ์ฌ์ฉํด์๋ ์๋์ง๋ง ์ถ์ธ๋ ์ฌ๋ฌ ์คํ์์ ๋งค์ฐ ์ผ๊ด ์ ์
๋๋ค).
Javascript โข์ ์ ์ฒด ๋น์ฉ์ผ๋ก ์ธํด ์ ์ ์ฐจ์ด๊ฐ ๋๋ถ๋ถ์ ๋๊น? Gatsby ํ์ด ํ๋ก์ธ์ค์ ๋ํ ํต์ฐฐ๋ ฅ์ ๊ณต์ ํ ์์๋ ์ข์ ๊ธฐํ๊ฐ ๋ ์์๋ ์๋ก์ด ์น ์ฌ์ดํธ๋ฅผ ์ต์ ํํ๋ ๊ฒฝ์ฐ, Gatsby ํ๋ ์ ์ํฌ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ถ๊ฐ ํ ์์๋ ๋ง๋ฒ์ด ๋ง์ง ์์ต๋๋ค.
@juanferreras @wardpeet , ๋ด ํ๋ก์ ํธ์์ ๋ฐ๊ฒฌ ํ ๊ฒ๋ ์์ต๋๋ค. ์คํ์ผ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง ์ด์ ๋ก ์คํ์ผ์ด ์ํ ์ค์ ๋ค์ ๊ณ์ฐ / ์ฌ์์ฑ๋๊ณ ๋ธ๋ผ์ฐ์ ์ ๋ค์ ์ฝ์ ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ง์ ์ฃผ์ ์ค๋ ๋๋ฅผ ํ์๋กํฉ๋๋ค.
์ด๊ฒ์ ๊ฐ์ธ ๋น์ ์ํ ๋ฌธ์ ๋๋ฌธ์ ๋๋ค. https://github.com/styled-components/styled-components/issues/2171
Gatsby๋ ๋ํ ๊ฐ๋ฐ ์ค์ ssr์ ์คํํ๋ ์์ ์ํ๊ณ ์์ต๋๋ค. https://github.com/gatsbyjs/gatsby/issues/25729 , ์ด๊ฒ์ ์ด๋ฌํ ์ข ๋ฅ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋๋ฌด.
@teclone
https://github.com/styled-components/styled-components/issues/2171 ์ ์๋ฃจ์ ์ ์ ๊ณตํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ์์ ํ์ต๋๊น?
@dfguo , ํ์ฌ๋ก์๋ ์์ ์ด ์์ต๋๋ค. ์๋ํ๋ฉด ํ๋ก๋์ ์ ๊ฐ์ธ ๋น๋ ์ฌ์ ํ ์ค๋ฅ์ ๋ํ ๊ฐ๋ฐ ๋์๋ง์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ค์ ์คํ์ผ์ด ์ฌ์์ฑ๋๋ ์ด์ ๋ฅผ ์ ํํ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฆ, ๊ฐ์ธ ๋น์ ํ๋ก๋์ ๋น๋์์ ๋นํ์ฑํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ค์ ์ฐจ์ด์ ์ ๊ฐ๋ฆฌํค๋ React์ ์ฝ์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค.
์งํ์ค์ธ์ด ์์ ์ ๋ชฉ์ # 25729๋ ๊ฐ๋ฐ์ค์ธ ์ง์ ํ SSR์ ์คํํ๋ ๊ฒ์ด๋ฏ๋ก ๊ทธ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ๊ฐ์ธ ๋น ํ์ ํฌํจํ์ฌ.
BTW, gatsby build --no-uglify
๋ก Gatsby ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ์ฌ React์ ๊ฐ๋ฐ ๋ฒ์ ์ผ๋ก ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ์ฌ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. https://www.gatsbyjs.com/docs/gatsby-cli/#build
Dev SSR์ ์์ผ๋ก ์ด์ ๊ฐ์ ์์ ์ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค!
๋ฐ๋ผ์ ์ฌ์ฉ์ ์ง์ CSS ๋ณ์๋ก dark-light
๋ชจ๋๋ฅผ ๊ตฌํํ๋ ๋์ ๋ด ์ฌ์ดํธ๋ฅผ @emotion
๋ฐ theme-ui
์์ linaria
๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค theme-ui
๋ชฉํ๋ ๋ธ๋กํน ์๊ฐ / ๋ฉ์ธ ์ค๋ ๋ / js์ ๊ด๋ จ๋ css
๋ ๋ ์ด์ ๋ฐํ์์ ํ๊ฐ๋์ง ์๊ณ ๋น๋ ์๊ฐ์ ์ปดํ์ผ๋ฉ๋๋ค (์ค์ ๋ก linaria
๋ gatsby
์ด์ ๊ด๋ จํ์ฌ @emotion
๋ณด๋ค gatsby
๋ฌธ)
์ด ํ๋ก์ธ์ค๋ ์์ ํ ๋งค๋๋ฝ์ง ์์ต๋๋ค. @emotion
ํ๋ ๋๋ถ๋ถ์ ์์
์ linaria
๋ก๋ง ์๋ํ์ง๋ง ๋ค๋ฅธ ์ผ๋ถ๋ ์๋ํ์ง ์์ผ๋ฉฐ ์ฌ์ฉ์ ์ง์ CSS๋ฅผ ํตํด ๋ค์ ์์ฑํ๊ฑฐ๋ ๋ค์ ๊ตฌํํด์ผํฉ๋๋ค. ๋ณ์
๊ฐ์ธ ๋น์ ๋ํ DX ๊ฒฝํ์ __bad__์ด๋ฉฐ ํซ ๋ฆฌ๋ก๋ฉ์ด ์๋ํ์ง ์์ต๋๋ค (๋ธ๋ผ์ฐ์ ๊ฐ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ ์ค์งํ๋ค๊ฐ ๋ค์ ์์ํด์ผ ํจ). ์ ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ์ข์์ต๋๋ค. @emotion ๋ฐํ์ ๋ฅ๋ ฅ์์ ์ ๋ง๋ก ํ์ํฉ๋๊น?
__ ์ฆ, ๋ฑ๋ ๋ฉํธ๋ฆญ์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค __
๋ ๊ฐ์ netlify ๋ฐฐํฌ๋ฅผ ๋น๊ตํ ์ ์์ผ๋ฉฐ ์ค์ ๋ก @emotion
์ฌ์ดํธ๋ 70์ด ๋๊ณ linaria
์ฌ์ดํธ๋ ์ค์ ๊ฐ 70์
๋๋ค.
๋งํ ๊ฒ๋์์ด ๋๋๋ณ๋ก ํฅ๋ถ๋์ง ์๋๋ค
๋ฒ๋ค ๋ถ์ :
component--content..
. ์ด์ 20bae078..
)๊ฐ 44.2kb์์ 46.8kb๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.๊ทธ๋์ js์ ์คํ์ผ์ด css์ ์คํ์ผ๋ก ์ด๋ํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง (~ 12kb๋ ์ค์ํ IMO), ์ด๊ฒ์ ๋ฑ๋ ๋ฉํธ๋ฆญ์ ์ค์ง์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์์์ต๋๋ค (์ค์ํ ๊ฒ์ ์๋๊ฐ์?).
๊ทธ๋์, ์ ๋ linaria
์ด๋ํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋๊ฐ์ดํ๊ณ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค๊ณ ํด๋ ๋๋ผ์ง ์์ ๊ฒ์
๋๋ค (์ด๋ก ์ ์ด๊ฒ์ ์ผ์ด์ค (?)). ํ์ง๋ง ๋ด ์์ ๊ทธ ๊ณผ์ ์ ๊ฐ์น๊ฐ ์์์ต๋๋ค.
๊ทธ๋๋ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ํ์ฌ js
๋ฒ๋ค์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์์ ๋ด๋ ค๊ณ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ด์์ต๋๋ค https://github.com/gatsbyjs/gatsby/issues/26655
๊ฐ์ธ ๋น์ ๋ํ DX ๊ฒฝํ์ ๋์๊ณ ํซ ๋ฆฌ๋ก๋ฉ์ด ์๋ํ์ง ์์ต๋๋ค (๋ธ๋ผ์ฐ์ ๊ฐ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ ์ค์งํ๋ค๊ฐ ๋ค์ ์์ํด์ผ ํจ). ์ ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ์ข์์ต๋๋ค. @emotion ๋ฐํ์ ๋ฅ๋ ฅ์์ ์ ๋ง๋ก ํ์ํฉ๋๊น?
@kuworking ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง 2.24.9
๋ณด๋ค ์๋ก์ด gatsby
๋ฒ์ ์์๋ง ๋ฐ์ํ์์ ์์์ต๋๋ค. ์์ธ์ด ๋์ผํ ์ง ํ์คํ์ง ์์ง๋ง ์ฌ๋๋ค์ด ๋ฌธ์ # 26192์์ ์ด์ผ๊ธฐํ๊ณ ์์์ ์๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
@kuworking ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง
2.24.9
๋ณด๋ค ์๋ก์ดgatsby
๋ฒ์ ์์๋ง ๋ฐ์ํ์์ ์์์ต๋๋ค. ์์ธ์ด ๋์ผํ ์ง ํ์คํ์ง ์์ง๋ง ์ฌ๋๋ค์ด ๋ฌธ์ # 26192์์ ์ด์ผ๊ธฐํ๊ณ ์์์ ์๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋๋ ๋ช ์ฃผ ๋์ "gatsby": "2.24.14"
์ (๊ณผ) ํจ๊ป ์์์ผ๋ฉฐ ์ง๊ธ๊น์ง linaria
์์๋ง ์ด๊ฒ์ ๊ฒฝํํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋ฉด ์ด๊ฒ์ด ์์๋ผ ๋๊น์ง ๊ฐ์ธ ๋น๋ฅผ ์
๋ฐ์ดํธํ์ง ์์ ๊ฒ์
๋๋ค. ๊ฐ์ฌํฉ๋๋ค ๐
๋ด๊ฐ ์ ์ํ๋ ๋ฌด์์ ์๋ฏธ @kuworkingํ๋ฉด ๋ค์ด ๊ทธ๋ ์ด๋ ์ด์ฉ๋ฉด ๊ฒฝ์ฐ ๊ทธ์
๋๋ค 2.24.9
๋ค์ ๊ฐ๋ฐ - ์๋ฒ ์ค์ง ๋ฌธ์ ๋ ํจ๊ป ๋ฐ์ํ์ง ๊ฒ์
๋๋ค linaria
; ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋จ์ง ์์ด๋์ด์
๋๋ค. ๊ทธ๊ฒ ์ฌ์ค์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๊ฐ์ธ ๋น์ ๋ํ DX ๊ฒฝํ์ ๋์๊ณ ํซ ๋ฆฌ๋ก๋ฉ์ด ์๋ํ์ง ์์ต๋๋ค (๋ธ๋ผ์ฐ์ ๊ฐ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ ์ค์งํ๋ค๊ฐ ๋ค์ ์์ํด์ผ ํจ). ์ ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ์ข์์ต๋๋ค. @emotion ๋ฐํ์ ๋ฅ๋ ฅ์์ ์ ๋ง๋ก ํ์ํฉ๋๊น?
๋น ๋ฅธ ์๋ก ๊ณ ์นจ ์ ์๋ํด ๋ณด์ จ์ต๋๊น?
์ ๋ ์ต๊ทผ TBT ๋ฐ LCP๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ํ๋ก๋์ ๊ฐ์ธ ๋น ์ฌ์ดํธ (~ 120 ํ์ด์ง)๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค. ์ฐ๋ฆฌ ์ฌ์ดํธ๋ svgr๋ก ์์ฑ๋๊ณ material-ui ์คํ์ผ์ ์ฌ์ฉํ์ฌ ์คํ์ผ์ด ์ง์ ๋ ๋ฐ์ svg ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ์ฌ svg ๋ฌด๊ฑฐ์ด ๊ฒ์ ๋๋ค. ํ๊ท ์ฑ๋ฅ ๊ฒฐ๊ณผ๋ ์ด๊ธฐ ์ ์์ + -5 ๋ฒ์ (v6 ์ด์ ~ 85์์ ~ 45 ๋ชจ๋ฐ์ผ ์ฑ๋ฅ ๊ฐ์)์์ผ๋ฉฐ ๋ง์ด๊ทธ๋ ์ด์ ์ด ํ ๋ง๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์๋์ ์ผ๋ก ๊ณ ํต์ค๋ฝ์ง ์์์ง๋ง ๋น ๋ฅธ ์๋ก ๊ณ ์นจ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํ์ต๋๋ค. ์๋.
์์งํ ๋งํด์ ์ผ๋ฐ์ ์ธ "์ฌ์ฉํ์ง ์๋ ์๋ฐ ์คํฌ๋ฆฝํธ ์ ๊ฑฐ"๋ฑ๋ ๊ฒฝ๊ณ ์ธ์ ์๋ ํ ์์๋ ๋ค๋ฅธ ์ต์ ํ ๋ ๋ ์์ธํ ์ธก์ ํญ๋ชฉ์ด ์๋ค๋ ์ ์ ์ฝ๊ฐ ์ค๋งํ์ต๋๋ค.
์๋๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ธ ๋น๋ฅผ ์ ํํ ์ฃผ๋ ์ด์ ์ค ํ๋์ด๋ฉฐ ํ์ด์ง๊ฐ ์ฌ์ ํ๋ก๋ ์๋๊ฐ ๋น ๋ฅด์ง ๋ง ํต์ฐฐ๋ ฅ ์ ์๊ฐ ๊ทธ๋ ๊ฒ ํฐ ํํธ๋ฅผ ์น๋ฉด SEO ๊ด์ ์์ ์ ๋นํํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๊ท์๋ง : NextJS๋ก ์ ํํ๊ณ ๋ ์ข์ ์ ์๋ฅผ ์ป๊ณ ์์ต๋๋ค ๐คญ
๊ท์๋ง : NextJS๋ก ์ ํํ๊ณ ๋ ์ข์ ์ ์๋ฅผ ์ป๊ณ ์์ต๋๋ค ๐คญ
Svelte๋ ์ด๋ป์ต๋๊น?
Gatsby ๊ฐ๋ฐ์๊ฐ ๋ก๋๋งต (์์ ๋ ๊ฒ ์ด์ธ)์์ ํน์ ์ค์์ฑ / ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ณ ์๋์ง ์ฌ๋ถ๋ฅผ ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ํ๋ฉด ์ฆ๊ฐ์ ์ธ ํด๊ฒฐ์ฑ ์ ์์ง๋ง ์๋ง๋ ์ด๋ค ์ข ๋ฅ์ ๋ฏธ๋ ๋ฐฉํฅ๊ณผ ๊ตฌํ์ ์ด์ ์ ๋ง์ถ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๊ฒ์ด ์๋๋ฉด ๊ทธ๊ฒ์ด
๊ฐ์ธ ๋น๋ gatsby-node
*๋ก ์ปดํ์ผ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ถ๋ถ์ ๋๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ๋ ๋ ๋ฒ๋ฆฌ์งํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๊ณ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
* ์ฌ์ฉํ๋ pageContext
(๊ฒ์ ๋ ๋ชจ๋ ๊ฒ์๋ฌผ์ ๋ํ ๋ฐ์ดํฐ)๋ฅผ ์ค์ด๊ธฐ ์ํด ํ์ฌ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฅผ json
ํ์ผ์ ์ ์ฅํ๊ณ ์์ต๋๋ค ( gatsby-node
). ํ์ํ ๊ฒฝ์ฐ ์ฌ์ดํธ์์ ๊ฐ์ ธ ์์ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด์๋ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๊ปด์ง๋๋ค.
๋ฑ๋ ์ ์์ ๋๋ฌด ์ฝ๋งค์ด์ง ๋ง์ธ์. ํนํ
๋ค๋ฅธ ์ฌ์ดํธ์ ๋น๊ต ํ ๋ฒค์น ๋งํฌ๋ก, ์ฐ๋ฆฌ๊ฐํด์ผ ํ ๋ชฉํ๊ฐ ์๋๋๋ค.
๋ง์ ์ ์ป๊ธฐ ์ํด ๋
ธ๋ ฅํฉ๋๋ค.
์ต๊ทผ๊น์ง ๊ฐ์ธ ๋น๊ฐ ์์ํ 100์ ๊ธฐ๋กํ ๊ฒ์ ์๋๋๋ค.
ํด๊ฒฐํด์ผ ํ ๋ช ๊ฐ์ง ๋ฌธ์ ์ด์ง๋ง ํ์ฌ SEO ๊ฒ์์ ์๋์ ์ฝํ
์ธ ์
๋๋ค.
๋ํ๊ธฐ ๋งํฌ, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ค๋ฃน๋๋ค.
๋ด 2 ์ผํธ.
2020 ๋ 8 ์ 28 ์ผ ๊ธ์์ผ 16:57 kuworking, [email protected] ์์ฑ :
๊ท์๋ง : NextJS๋ก ์ ํํ๊ณ ๋ ์ข์ ์ ์๋ฅผ ์ป๊ณ ์์ต๋๋ค ๐คญ
Svelte๋ ์ด๋ป์ต๋๊น?
Gatsby ๊ฐ๋ฐ์๊ฐ์ด ๋ฌธ์ ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ ๊ณตํ๋์ง ์ฌ๋ถ๋ฅผ ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ก๋๋งต์ ์ค์๋ / ์ฐ์ ์์ (์์
ํ๋), ์ฆ๊ฐ์ ์ธ ํด๊ฒฐ์ฑ ์ด ์๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์
์ด๊ฒ ๋๋ ์ ๊ฒ์ ์ด์ ์ ๋ง์ถ ๋ฏธ๋ ๋ฐฉํฅ๊ณผ ์คํ์ ์ข ๋ฅgatsby๋ gatsby-node *๋ก ์ปดํ์ผ์ํ๊ธฐ ๋๋ฌธ์
๊ทธ ๋ถ๋ถ์ ๋๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ๋ ๋ ๋ฒ๋ฆฌ์งํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๊ณ ์์ต๋๋ค.* ๋ด๊ฐ ์ฌ์ฉํ๋ pageContext๋ฅผ ์ค์ด๋ ค๋ฉด (๋ชจ๋
๊ฒ์ ๋ ๊ฒ์๋ฌผ), ๋๋ ํ์ฌ (๊ฐ์ธ ๋น ๋ ธ๋๋ฅผ ํตํด) ๊ฐ์ฅ ๋ง์ด ์ ์ฅํ๊ณ ์์ต๋๋ค.
json ํ์ผ์ ํด๋น ๋ฐ์ดํฐ ์ค ํ์ํ ๊ฒฝ์ฐ ์ฌ์ดํธ์์ ๊ฐ์ ธ์ต๋๋ค.
๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด์๋ ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋๊ปด์ง๋๋ค.โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/gatsbyjs/gatsby/issues/24332#issuecomment-682664232 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/ALSIKRHQUIKR5YO6OGA3DC3SC7AWPANCNFSM4NHP7XCA
.
์๋ต์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ์ฑ๋ฅ์ ๋ง์ ๋ถ๋ถ์ด ์์ผ๋ฉฐ๋ก๋ ๋ฉํธ๋ฆญ์ ํผ์ฆ์ ์์ ์กฐ๊ฐ ์ผ๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฒ ๋ถ๊ธฐ์ ๋ค์ ๋ถ๊ธฐ์ Gatsby๋ฅผ ๋ ์๊ฒ ๋ง๋ค๊ณ TBT๋ฅผ ์ค์ด๊ธฐ์ํ ๋๊ธฐ๋ฅผ ๋ถ์ฌ ๋ฐ์์ต๋๋ค. ํ์ฌ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ React ๋ฒ๋ค ํฌ๊ธฐ, MDX, ๋ํ ํ์ด์ง (์ปจํ ์ธ / ์คํ์ผ๋ง), ์ถ์ ์คํฌ๋ฆฝํธ ๋ฐ ์ฒซ ๋ฒ์งธ๋ก๋์ ์ฃผ์ ์ปจํ ์ธ ์ธ ๊ธ๊ผด / ์ด๋ฏธ์ง์ ๋๋ค.
ํ์ฌ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๊ณ ๋ถ์์ ์ฐ๊ธฐ ํ ์์๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ธฐ ์ํด gatsby-image ๋ฐ ๋ถ์ ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ์ฌํ๊ณ ์์ต๋๋ค.
์ฌํ๊ฒ๋ ๋๋ ์ด๋ค ์ถ์ ๋ ํ ์ ์์ต๋๋ค. ๋ํ .com ์ฌ์ดํธ์ ๊ณ ๊ฐ์ ์ดํด๋ณด๊ณ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ํ์ธํ์ฌ ์ด๋ฌํ ์ต์ ํ๋ฅผ gatsby ๋๋ ํ๋ฌ๊ทธ์ธ์ ์ ์ฉ ํ ์ ์์ต๋๋ค.
ํธ์งํ๋ค:
์ฐ๋ฆฌ๊ฐ ๊ฐ์ ํ ์์๋ ๋ฐฉ๋ฒ์๋ณด๊ธฐ ์ํด ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐํ๊ณ ์๋ ์ผ์ ๋ํ ๋ ๋ง์ ํต์ฐฐ๋ ฅ์ ์ป๊ธฐ ์ํด ์ฌ๋ฌ๋ถ์ ์์ค ์ฝ๋๋ฅผ ์ดํด ๋ณด๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
๋ด๊ฐ ์ฐพ์ ์์๋ ๋ชจ๋ ๊ฐ์ ํ์ ๋ชจ ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๋ reddit ๊ฒ์๋ฌผ์ ๋ง๋ค์์ต๋๋ค. ๋ ๋ง์ ํ์ ์ป์ ์ ์๋ค๋ฉด ๋ชฉ๋ก์ ์์ฑํ์ญ์์ค.
๊ฐ์ธ ๋น ์ด๋ฏธ์ง (ํ ํ์ด๋ก ์ด๋ฏธ์ง ๋ฐ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง) ๋ง ์ ๊ฑฐํ๋ฉด 10 ~ 20 ์ ์์ ์ ์๊ฐ ํฅ์๋ฉ๋๋ค.
์ต๊ทผ ํ
์คํธ์์ tracedSVG
์ค์ ๋ก ๊ฐ์ฅ ํฐ ์ฝํ
์ธ ๊ฐ ํฌํจ ๋ ํ์ธํธ์ ์ฑ๋ฅ ์ ์๊ฐ ํฌ๊ฒ ํฅ์๋๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. Lighthouse์์์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ง๊ธ์ SVG๊ฐ ์ ์ฒด ํด์๋ ์ด๋ฏธ์ง์ ๋์ผํ ํฌ๊ธฐ๋ก ๊ฐ์ฃผ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฏ๋ก SVG๊ฐ LCP ๋์์ธ SVG์์ ์ ์ฒด ์ด๋ฏธ์ง๋ก ์ ๋ ๊ต์ฒด๋์ง ์์ต๋๋ค.
base64๋ฅผ ์ฌ์ฉํ ๋ ํด์๋๊ฐ ์๊ธฐ ๋๋ฌธ์ LCP ํ๋ณด๊ฐ ์๋๋ฏ๋ก Lighthouse๋๋ก๋ ๋ ๋๋ง๋ค ์ ์ฒด ํด์๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ถ์ ๋ SVG์ ๋ชจ์์ด ๋ง์์ ๋ค์ง ์๋๋ค๋ฉด (๊ฐ์ธ์ ์ผ๋ก ์ ํธ ํจ) ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
v5๊ฐ v6๋ณด๋ค ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? NextJS๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ๋ ํญ์ 60์์ 85๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
+1
๋๋ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ํ์ ์์ ์ ํด์๋ค. ์์ง 100 %๋ ์๋์ง๋ง ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฒ์ ์ ์์ฑํด์ผ ์์ ๋ง์ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ํ๋ฏธ๋ฅผ ๋ง๋ค ์ ์์ง๋ง ๋๋ถ๋ถ์ ๋์ ๋ฑ๋ ์ ์๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
์ด๋ฏธ ์ฌ์ฉํ ์ ์์ง๋ง ์์ง ์ ํฌ ํ
์คํธ๋ฅผ ๊ฑฐ์น์ง ์์์ต๋๋ค.
https://github.com/wardpeet/gatsby-image-nextgen/tree/main/gatsby-image
npm install --save @wardpeet/gatsby-image-nextgen
์ค์นํ ์ ์์ต๋๋ค. ํ์ฌ gatsby-image ์ฌ์ฉ์๋ฅผ์ํ compat ๋ ์ด์ด ๊ฐ ์์ต๋๋ค.
์์ง ์ง์๋์ง ์๋ ํญ๋ชฉ :
ํ์ฌ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ๋ฐ๋ชจ :
์ฌ์ดํธ : https://wardpeet-using-gatsby-image.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwardpeet-using-gatsby-image.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_4M_0879160e38bb6c5489f85534de2dd197/
์๋ก์ด gatsby-image-nextgen ๋ฐ๋ชจ :
์ฌ์ดํธ : https://gatsby-image-nextgen.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgatsby-image-nextgen.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_C0_63317160bdfc71ece1a2057df8b08133/
@wardpeet ํ์ฌ ๋ฐ๋ชจ์ ๋ํ pagespeed-insights ๋งํฌ๋ nextgen์ผ๋ก ์ด๋ํ์ฌ ๋์ผํ ์ ์๋ฅผ ํ์ํฉ๋๋ค.
๋ฉ์ง ์ผ, btw. ์งํ ์ํฉ์ ๋ณด๋ ๊ฒ์ด ์ ๋ง ํฅ๋ฏธ ๋กญ์ต๋๋ค.
๊ณ ์ณ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ด ์
๋ฐ์ดํธ๋ ์ด์ ์ ์ฐ๊ฒฐํ์ง ์์ ๊ฒ์ ์ง์ ํ์ต๋๋ค. ์ ๋ gatsby-image
์ฌ์ฉํ์ง ์๊ณ ์ค์ ๋ก gatsby-background-image
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. gatsby-image
๋ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค ... ๊ฐ๋ฅํ๋ค๋ฉด ์๋ก์ด @wardpeet/gatsby-image-nextgen
ํด๋น ๊ตฌ์ฑ ์์๋ฅผ ๋ค์ ์์ฑํด์ผ ํ ์๋ ์์ต๋๋ค ....
์ด ๋ฌธ์์์๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ํ ๋์ด https://www.freecodecamp.org/news/gatsby-perfect-lighthouse-score/ ๋ด๊ฐ ๊ทธ๋ค ์ค ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฏธ์ด ์ค๋ ๋์์ ์ธ๊ธ ๋ ์๊ฐ๋์ง๋ง๋ฅผ ...
ํ๋ฌ๊ทธ์ธ์ด ๊ธฐ๋ฅ ์๋ฃ๋๋ฉด @DannyHinshaw . ๊ทธ ํ๋ฌ๊ทธ์ธ๋ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. ๋น๊ณ ์ด๋ฏธ์ง๋ ๋ด์ผ ํด์
@wardpeet/gatsby-image-nextgen
-0.0.2์ ์ ๋ฒ์ ์ ๊ฒ์ํ์ต๋๋ค.
์์ ๋ง์ ๋ํผ๋ฅผ ๋ง๋ค ์์๋ ์ปดํฌ์ ๋ธ ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์๊ฐ ์ผ๋ง๋ ํ์ํ์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ํธ ๋๋ ์ ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ๋ด๋ถ๋ฅผ ์ํ์ญ๋๊น? ๋ด ์ฒซ ๋ฒ์งธ ์์ด๋์ด๋ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ๊ฒ์ด์์ง๋ง ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๋ก ํ์ฑํํ์ฌ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ๊ณ ์ ํ ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ค์ด์ผํฉ๋๋ค.
์ต์ ๋ฐ๋ชจ : https://gatsby-image-nextgen.netlify.app/
@wardpeet ๋๋จํฉ๋๋ค! ๋๋ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง์ ์ํธ ๋๋ ์ ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ํ์ง๋ง ์ / ๋ถ๋๋ฌ์ด ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์์!
์ ๋ ํญ์ ๋ชจ๋ฐ์ผ์์ 99 ์ ์ ๋ฐ์์ต๋๋ค. ์ง๊ธ์ 76 ์ ์ ๋๋ค. ์ ์ LCP๋ 7.0์ด๊ณ ์ ์ ์์ ์ด๋ฏธ์ง๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํฉ๋๋ค. ๋ง์ด ์ ๋ผ. ํด๋ ์ ํ์์ ๋ด ์ฌ์ดํธ๋ฅผ ์ด๋ฉด ์์ฒญ๋๊ฒ ๋น ๋ฆ ๋๋ค. ์ฌ๋๋ค์ ๋น์ ์ด ์๊ณ ์๋ ๊ฒ์ ๋๋ผ์ง ์์ต๋๊น? ๋ํ ๋ด ์ด๋ฏธ์ง๋ฅผ webp ๋๋ ๊ธฐํ์ ๋ฃ์ผ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋์ง๋ง ์ด๋ฏธ childImageSharp_withWebp๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ์ดํดํ์ง ๋ชปํฉ๋๋ค. Gastby Image์ background-image๊ฐ lighthouse์ pagespeedinsight์์์ด ์ ๋ฒ์ ์์ ์๋ํ์ง ์๋ ๊ฒ์ ์์ํ๊ณ ์์ต๋๋ค. ๋ด ๋ง์์ด ํ๋ค๋ ธ๋ค. ๋๋ ๊ฐ์ ์ ๋๋ฉ์ด์ ์ ์ฃฝ์ด๊ณ ๋ชจ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ ๋ฐ์ผ๋ก ์กฐ์ ํ์ง๋ง ํ ์ง์ ๊น์ง ์์ง์ด์ง ์์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ฝ๊ณ ์๋๋ฐ ๋๋ฅผ ๋์ธ ๊ฒ์ด ์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์๋๋ค .... ์, ๋ฐฉ๊ธ ์ฌ๋ ค๋ค ๋ณด์๋ค ... ๋๋ @wardpeet ๋ด ์๊ฐ์ ๋ญ๊ฐ ๐๐ป
@davidpaulsson ๋ง์์ ๋น์ ์ด ์ด๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฅผ ๊ณต์ ํฉ๋๊น? ์๋ก์ด ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๋ก ์ํธ ๋๋ ์ ์ด ์ฌ์ ํ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ช ๊ฐ์ง ์๋ ๋จ๊ณ๋ฅผ ์ํํด์ผํฉ๋๋ค.
@davidpaulsson ๋ง์์ ๋น์ ์ด ์ด๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฅผ ๊ณต์ ํฉ๋๊น? ์๋ก์ด ๊ฐ์ธ ๋น ์ด๋ฏธ์ง๋ก ์ํธ ๋๋ ์ ์ด ์ฌ์ ํ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ช ๊ฐ์ง ์๋ ๋จ๊ณ๋ฅผ ์ํํด์ผํฉ๋๋ค.
ํ์คํ! ์ง๊ธ ์ด๋ ๊ฒ ์ฌ์ฉํฉ๋๋ค
const artDirection = [
medium.childImageSharp.fluid,
{
...large.childImageSharp.fluid,
media: `(min-width: 1390px)`,
},
];
return <Img fluid={artDirection} />
@wardpeet ์๋ ํ์ธ์ ์๋. blurha.sh ๊ฐ gatsby ์ด๋ฏธ์ง nextgen์ ์ ์ฉ ํ ์ ์์ต๋๊น?
@wardpeet ๋๋ gatsby-image-nextgen ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์ค์ ๋ก ๋ด LCP ์๊ฐ์ ํฅ์ ์์ผฐ์ต๋๋ค (~ 5 ์ด์์ ~ 1.5 ์ด๋ก ์ค์์ต๋๋ค). ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ํ @davidpaulsson ์ด ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ ์ฌํ ์ํธ
nextgen ํ๋ฌ๊ทธ์ธ์ผ๋ก์ด๋ฅผ ๊ฐ๋ฅํ๊ฒํ๋ ๋ฐ ํ์ํ ์๋ ๋จ๊ณ์ ๋ํด ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@Jimmydalecleveland ๊ฐ์ฌํฉ๋๋ค ์ง๋ฏธ! GatsbyImageSharpFluid_withWebp
๋ฅผ GatsbyImageSharpFluid_withWebp_tracedSVG
๋ก ๋์ฒดํ๋ฉด ์ Gatsby Webiste์ ์ฑ๋ฅ ์ ์๊ฐ ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ๋๋ 54 % ์ดํ๋ฅผ ์ป์๊ณ ์ด์ tracedSVG๋ก 80 % ์ด์์ ์ป๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์์ฒญ๋ ๊ฐ์ ์
๋๋ค ๐ฏ
์ต๊ทผ ํ ์คํธ์์
tracedSVG
์ค์ ๋ก ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ๊ฐ ํฌํจ ๋ ํ์ธํธ์ ์ฑ๋ฅ ์ ์๊ฐ ํฌ๊ฒ ํฅ์๋๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. Lighthouse์์์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ง๊ธ์ SVG๊ฐ ์ ์ฒด ํด์๋ ์ด๋ฏธ์ง์ ๋์ผํ ํฌ๊ธฐ๋ก ๊ฐ์ฃผ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฏ๋ก SVG๊ฐ LCP ๋์์ธ SVG์์ ์ ์ฒด ์ด๋ฏธ์ง๋ก ์ ๋ ๊ต์ฒด๋์ง ์์ต๋๋ค.base64๋ฅผ ์ฌ์ฉํ ๋ ํด์๋๊ฐ ์๊ธฐ ๋๋ฌธ์ LCP ํ๋ณด๊ฐ ์๋๋ฏ๋ก Lighthouse๋๋ก๋ ๋ ๋๋ง๋ค ์ ์ฒด ํด์๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ถ์ ๋ SVG์ ๋ชจ์์ด ๋ง์์ ๋ค์ง ์๋๋ค๋ฉด (๊ฐ์ธ์ ์ผ๋ก ์ ํธ ํจ) ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
@abdullahe ์ด์ ์ ํ์ธํ ์ ์ด ์์ผ๋ฉฐ ์บ๋ฒ์ค์ ๋ํ ์ข ์์ฑ์ด ์์ผ๋ฉฐ ๋ ธ๋ ์บ๋ฒ์ค๋ ๋งค์ฐ ์์ ์ ์ด์ง ์์ต๋๋ค. ์๋๋ฉด ์ ์ด๋ ๊ณผ๊ฑฐ๋ ์๋ ์์ต๋๋ค. ๋ค์ ๊ณ ๋ คํ๋ฉด ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค. :)
@guydumais ๋ loading="eager"
๋ฅผ ๋ฃ์ด์ผ ์ ์๋ ๋ณ๊ฒฝ๋ฉ๋๋ค.
@BenjaminSnoha & @davidpaulsson ๋๋ ์ฝ๊ฐ์ ์๋ฅผ ๊ณต์ ํ ๊ฒ์ด๋ค. ์ด๋ฏธ์ง ๊ฐ์ ์ข ํก๋น๊ฐ ๊ฐ๋ก์์ ์ธ๋ก๋ก ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ ์ํธ ๋๋ ์ ์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ๋๋ค.
@wardpeet @wardpeet/gatsby-image-nextgen
์ ํจ๊ป gatsby-remark-images
@wardpeet/gatsby-image-nextgen
๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น? gatsby-config.js
์์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋จ์ํ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ์
๋๊น, ์๋๋ฉด gatsby monorepo์ ๋ณํฉ ๋ ๋๊น์ง ๋ถ๊ฐ๋ฅํฉ๋๊น?
์ด๊ฒ์ด lighthouse์ ๊ด๋ จ์ด ์์ ์๋ ์์ง๋ง ์ gatsby ํ์ด์ง ๋ฐ์ดํฐ JSON ํ์ผ์ด js ํ์ผ์ฒ๋ผ ์ฝํ ์ธ ํด์ฑ์ ์ง์ํ์ง ์๋์ง ๊ถ๊ธํฉ๋๋ค.
js ํ์ผ์ ๋ํ ์ฝํ ์ธ ํด์ฑ์ด Webpack์ ์ํด ์ํ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง gatsby๋ ํ์ด์ง ๋ฐ์ดํฐ JSON ํ์ผ์ ๋ํด์๋ ๋์ผํ ์์ ์ ์ํ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ง์ cdn ๋คํธ์ํฌ ์์ฒญ์ ์ ์ฅํ ์ ์์ต๋๋ค.
์บ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋ ๊ฒฝ์ฐ @teclone page-data.json ํ์ผ์ ๊ณ์ ๋ค์ด๋ก๋ํด์๋ ์๋ฉ๋๋ค. ํ ๋ฒ๋ก๋๋๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค์ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. ํ์ด์ง ๋ฐ์ดํฐ (JS / CSS ํ์ผ๊ณผ ๋น๊ต)์ ๋ํ ์ฝํ
์ธ ํด์ฑ์ ๋ฌธ์ ๋ ํ์ผ์ด ๋๋ฌด ๋ง๋ค๋ ๊ฒ์
๋๋ค. ์ฝํ
์ธ ํด์ฑ์ ์ฌ์ฉํ๋ฉด ํ์ผ์๋ก๋ํ๊ธฐ ์ ์ ํด์๋ฅผ ์์ธกํ ์ ์์ผ๋ฏ๋ก x
์์ x.LONG_HASH
๋ก ๋ณํ๋๋ ๋งค๋ํ์คํธ๋ฅผ๋ก๋ํด์ผํฉ๋๋ค. JS / CSS๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ํฐ ์ฌ์ดํธ์๋ JS ํ์ผ์ด ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ๋งค๋ํ์คํธ๋ฅผ๋ก๋ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค. ๊ทธ๋ฌ๋ ํ์ด์ง ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ํ์ด์ง ๋น ํ๋์ฉ ์์ผ๋ฏ๋ก ๋งค๋ํ์คํธ๊ฐ ์๋นํ ์ปค์ง ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์ฐ๋ฆฌ๋ 10k ํ์ด์ง ์ฌ์ดํธ์์ ๋งค๋ํ์คํธ๊ฐ ์ด๋ฏธ ~ 500k ์์ถ ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. https://github.com/gatsbyjs/gatsby/pull/13004
page-data.json ํ์ผ์ด ๊ณ์ ๋ค์ด๋ก๋๋๋ ๊ฒฝ์ฐ โ devtools์์ ์บ์ฑ์ ๋นํ์ฑํํ์ง ์์๋์ง ํ์ธํ๊ณ https://www.npmjs.com/package/check-gatsby-caching์์ ์บ์ฑ ํค๋๋ฅผ
@KyleAMathews ,
@wardpeet ๋ image-nextgen์ด fadeIn="false"
๋๋ fadeIn="{false}"
์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ด ์ฌ์ค์
๋๋ค.
ํจ์ฌ ๋ ์ ์๋ํ์ง๋ง ~ 80์์ ~ 95๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
@MelleNi ๊ทธ๋ ์ง ์์ต๋๋ค, ๋๋ ๊ทธ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ง๋ง ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ณ ๋ คํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
https://github.com/gatsbyjs/gatsby/discussions/27950 ์์ ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ๋ฐฐ์กํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
@wardpeet
@wardpeet/gatsby-image-nextgen
์ ํจ๊ปgatsby-remark-images
@wardpeet/gatsby-image-nextgen
๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น?gatsby-config.js
์์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋จ์ํ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ์ ๋๊น, ์๋๋ฉด gatsby monorepo์ ๋ณํฉ ๋ ๋๊น์ง ๋ถ๊ฐ๋ฅํฉ๋๊น?
์ด ํ๋ฌ๊ทธ์ธ์๋ remark๋ฅผ ์ด๋ํ๊ฒ ์ต๋๋ค. :)
@MelleNi ๊ทธ๋ ์ง ์์ต๋๋ค, ๋๋ ๊ทธ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ง๋ง ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ณ ๋ คํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
# 27950์์ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์กํ๋ ์ ํ์ ๋ณผ ์ ์์ต๋๋ค.
@wardpeet
@wardpeet/gatsby-image-nextgen
์ ํจ๊ปgatsby-remark-images
@wardpeet/gatsby-image-nextgen
๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น?gatsby-config.js
์์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋จ์ํ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ์ ๋๊น, ์๋๋ฉด gatsby monorepo์ ๋ณํฉ ๋ ๋๊น์ง ๋ถ๊ฐ๋ฅํฉ๋๊น?์ด ํ๋ฌ๊ทธ์ธ์๋ remark๋ฅผ ์ด๋ํ๊ฒ ์ต๋๋ค. :)
์๋๊ฐ ๋ง์ด ํฅ์๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
๊ทธ๋ฌ๋ Gatsby์ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋นํ์ฑํํ์ง ์๊ณ (๊ทธ๋ฆฌ๊ณ ํน์ ๊ธฐ๋ฅ์ ์๋์ผ๋ก ๋ค์ ํตํฉํ์ง ์์ผ๋ฉด) 99-100์ ์ป์ ์ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. fadeIn={false}
๋ฅผ ์ฌ์ฉํ์ง๋ง image-nextgen์ ์ฌ์ฉํ์ฌ ์ด์ Gatsby ์ด๋ฏธ์ง๊ฐ ์๋ฐ ์คํฌ๋ฆฝํธ์์ด ์๋ํ๋๋ก ํ ์ ์์ต๋๋ค. (์ด์ฉ๋ฉด ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์๊ณ , ์ ๋์ ์ผ๋ก ๊ฐ๋ฅํฉ๋๊น?) ์ด์ ์๋ฐ ์คํฌ๋ฆฝํธ ์์ด๋ nextgen ์์ด๋ 99 ์๋๋ก ๋จ์ด์ง์ง ์์ต๋๋ค.
๋๋ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋นํ์ฑํํ๋ ๊ฒ์ด Gatsby์ ์์ด๋์ด๋ฅผ ๋ฌด๋ ๋จ๋ฆฐ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ ์์ฒด ํธ์คํ ๊ธ๊ผด (fontsource) ์ฌ์ฉ์ ์ค๋จํ๊ณ "์์คํ "๊ธ๊ผด๋ก ์ ํํ์ ๋ ๋ชจ๋ฐ์ผ ์ฑ๋ฅ ์ ์ (~ 70 ~ 90)๊ฐ ํฅ์๋์์ต๋๋ค.
@wardpeet ์ํธ ๋๋ ์ ์ผ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น? ๋๋ @BenjaminSnoha & @davidpaulsson ๊ณผ ๊ฐ์ ๋ฐฐ๋ฅผ ํ๊ณ ์์ผ๋ฉฐ ๋ด ํ๋ก์ ํธ์์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋๋ ๋ฐ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
๋ด๊ฐ ๋ณด๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ SSR์ ๋ค๋ฃจ๋ ๊ฒ์
๋๋ค. ํ๋ ๋ฌ ๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ํ์ง๋ง ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ๋ก๋ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ ํ๋๊ณ window
๊ตฌ์ฑ ์์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ ํด์ง๋ฉด DOM์ ์ ๋ฆฌํฉ๋๋ค.
๋ด ์น ์ฌ์ดํธ์์ createPage๋ก ๋ง๋ ๋ชจ๋ ํ์ด์ง์๋ pagespeed ๋ฌด๊ฑฐ์ด ์๋ฐ ์คํฌ๋ฆฝํธ (์ฌ์ฉํ์ง ์๋ JavaScript ์ ๊ฑฐ)์ ์์ค ์ฝ๋ (๋งํฌ ๋ค์ด ๋ฐ ๋งํฌ ๋ค์ด ๋ฐ์ ๊ตฌ์ฑ ์์)๊ฐ ์์ต๋๋ค.
์์ํ CSS ๋ธ๋ฌ ๋ ์๋ฆฌ ํ์์๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์์๋ Plaiceholder ๋ฅผ ๋ฐฉ๊ธ ์ถ์ํ์ต๋๋ค. ์๋ง๋ ์ด๊ฒ์ด ํฅ๋ฏธ๋ก์ธ๊น์? ์ต์ ํฌ์๋ฉ์ ๋ํด ํต์ฌ ํ๊ณผ ๋ํํ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
์ต์ Lighthouse 6.4.0์์ ์ข์ ์ ์๋ฅผ ์ป์ Jamify Blog Starter ์ Next.js ๋ฒ์ ์ ๋ง๋ค์์ต๋๋ค.
next.jamify.org ์์ ๋ฐ๋ชจ ์ฌ์ดํธ๋ฅผ ๊ฒ์ฌ ํ ์ ์์ต๋๋ค.
๋ ๋น์ ์ด Next.js.๋ก ์ ํ ํ ๊ฒ์ ์ ์ํ์ง, ์ฌ๊ธฐ๋ฅผ ๊ฒ์ํ๊ณ ์คํ๋ ค Gatsby๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์์๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ญ์์ค . ํต์ฌ ์ฑ๊ณต ์์ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด์ ๋ํด ๋ ๋ ผ์ํ๊ณ ์ถ๋ค๋ฉด twitter์์ ์ ์๊ฒ ์ฐ๋ฝ ํ ์
@styxlab web.dev/measure ์์ ์ฝ๊ฐ ๋ ๋ฎ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
๊ทธ๋ฌ๋ ํฌ์คํธ ๊ฒฐ๊ณผ์์ ๋ ์ข์ผ๋ฉฐ ์ด๋ค ๊ฒฝ์ฐ์๋ ํ์คํ ๋งค์ฐ ์ข์ ๊ฐ์ด๋ฉฐ ๊ฐ์ธ ๋น ๋ฒ์ https://demo.jamify.org/์ ํ์ ํ๊ฒ ๋ค๋ฆ ๋๋ค.
๋ํ ํ ์ฌ์ดํธ์์ gatsby
๋ํด 11ty
gatsby
๋ฅผ ๋ณ๊ฒฝํ์ผ๋ฉฐ ์ฑ๋ฅ์ด ํฅ์๋์์ง๋ง ํฌ๊ฒ ํฅ์๋์ง๋ ์์๋ค๊ณ ๊ฒ์ ํ ๊ฒ์
๋๋ค.
๋๋ ๋น์ทํ ํ์ด์ง์์ ์ด๋ฒ์๋ ์ด๋ฏธ์ง์ ํจ๊ป
11ty ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋งค์ฐ ํ๋ฅญํ๋ค๊ณ ๋งํ ๊ฒ์
๋๋ค (์คํ์ ์ผ๋ก jsx
๋ฐ styled-components
).ํ์ง๋ง ํด๋ผ์ด์ธํธ ์ธก์ ๋ชจ๋ js
๋ ์์ค๋ฉ๋๋ค ( ๊ทธ๊ฒ์ ์ฝ์
ํ๊ณ ์นํฉ๊ณผ ์ธ์ธ ์ ์์ต๋๋ค. ๊ทธ ์๊ฐ์ ๊ฐ์ธ ๋น๋ฅผ ๊ทธ๋ฆฌ์ํฉ๋๋ค)
11ty๋ฅผ ์ฌ์ฉํ๋ ๋์, ๊ฐ์ธ ๋น๊ฐ ์ผ์ข ์ 11ty ๋ ๋๋ง ์ ๋ต์ ํ์ฑํํ์ฌ ํ๋์ ํ๋ ์ ์ํฌ์์ ํผํฉ ๋ฐ์ ๋ฐ ๋ฐ์์๋ ์ ์ ํ์ด์ง๋ฅผ ๋ฐฐํฌ ํ ์ ์๋ค๋ ๊ฒ์ด ์ผ๋ง๋ ์ข์์ง ์๊ฐํ๊ณ ์์์ต๋๋ค.
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๋๋ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉฐ ์ด ์ฐจ๋จ ์๊ฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด 76์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ํ์ ์์ ์ ํด์๋ค. ์์ง 100 %๋ ์๋์ง๋ง ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฒ์ ์ ์์ฑํด์ผ ์์ ๋ง์ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ํ๋ฏธ๋ฅผ ๋ง๋ค ์ ์์ง๋ง ๋๋ถ๋ถ์ ๋์ ๋ฑ๋ ์ ์๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
์ด๋ฏธ ์ฌ์ฉํ ์ ์์ง๋ง ์์ง ์ ํฌ ํ ์คํธ๋ฅผ ๊ฑฐ์น์ง ์์์ต๋๋ค.
https://github.com/wardpeet/gatsby-image-nextgen/tree/main/gatsby-image
npm install --save @wardpeet/gatsby-image-nextgen
์ค์นํ ์ ์์ต๋๋ค. ํ์ฌ gatsby-image ์ฌ์ฉ์๋ฅผ์ํ compat ๋ ์ด์ด ๊ฐ ์์ต๋๋ค.์์ง ์ง์๋์ง ์๋ ํญ๋ชฉ :
ํ์ฌ ๊ฐ์ธ ๋น ์ด๋ฏธ์ง ๋ฐ๋ชจ :
์ฌ์ดํธ : https://wardpeet-using-gatsby-image.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwardpeet-using-gatsby-image.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_4M_0879160e38bb6c5489f85534de2dd197/
์๋ก์ด gatsby-image-nextgen ๋ฐ๋ชจ :
์ฌ์ดํธ : https://gatsby-image-nextgen.netlify.app/
pagespeed-insights : https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgatsby-image-nextgen.netlify.app%2F
webpagetest : https://webpagetest.org/result/200928_C0_63317160bdfc71ece1a2057df8b08133/