์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋กœ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ ์ตœ์ ํ™”ํ•˜๊ธฐ


์›๋ฌธ: https://web.dev/priority-hints/
์ €์ž: Leena Sohoni, Addy Osmani (Twitter, Github), Patrick Meenan (Twitter)
๋ผ์ด์„ ์Šค: CC BY 4.0

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ์ด๋ฏธ์ง€, ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” CSS ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ตœ์ ์˜ ์ˆœ์„œ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋ฆฌ์†Œ์Šค์— ๊ฐ€์ ธ์˜ค๊ธฐ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ์ด๋Ÿฐ ์šฐ์„ ์ˆœ์œ„๋Š” ๋ฆฌ์†Œ์Šค์˜ ์ข…๋ฅ˜์™€ ๋ฌธ์„œ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ทฐํฌํŠธ ๋‚ด ์ด๋ฏธ์ง€๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ดˆ๊ธฐ์— ๋กœ๋“œ๋œ <link>์˜ ์šฐ์„ ์ˆœ์œ„๋‚˜, <head>์˜ ๋ Œ๋”๋ง์„ ๋ง‰๋Š” CSS๋ผ๋ฉด ๋งค์šฐ ๋†’์Œ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋Œ€์ฒด๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ž˜ ํ• ๋‹นํ•˜๋Š” ํŽธ์ด์ง€๋งŒ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜์ง„ ์•Š๋Š”๋‹ค.

์ด๋ฒˆ ์•„ํ‹ฐํด์—์„œ, ์šฐ๋ฆฌ๋Š” ๋ฆฌ์†Œ์Šค์˜ ์ƒ๋Œ€์  ์ค‘์š”๋„(๋†’์Œ ๋˜๋Š” ๋‚ฎ์Œ)๋ฅผ ์•”์‹œํ•  ์ˆ˜ ์žˆ๋Š” importance ์†์„ฑ๊ณผ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ(Priority Hints)๋ฅผ ์ด์•ผ๊ธฐํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

A filmstrip view comparing two tests of the Google Flights homepage. At bottom, Priority Hints are used to boost the priority of the hero image, resulting in a 0.7 second decrease in LCP. ๊ตฌ๊ธ€ ํ•ญ๊ณตํŽธ ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ์—์„œ ์ตœ๋Œ€ ์ฝ˜ํ…ํŠธํ’€ ํŽ˜์ธํŠธ(LCP, Largest Contentful Paint)๋ฅผ 2.6์ดˆ์—์„œ 1.9์ดˆ๋กœ ๊ฐœ์„ ํ•œ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ

์š”์•ฝ

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์˜์—ญ:

  • ์ด๋ฏธ์ง€ ์š”์†Œ์— importance="high"๋ฅผ ์ง€์ •ํ•˜์—ฌ LCP ์ด๋ฏธ์ง€์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๋ฉด, LCP๊ฐ€ ๋” ๋นจ๋ฆฌ ์ผ์–ด๋‚œ๋‹ค.
  • ํ˜„์žฌ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•(async ์Šคํฌ๋ฆฝํŠธ์— <link rel="preload">๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ)๋ณด๋‹ค ๋” ๋‚˜์€ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ async ์Šคํฌ๋ฆฝํŠธ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ธ๋‹ค.
  • ๋ฐ”๋”” ์˜์—ญ ํ›„๋ฐ˜๋ถ€์˜ ์Šคํฌ๋ฆฝํŠธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถฐ์„œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด์ „ ๋ถ€ํ„ฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ preload์™€ preconnect๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„์— ์˜ํ–์„ ์ค„ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ œํ•œ์ ์ด์—ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ์ด๋Ÿฐ ๋ฆฌ์†Œ์Šค ํžŒํŠธ(Resource Hints)๋ฅผ ๋ณด์™„ํ•ด ์ฃผ์ง€๋งŒ, ๋ชจ๋‘ ์ ์ ˆํ•œ ์œ„์น˜์— ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ด๋‹ค. preload๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๋ ค๋Š” ์ค‘์š”ํ•œ ๋ฆฌ์†Œ์Šค(critical resources)๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์Šคํƒ€์ผ ์‹œํŠธ์— ํฌํ•จ๋œ ๊ธ€๊ผด, ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋กœ๋“œ๋œ ๋ฆฌ์†Œ์Šค์™€ ๊ฐ™์ด ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์— ์œ ์šฉํ•˜๋‹ค. preconnect๋Š” ๊ต์ฐจ ์ถœ์ฒ˜ ์„œ๋ฒ„ ์—ฐ๊ฒฐ์„ ์ค€๋น„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ Time-to-first-byteย ๊ฐ™์€ ์ง€ํ‘œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ณ  ์ถœ์ฒ˜๋ฅผ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค์˜ ์ •ํ™•ํ•œ URL์ด ์•„๋‹ ๋•Œ ์œ ์šฉํ•˜๋‹ค.

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ์ค‘์š”๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆํฌ์—… ๊ธฐ๋ฐ˜(importance ์†์„ฑ์„ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”) ์‹ ํ˜ธ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ fetch API์— ์ด๋Ÿฐ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๊ฐ€์ ธ์˜ค๊ธฐ ์šฐ์„ ์ˆœ์œ„์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” preload๋ฅผ ๋ณด์™„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ตœ๋Œ€ ์ฝ˜ํ…ํŠธํ’€ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ preload๋ฅผ ํ•˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์„ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฅธ ์กฐ๊ธฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ๋ฆฌ์†Œ์Šค์— ์˜ํ•ด ๋ฐ€๋ฆฌ๋Š” ๊ฒฝ์šฐ, ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ํฌ๋กฌ 96+(์ž‘์„ฑ ๋‹น์‹œ ํฌ๋กฌ ๋ฒ ํƒ€, 4์ฃผ ํ›„ ์•ˆ์ •ํ™” ๋ฒ„์ „)์—์„œ origin trial๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜ ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. ์ด ๊ธฐ๋Šฅ์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ํ”ผ๋“œ๋ฐฑ์— ๋‹ฌ๋ ค ์žˆ๋‹ค. ํฌ๋กฌ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„

๋ฆฌ์†Œ์Šค ๋‹ค์šด๋กœ๋“œ ์ˆœ์„œ๋Š” ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์ •ํ•œ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ๋‹ค์–‘ํ•œ ์š”์ธ์ด ์šฐ์„ ์ˆœ์œ„ ๊ณ„์‚ฐ ๋กœ์ง์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,

  • CSS, ํฐํŠธ, ์Šคํฌ๋ฆฝํŠธ, ์ด๋ฏธ์ง€ ๊ทธ๋ฆฌ๊ณ  ์„œ๋“œํŒŒํ‹ฐ ๋ฆฌ์†Œ์Šค๋“ค์€ ๋‹ค๋ฅธ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
  • ๋ฌธ์„œ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์œ„์น˜๋‚˜ ์ˆœ์„œ๋„ ๋ฆฌ์†Œ์Šค์˜ ์šฐ์„ ์ˆœ์œ„์— ์˜ํ–ฅ์„ ์ค€๋‹ค.
  • preload ๋ฆฌ์†Œ์Šค ํžŒํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋ฌธ์„œ๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ ์ „ ๋กœ๋“œํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.
  • asyncย orย defer ์Šคํฌ๋ฆฝํŠธ๋„ ์šฐ์„ ์ˆœ์œ„ ๊ณ„์‚ฐ์„ ๋ฐ”๊พผ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ํ˜„์žฌ ํฌ๋กฌ์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„์™€ ์ˆœ์„œ๊ฐ€ ์–ด๋–ค์ง€ ๋ณด์—ฌ์ค€๋‹ค.

๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋‹จ๊ณ„์—์„œ ๋กœ๋“œ @cols=3:๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋‹จ๊ณ„์—์„œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋กœ๋“œ
Blink ์šฐ์„ ์ˆœ์œ„ ๋งค์šฐ ๋†’์Œ ๋†’์Œ ์ค‘๊ฐ„ ๋‚ฎ์Œ ๋งค์šฐ ๋‚ฎ์Œ
๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์šฐ์„ ์ˆœ์œ„ ๊ฐ€์žฅ ๋†’์Œ ๋†’์Œ ์ค‘๊ฐ„ ๋‚ฎ์Œ ๊ฐ€์žฅ ๋‚ฎ์Œ
์ฃผ์š” ๋ฆฌ์†Œ์Šค
CSS*** (์กฐ๊ธฐ**) CSS*** (์ง€์—ฐ**) CSS (๋ถˆ์ผ์น˜)
์Šคํฌ๋ฆฝํŠธ (์กฐ๊ธฐ** ๋˜๋Š” ํ”„๋ฆฌ๋กœ๋“œ ์Šค์บ๋„ˆ๊ฐ€ ์•„๋‹ ๋•Œ) ์Šคํฌ๋ฆฝํŠธ (**์ง€์—ฐ) ์Šคํฌ๋ฆฝํŠธ (๋น„๋™๊ธฐ)
ํฐํŠธ ํฐํŠธ (preload)
import
์ด๋ฏธ์ง€ (๋ทฐํฌํŠธ ๋‚ด) ์ด๋ฏธ์ง€
๋ฏธ๋””์–ด
SVG ๋ฌธ์„œ
prefetch
preload*
XSL
XHR (๋™๊ธฐ) XHR/fetch* (๋น„๋™๊ธฐ)
favicon

* "as"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” preload ๋˜๋Š” "type"์„ ์‚ฌ์šฉํ•˜๋Š” fetch๋Š” ์š”์ฒญํ•˜๋Š” ์œ ํ˜•์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค (์˜ˆ: preload as="stylesheet"๋Š” ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•จ). "as"๊ฐ€ ์—†์œผ๋ฉด XHR์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.

** "์กฐ๊ธฐ"๋Š” preload ๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๊ฐ€ ์š”์ฒญ๋˜๊ธฐ ์ „์— ์š”์ฒญ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ •์˜๋œ๋‹ค. ("์ง€์—ฐ"์€ ์ดํ›„)

*** ๋ฏธ๋””์–ด ์œ ํ˜•์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” CSS๋Š” preload ์Šค์บ๋„ˆ์—์„œ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  ์ฃผ์š” ํŒŒ์„œ๊ฐ€ ํ•ด๋‹น ๊ตฌ๋ฌธ์— ์ ‘๊ทผํ•  ๋•Œ๋งŒ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๋Šฆ๊ฒŒ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ "์ง€์—ฐ" ์šฐ์„ ์ˆœ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.


๋ธŒ๋ผ์šฐ์ €๋Š” ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฐพ์€ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„๋กœ ๊ณ„์‚ฐ๋œ ๋ฆฌ์†Œ์Šค๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.' ์ •๋„๋กœ ๊ฐœ์„ ํ•˜๋Š”๊ฒŒ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ ๋ฆฌ์†Œ์Šค๋งˆ๋‹ค ํ• ๋‹น๋œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ‘œ ์ƒ๋‹จ์„ ์šฐํด๋ฆญํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ์—ด์„ ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค.)

A screenshot of assets listed in the network tab of Chrome's DevTools. The columns read, from left to right: name, status, type, initiator, size, time, and priority. BBC ๋‰ด์Šค ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ type = "font" ๋ฆฌ์†Œ์Šค์˜ ์šฐ์„ ์ˆœ์œ„

A screenshot of assets listed in the network tab of Chrome's DevTools. The columns read, from left to right: name, status, type, initiator, size, time, and priority. BBC ๋‰ด์Šค ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ type = "script" ๋ฆฌ์†Œ์Šค์˜ ์šฐ์„ ์ˆœ์œ„

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๋ธŒ๋ผ์šฐ์ € ์šฐ์„ ์ˆœ์œ„ ๋กœ์ง๊ณผ ์ด๋ฏธ ์•Œ๋ ค์ง„ ๋ช‡ ๊ฐ€์ง€ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ (๋ฆฌ์†Œ์Šค์˜) ๋‹ค์šด๋กœ๋“œ ์ˆœ์„œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ <script>, <link> ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ํƒœ๊ทธ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋Š” ๋ณดํ†ต ๋ฐœ๊ฒฌํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋กœ๋“œ๋œ๋‹ค.
  2. preloadย ๋ฆฌ์†Œ์Šค ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ธฐ์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋“ค, ํŠนํžˆ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์กฐ๊ธฐ์— ์‰ฝ๊ฒŒ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋Š” ๋ฆฌ์†Œ์Šค๋“ค์„ ๋” ์ผ์ฐ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.
  3. asyncย ๋˜๋Š” defer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋” ์ค‘์š”ํ•œ ์ƒ๋‹จ๋ถ€ ๋ฆฌ์†Œ์Šค์— ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‹จ๋ถ€ ์ฝ˜ํ…์ธ ๋Š” ์ง€์—ฐ ๋กœ๋“œํ•œ๋‹ค.

์ด๋Ÿฐ ๊ธฐ๋ฒ•๋“ค์€ ๋ธŒ๋ผ์šฐ์ €์˜ ์šฐ์„ ์ˆœ์œ„ ๊ณ„์‚ฐ์„ ์ œ์–ดํ•˜์—ฌ ์„ฑ๋Šฅ๊ณผ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์š”ํ•œ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๊ฐ€ preload๋˜์–ด ์žˆ์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฅผ ๋” ๋นจ๋ฆฌ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์–ด ์ตœ๋Œ€ ์ฝ˜ํ…ํŠธํ’€ ํŽ˜์ธํŠธ(LCP)๊ฐ€ ๊ฐœ์„ ๋œ๋‹ค.

๊ฐ€๋” ์ด๋Ÿฐ ๋ฐฉ๋ฒ•๋“ค์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š”๋ฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  1. ์ƒ๋‹จ๋ถ€ ์ด๋ฏธ์ง€๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ์ง€๋งŒ, ๋ชจ๋“  ์ด๋ฏธ์ง€๋“ค์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ™์„ ํ•„์š”๋Š” ์—†๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์บ๋Ÿฌ์ƒ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€๋งŒ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ๋œ๋‹ค.
  2. ๋ทฐํฌํŠธ ์•ˆ์— ์žˆ๋Š” ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€(์—ญ์ž ์ฃผ: ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€ - ์ผ๋ฐ˜์ ์œผ๋กœ ์ „๋ฉด๊ณผ ์ค‘์•™์— ์›น ํŽ˜์ด์ง€์—์„œ ๋ˆˆ์— ๋„๊ฒŒ ๋ฐฐ์น˜๋˜๋Š” ํฐ ์›น ๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€)๋“ค์€ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ๋ ˆ์ด์•„์›ƒ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด, ํฌ๋กฌ์€ ๋ทฐํฌํŠธ ๋‚ด์— ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€๋“ค์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ์˜ฌ๋ฆฐ๋‹ค(๋ถˆํ–‰ํžˆ๋„ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋Š” ์ตœ์ข… ์šฐ์„ ์ˆœ์œ„๋งŒ ํ‘œ์‹œํ•œ๋‹ค - WebPageTest๋Š” ๋‘˜ ๋‹ค ํ‘œ์‹œํ•  ๊ฒƒ์ด๋‹ค). ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ฏธ์ง€ ๋กœ๋“œ์— ์ƒ๋‹นํ•œ ์ง€์—ฐ์„ ์ค€๋‹ค. ๋งˆํฌ์—…์—์„œ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ๋†’์Œ์œผ๋กœ ์ œ๊ณตํ•˜๋ฉด ํ›จ์”ฌ ๋นจ๋ฆฌ ๋กœ๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค. CSS ๋ฐฐ๊ฒฝ์œผ๋กœ ํฌํ•จ๋œ LCP ์ด๋ฏธ์ง€๋ฅผ ์กฐ๊ธฐ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ๋Š” ์—ฌ์ „ํžˆ preload๊ฐ€ ํ•„์š”ํ•˜๊ณ  preload์— importance="high"๋ฅผ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "๋‚ฎ์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ ์‹œ์ž‘๋œ๋‹ค.
  3. ์Šคํฌ๋ฆฝํŠธ๋ฅผ async๋‚˜ defer๋กœ ์„ ์–ธํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„๋™๊ธฐ๋กœ ๋กœ๋“œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์œ„ ํ‘œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ ์ด๋Ÿฐ ์Šคํฌ๋ฆฝํŠธ์—” "๋‚ฎ์Œ" ์šฐ์„ ์ˆœ์œ„๊ฐ€ ํ• ๋‹น๋œ๋‹ค. ํŠนํžˆ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ๊ฒฝ์šฐ์— ๋น„๋™๊ธฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ณด์žฅํ•˜๋ฉด์„œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๊ณ  ์‹ถ์„ ๊ฒƒ์ด๋‹ค.
  4. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ fetch()ย API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” fetch์— "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ๋ชจ๋“  fetch๊ฐ€ "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ๋‹ค๋ฅธ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ API ํ˜ธ์ถœ์„ ์‹คํ–‰ํ•˜๊ณ  ์ž๋™ ์™„์„ฑ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ์‘๋‹ตํ•˜๋Š” API ํ˜ธ์ถœ๊ณผ ์„ž์„ ๋•Œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š”๊ฒŒ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ API ํ˜ธ์ถœ์€ "๋‚ฎ์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ, ๋Œ€ํ™”ํ˜• API ํ˜ธ์ถœ์€ "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ๋ธŒ๋ผ์šฐ์ €๋Š” CSS์™€ ํฐํŠธ๋ฅผ "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ ์ง€์ •ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋“ค์ด LCP์— ๋‹ค ๋˜‘๊ฐ™์ด ์ค‘์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ๋ฆฌ์†Œ์Šค ์ค‘ ์ผ๋ถ€์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค.

importance ์†์„ฑ

Origin Trial๋กœ ์ œ๊ณต๋˜๋Š” ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ ๊ด€๋ จ ์‹คํ—˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด importance ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์†์„ฑ์€ link, img, script, iframe ํƒœ๊ทธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ง€์›๋˜๋Š” ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ CSS, ํฐํŠธ, ์Šคํฌ๋ฆฝํŠธ, ์ด๋ฏธ์ง€ ๋ฐ iframe๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ์œ ํ˜•์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘์š”๋„ ์†์„ฑ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋‹ค:

  • high: ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ ํœด๋ฆฌ์Šคํ‹ฑ(์—ญ์ž ์ฃผ: ๊ฒฝํ—˜์ ์ธ ์ง€์‹์„ ํ†ตํ•ด ๋Œ€๋žต์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š” ๊ณผ์ •)์ด ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์— ๋‘๊ธธ ์›ํ•œ๋‹ค.
  • low: ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ ํœด๋ฆฌ์Šคํ‹ฑ์ด ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์— ๋‘๊ธธ ์›ํ•œ๋‹ค.
  • auto: ์ด๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ„๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์„ ํ˜ธ๊ฐ€ ์—†์œผ๋ฉฐ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•œ๋‹ค.

๋‹ค์Œ์€ ๋งˆํฌ์—… ๋ฐ ์Šคํฌ๋ฆฝํŠธ์—์„œ importance ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ์ด๋‹ค.

<!-- ์ด ์ƒ๋‹จ๋ถ€ ์ด๋ฏธ์ง€๋Š” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋˜์ง€ ์•Š์•˜์œผ๋ฉด ํ•œ๋‹ค. -->
<img src="/images/in_viewport_but_not_important.svg" importance="low" alt="I'm an unimportant image!">

<!-- ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ๊ธฐ์— ๊ฐ€์ ธ์˜ค๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๊ณ  ์‹ถ๋‹ค. -->
<link rel="preload" href="/js/script.js" as="script" importance="low">

<script>
  fetch('https://example.com/', {importance: 'low'}).then(data => {
    // ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ fetch ํŠธ๋ฆฌ๊ฑฐ
  });
</script>

<!-- ์ด iframe์€ ์„œ๋“œ ํŒŒํ‹ฐ ์ฝ˜ํ…์ธ ๋กœ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋‹ค. -->
<iframe src="https://example.com" width="600" height="400" importance="low"></iframe>

iframe์— ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ์„ค์ •๋˜๋ฉด, ๊ทธ ์šฐ์„ ์ˆœ์œ„๋Š” ํ•ด๋‹น iframe์˜ ์ฃผ์š” ๋ฆฌ์†Œ์Šค์—๋งŒ ์ ์šฉ์ด ๋œ๋‹ค. ๊ทธ iframe์ด ๋กœ๋“œํ•˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ๋ฆฌ์†Œ์Šค๋“ค์€ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋˜๋Š” ๋™์ผํ•œ ๊ทœ์น™์„ ํ†ตํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ง€์ •๋œ๋‹ค.


๋ธŒ๋ผ์šฐ์ € ์šฐ์„ ์ˆœ์œ„์™€ importance

๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด importance ์†์„ฑ์„ ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค์— ์ ์šฉํ•˜์—ฌ ์ž ์žฌ์ ์œผ๋กœ ๊ณ„์‚ฐ๋œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๊ฑฐ๋‚˜ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค. importance="auto"(โ—‰)๋Š” ํ•ด๋‹น ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค ๊ธฐ๋ณธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋‹จ๊ณ„์—์„œ ๋กœ๋“œ @cols=3:๋ ˆ์ด์•„์›ƒ ์ฐจ๋‹จ ๋‹จ๊ณ„์—์„œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋กœ๋“œ
Blink ์šฐ์„ ์ˆœ์œ„ ๋งค์šฐ ๋†’์Œ ๋†’์Œ ์ค‘๊ฐ„ ๋‚ฎ์Œ ๋งค์šฐ ๋‚ฎ์Œ
๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์šฐ์„ ์ˆœ์œ„ ๊ฐ€์žฅ ๋†’์Œ ๋†’์Œ ์ค‘๊ฐ„ ๋‚ฎ์Œ ๊ฐ€์žฅ ๋‚ฎ์Œ
์ฃผ์š” ๋ฆฌ์†Œ์Šค โ—‰
CSS*** (์กฐ๊ธฐ**) โฌ†โ—‰ โฌ‡
CSS*** (์ง€์—ฐ**) โฌ† โ—‰ โฌ‡
์Šคํฌ๋ฆฝํŠธ (์กฐ๊ธฐ** ๋˜๋Š” ํ”„๋ฆฌ๋กœ๋“œ ์Šค์บ๋„ˆ๊ฐ€ ์•„๋‹ ๋•Œ) โฌ†โ—‰ โฌ‡
์Šคํฌ๋ฆฝํŠธ*** (์ง€์—ฐ**) โฌ† โ—‰ โฌ‡
์Šคํฌ๋ฆฝํŠธ (async/defer) โฌ† โ—‰โฌ‡
ํฐํŠธ โ—‰
ํฐํŠธ (preload) โฌ†โ—‰ โฌ‡
import โ—‰
์ด๋ฏธ์ง€ (๋ทฐํฌํŠธ ๋‚ด) โฌ†โ—‰ โฌ‡
์ด๋ฏธ์ง€ โฌ† โ—‰โฌ‡
๋ฏธ๋””์–ด (๋น„๋””์˜ค/์˜ค๋””์˜ค) โฌ† โ—‰โฌ‡
SVG ๋ฌธ์„œ โฌ† โ—‰โฌ‡
XHR (๋™๊ธฐ) - deprecated โ—‰
XHR/fetch* (๋น„๋™๊ธฐ) โฌ†โ—‰ โฌ‡
preload* โฌ†โ—‰ โฌ‡
prefetch โ—‰
favicon โ—‰
XSL โ—‰

* "as"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” preload ๋˜๋Š” "type"์„ ์‚ฌ์šฉํ•˜๋Š” fetch๋Š” ์š”์ฒญํ•˜๋Š” ์œ ํ˜•์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค (์˜ˆ: preload as="stylesheet"๋Š” ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•จ). "as"๊ฐ€ ์—†์œผ๋ฉด XHR์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.

** "์กฐ๊ธฐ"๋Š” preload ๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๊ฐ€ ์š”์ฒญ๋˜๊ธฐ ์ „์— ์š”์ฒญ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ •์˜๋œ๋‹ค. ("์ง€์—ฐ"์€ ์ดํ›„)

*** ๋ฏธ๋””์–ด ์œ ํ˜•์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” CSS๋Š” preload ์Šค์บ๋„ˆ์—์„œ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  ์ฃผ์š” ํŒŒ์„œ๊ฐ€ ํ•ด๋‹น ๊ตฌ๋ฌธ์— ์ ‘๊ทผํ•  ๋•Œ๋งŒ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๋Šฆ๊ฒŒ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ "์ง€์—ฐ" ์šฐ์„ ์ˆœ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

โ—‰:ย importance="auto" โฌ†:ย importance="high" โฌ‡:ย importance="low"

๋ทฐํฌํŠธ ๋‚ด ์ด๋ฏธ์ง€๋Š” "๋‚ฎ์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ ์‹œ์ž‘ํ•œ ๋‹ค์Œ ๋ ˆ์ด์•„์›ƒ ์ดํ›„ "๋†’์Œ"์œผ๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค. ๋งˆํฌ์—…์— importance๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๋ฉด ์ฆ‰์‹œ "๋†’์Œ"์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ๋กœ๋“œ๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง„๋‹ค.


์‚ฌ์šฉ ์˜ˆ์‹œ

importance ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

LCP ์ด๋ฏธ์ง€ ์šฐ์„ ์ˆœ์œ„ ์ƒ์Šน

importance="high"๋ฅผ ์ง€์ •ํ•˜์—ฌ LCP ๋˜๋Š” ์ฃผ์š” ์ด๋ฏธ์ง€๋“ค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

<img src="lcp-image.jpg" importance="high">

๋‹ค์Œ์€ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์ ์šฉํ•œ LCP ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ๊ตฌ๊ธ€ ํ•ญ๊ณตํŽธ ์„œ๋น„์Šค ํŽ˜์ด์ง€์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์„ ๋น„๊ตํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์Œ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ LCP๋ฅผ 2.6์ดˆ์—์„œ 1.9์ดˆ๋กœ ๊ฐœ์„ ํ–ˆ๋‹ค.

gif ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ๊ธ€ ํ•ญ๊ณตํŽธ ์„œ๋น„์Šค ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด Cloudflare ์ž‘์—…์ž๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•œ ํ…Œ์ŠคํŠธ์ด๋‹ค.

์ƒ๋‹จ๋ถ€ ์ด๋ฏธ์ง€์˜ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„

์ตœ์ƒ๋‹จ ์ด๋ฏธ์ง€๋“ค ์ค‘ ์บ๋Ÿฌ์…€์ด ์žˆ๋‹ค๋ฉด, ์ผ๋ถ€๋Š” ์•„์ฃผ ์ค‘์š”ํ•˜์ง€ ์žˆ๊ณ  importance ์†์„ฑ์„ ๋‚ฎ๊ฒŒ ๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<ul class="carousel">
  <img src="img/carousel-1.jpg" importance="high">
  <img src="img/carousel-2.jpg" importance="low">
  <img src="img/carousel-3.jpg" importance="low">
  <img src="img/carousel-4.jpg" importance="low">
</ul>

์ดˆ๊ธฐ Oodleย ์•ฑ ์‹คํ—˜์—์„œ ๋กœ๋“œ ์‹œ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ์ด๋ฏธ์ง€์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ๊ณ , ๋กœ๋”ฉ ์‹œ๊ฐ„์„ 2์ดˆ๋กœ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ๋‹ค.

image

preload๋œ ๋ฆฌ์†Œ์Šค์˜ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„

preload ๋ฆฌ์†Œ์Šค์™€ ๋‹ค๋ฅธ ์ฃผ์š” ๋ฆฌ์†Œ์Šค๋“ค๊ณผ์˜ ๊ฒฝ์Ÿ์„ ๋ง‰๊ธฐ ์œ„ํ•ด, ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๋Š” ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ์ง€, ์Šคํฌ๋ฆฝํŠธ, CSS์— ์ด ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<!-- preload ์Šคํฌ๋ฆฝํŠธ ์ค‘ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฑด์— ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌ -->
<link rel="preload" as="script" href="critical-script.js">
<link rel="preload" href="/js/script.js" as="script" importance="low">

<!-- preload CSS์™€ ํžˆ์–ด๋กœ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋“ค์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ -->
<link rel="preload" as="style" href="theme.css" importance="low" onload="this.rel=stylesheet">

์Šคํฌ๋ฆฝํŠธ์˜ ์šฐ์„ ์ˆœ์œ„ ์žฌ์ง€์ •

ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ฅผ ๋Œ€ํ™”ํ˜•์œผ๋กœ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•„์ˆ˜์ ์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐจ๋‹จํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

<script src="async_but_important.js" async importance="high"></script>

ํŠน์ • DOM ์ƒํƒœ์— ์˜์กดํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋Š” ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ํŽ˜์ด์ง€์˜ ์•„๋ž˜์ชฝ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋” ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

<script src="blocking_but_unimportant.js" importance="low"></script>

์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ ์ฒ˜๋ฆฌ

๋ธŒ๋ผ์šฐ์ €๋Š” "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„๋กœ fetch๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” fetch๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ๋” ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ "๋†’์Œ"์ธ ๊ธฐ๋ณธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋œ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ "๋‚ฎ์Œ" ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

// ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ์ฒดํฌ (๊ธฐ๋ณธ๊ฐ’์ธ "๋†’์Œ" ์‚ฌ์šฉ)
let authenticate = await fetch('/user');

// ๋œ ์ค‘์š”ํ•œ ์ฝ˜ํ…์ธ  ๋ฐ์ดํ„ฐ (๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„)
let suggestedContent = await fetch('/content/suggested', {importance: 'low'});

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ ๊ตฌํ˜„ ์ฐธ๊ณ  ์‚ฌํ•ญ

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์ด ๋ฏธ์น˜๋Š” ์‹ค์ œ ์˜ํ–ฅ์— ๋Œ€ํ•ด Origin Trial์„ ํ†ตํ•ด ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋กœ ์‚ผ๊ณ ์ž ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๊ธฐ๋Œ€์น˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

  • importance ์†์„ฑ์€ ์ง€์‹œ๋ฌธ์ด ์•„๋‹ˆ๋ผ ํžŒํŠธ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ์„ค์ •์„ ๋”ฐ๋ฅด๋ ค๊ณ  ํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„์— ๋Œ€ํ•œ ์ž์ฒด์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” preload์™€ ํ˜ผ๋™๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ preload๋ฅผ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŽ˜์ด์ง€ ์ƒ๋‹จ์˜ LCP ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด preload๊ฐ€ ์ด๋ฏธ ์ง€์ •๋œ ๊ฒฝ์šฐ, "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ๋Œ€๋‹จํ•œ ์ด์ ์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ preload๊ฐ€ ๋œ ์ค‘์š”ํ•œ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋“ค ๋’ค์— ์žˆ๋‹ค๋ฉด "๋†’์Œ" ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋Š” LCP๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ์ฃผ์š” ์ด๋ฏธ์ง€๊ฐ€ CSS ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€์ธ ๊ฒฝ์šฐ, importance="high"๋กœ preload๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

    • preload๋Š” ํžŒํŠธ๊ฐ€ ์•„๋‹Œ ํ•„์ˆ˜์ด๋‹ค.
    • preload์˜ ์˜ํ–ฅ์„ ๊ด€์ฐฐํ•˜๊ณ  ์ธก์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์œผ๋กœ ์ธํ•ด ์–ป์„ ๋ˆˆ์— ๋„๋Š” ์ด์ ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์—์„œ ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋“ค์ด ๊ฒฝํ•ฉํ•  ๋•Œ ์ ์ ˆํ•œ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ๋ณ‘๋ ฌ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋ถˆ๊ฐ€ํ•œ HTTP/1.x ์—ฐ๊ฒฐ์ด๋‚˜ ๋Œ€์—ญ์ด ๋‚ฎ์€ HTTP/2 ์—ฐ๊ฒฐ์—์„œ ๊ฐ€๋Šฅํ•˜๋‹ค. ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์€ ์ด๋Ÿฐ ํ™˜๊ฒฝ์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CDN์€ HTTP/2 ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ „๋‹ฌํ•˜๋”๋ผ๋„ CDN์€ ๋ฆฌ์†Œ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ•„์š”ํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋‹ค์‹œ ์ง€์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ ๋‹ค. ์šฐ์„ ์ˆœ์œ„๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ(HTTP/2์™€ HTTP/3)์—์„œ ๋ชจ๋‘ ์ ์šฉ๋˜๋ฏ€๋กœ CDN ๋˜๋Š” ์ถœ์ฒ˜์˜ ์ง€์›๊ณผ ๊ด€๊ณ„์—†์ด ๋‚ด๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์—๋งŒ ํšจ์šฉ์„ฑ์ด ์žˆ๋‹ค.
  • ์ดˆ๊ธฐ ์„ค๊ณ„์—์„œ ์šฐ์ˆ˜ ์‚ฌ๋ก€๋กœ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ดํ›„ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ ํ™”์ด๋‹ค. ํŽ˜์ด์ง€์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋“ค์— ํ• ๋‹น๋œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜ˆ์ƒ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๋ฅผ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํฌ๋กฌ 95 ์ดํ›„ preload ์‚ฌ์šฉ

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ ๊ธฐ๋Šฅ์€ ํฌ๋กฌ 73~76์—์„œ ํŠธ๋ผ์ด์–ผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ํฌ๋กฌ 95์—์„œ ์ˆ˜์ •๋œ preload์˜ ์šฐ์„ ์ˆœ์œ„ ๋ฌธ์ œ๋กœ ๋ฆด๋ฆฌ์ฆˆ๋˜์ง€ ์•Š์•˜๋‹ค. ํฌ๋กฌ 95 ์ด์ „์—๋Š” ๋‹ค๋ฅธ ์š”์ฒญ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋”๋ผ๋„ <link rel='preload'>๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ์š”์ฒญ์€ ํ•ญ์ƒ preload ์Šค์บ๋„ˆ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์š”์ฒญ๋ณด๋‹ค ๋จผ์ € ์‹œ์ž‘๋˜์—ˆ๋‹ค.

ํฌ๋กฌ 95์˜ ์ˆ˜์ • ์‚ฌํ•ญ ๋ฐ ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ์˜ ๊ฐœ์„ ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ํŒŒ์„œ์—์„œ ๊ฐ์ง€ ๋ชปํ•œ preload ๋ฆฌ์†Œ์Šค(ํฐํŠธ, import, ๋ฐฐ๊ฒฝ LCP ์ด๋ฏธ์ง€)๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์˜๋„ํ•œ ๋ชฉ์ ์— ๋”ฐ๋ผ ์ ์šฉํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. preload ํžŒํŠธ์˜ ๋ฐฐ์น˜๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฏธ๋ฆฌ ๋กœ๋“œ๋˜๋Š” ์‹œ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. preload ์‚ฌ์šฉ์˜ ํ•ต์‹ฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

  • HTTP ํ—ค๋”์— preload๋ฅผ ํฌํ•จํ•˜๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ์šฐ์„ ๋œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ preload๋Š” "์ค‘๊ฐ„" ์šฐ์„ ์ˆœ์œ„๋ณด๋‹ค ๋†’์€ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ํŒŒ์„œ๊ฐ€ ๋ฐœ๊ฒฌํ•˜๋Š” ๋Œ€๋กœ ๋กœ๋“œ๋œ๋‹ค. ๋”ฐ๋ผ์„œ HTML ์‹œ์ž‘๋ถ€์— preload๋ฅผ ํฌํ•จํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ํฐํŠธ์˜ preload๋Š” head์˜ ๋๋ถ€๋ถ„์ด๋‚˜ body์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ์ž˜ ๋™์ž‘ํ•œ๋‹ค.
  • import์˜ preload(๋™์  import()๋‚˜ modulepreload)๋Š” import๊ฐ€ ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ๋‹ค์Œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค(์‹ค์ œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋จผ์ € ๋กœ๋“œ/ํŒŒ์‹ฑ ๋œ๋‹ค). ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๊ฐ€ ์ข…์†์„ฑ์„ ๋กœ๋“œํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ข…์†์„ฑ์— ๋Œ€ํ•œ <link rel=preload>๊ฐ€ ์ƒ์œ„ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ๋’ค์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ข…์†์„ฑ์ด ๊ธฐ๋ณธ ์Šคํฌ๋ฆฝํŠธ๋ณด๋‹ค ๋จผ์ € ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋‹ค. ์ข…์†์„ฑ์ด ๋กœ๋“œ๋˜๋Š” ๋™์•ˆ ์ ์ ˆํ•œ ์ˆœ์„œ๋กœ ์ฃผ์š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฏธ์ง€ preload๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๊ณ (์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ๊ฐ€ ์—†๋‹ค๋ฉด) ๋น„๋™๊ธฐ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ๊ธฐํƒ€ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ํƒœ๊ทธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

Origin Trial

์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ ๊ธฐ๋Šฅ์€ ํฌ๋กฌ 96์—์„œ 99๊นŒ์ง€ Origin Trial๋กœ ์ œ๊ณต๋œ๋‹ค. ๋ฒ„์ „ 96์€ ์ด๋ฏธ ๋ฏธ๋ฆฌ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•ด Canary์—์„œ ์ด๋ฏธ ์ œ๊ณต๋œ๋‹ค. Trial์— ๋„๋ฉ”์ธ์„ ๋“ฑ๋กํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ํŽ˜์ด์ง€์˜ head์— ํ† ํฐ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

ํฌ๋กฌ์˜ ์‹คํ—˜์  ์›น ํ”Œ๋žซํผ ๊ธฐ๋Šฅ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

img

Trial ์‚ฌ์šฉ

๋‹ค์Œ์€ ๋‹ค๋ฅธ ์šฐ์„ ์ˆœ์œ„๋“ค๋กœ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๊ณผ ์ด๋ฏธ์ง€๋“ค์˜ ๋ชจ์Œ ๊ฐ„ ๋น„๊ต๋‹ค. ์ด๋ฏธ์ง€์™€ ์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ์šฐ์„ ์ˆœ์œ„๋Š” ํฌ๋กฌ 94์—์„œ ์ ์šฉ๋œ๋‹ค๋Š” ์ ์„ ์œ ์˜ ๋ฐ”๋ž€๋‹ค. ๋ฐ˜๋ฉด importance ์†์„ฑ์„ ํ†ตํ•ด ์ ์šฉ๋˜๋Š” ์šฐ์„ ์ˆœ์œ„๋Š” ํฌ๋กฌ 96์—์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ ์šฉ๋œ๋‹ค.

๋‹ค์Œ์€ HTML ํŒŒ์ผ์— ํฌํ•จ๋œ ๊ด€๋ จ ๋งˆํฌ์—…์ด๋‹ค.

<!-- <head> ๋‚ด trial ํ† ํฐ์„ ํฌํ•จ -->
<meta http-equiv="origin-trial" content="{Replace with origin trial token}">

<!-- ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์˜ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ -->
<script src="script.js" importance="low"></script>

<!-- ์ด๋ฏธ์ง€์˜ ์šฐ์„ ์ˆœ์œ„ ์กฐ์ž‘ -->
<img src="Background.jpg" width="400" importance="low">
<img src="Sunset.jpg" width="400" importance="high">

<!-- ์•„๋ฌด ๊ฒƒ๋„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด importance="auto"๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. -->
<img src="Flower.jpg">

img ํฌ๋กฌ 94์˜ ์šฐ์„ ์ˆœ์œ„ - ์•ˆ์ •ํ™” ๋ฒ„์ „

img2 ํฌ๋กฌ 96์˜ ์šฐ์„ ์ˆœ์œ„ - Canary

๊ฒฐ๋ก 

๊ฐœ๋ฐœ์ž๋“ค์€ preload ๋™์ž‘์˜ ์ˆ˜์ • ์‚ฌํ•ญ๊ณผ ์ตœ๊ทผ Core Web Vital ๋ฐ LCP์— ์ค‘์ ์„ ๋‘” ์šฐ์„ ์ˆœ์œ„ ํžŒํŠธ์— ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด์ œ ์›ํ•˜๋Š” ๋กœ๋”ฉ ์ˆœ์„œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ธฐ๋ฒ•์ด ์ƒ๊ฒผ๋‹ค. ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ‰๊ฐ€ํŒ์„ ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฑ„๋„์„ ํ†ตํ•ด ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ธธ ๋ฐ”๋ž€๋‹ค.

์ด์ง„์šฐ2021.11.17
Back to list