์๋ฌธ: 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)๋ฅผ ์ด์ผ๊ธฐํ๋ค. ์ฐ์ ์์ ํํธ๋ ์ฝ์ด ์น ๋ฐ์ดํ์ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ค.
๊ตฌ๊ธ ํญ๊ณตํธ ์๋น์ค ํ ์คํธ์์ ์ต๋ ์ฝํ ํธํ ํ์ธํธ(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๋ก ์ฌ์ฉํ ์ ์๋ ์คํ ๊ธฐ๋ฅ์ด๋ค. ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํด ๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ธธ ๋ฐ๋๋ค. ์ด ๊ธฐ๋ฅ์ด ์ ์ง๋๋ ๊ฒ์ ๊ฐ๋ฐ์๋ค์ ํผ๋๋ฐฑ์ ๋ฌ๋ ค ์๋ค. ํฌ๋กฌ ํ๋๊ทธ๋ฅผ ํตํด ์ฐ์ ์์ ํํธ๋ฅผ ์ฌ์ฉํด ๋ณผ ์๋ ์๋ค.
๋ฆฌ์์ค ๋ค์ด๋ก๋ ์์๋ ํ์ด์ง์ ๋ชจ๋ ๋ฆฌ์์ค์ ๋ํด ๋ธ๋ผ์ฐ์ ์์ ์ง์ ํ ์ฐ์ ์์์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ๋ค์ํ ์์ธ์ด ์ฐ์ ์์ ๊ณ์ฐ ๋ก์ง์ ์ํฅ์ ์ค ์ ์๋ค. ์๋ฅผ ๋ค์ด,
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 ์ค์บ๋์์ ๊ฐ์ ธ์ค์ง ์๊ณ ์ฃผ์ ํ์๊ฐ ํด๋น ๊ตฌ๋ฌธ์ ์ ๊ทผํ ๋๋ง ์ฒ๋ฆฌ๊ฐ ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ๋ฆ๊ฒ ๊ฐ์ ธ์ค๋ฏ๋ก "์ง์ฐ" ์ฐ์ ์์๋ฅผ ์๋ฏธํ๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ฐ์ ์์๋ฅผ ์ฐพ์ ์์์ ๋ฐ๋ผ ๋์ผํ ์ฐ์ ์์๋ก ๊ณ์ฐ๋ ๋ฆฌ์์ค๋ค์ ๋ค์ด๋ก๋ํ๋ค.' ์ ๋๋ก ๊ฐ์ ํ๋๊ฒ ์ข๊ฒ ์ต๋๋ค. ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ํญ์์ ํ์ด์ง ๋ก๋ฉ ์ ๋ฆฌ์์ค๋ง๋ค ํ ๋น๋ ์ฐ์ ์์๋ฅผ ํ์ธํ ์ ์๋ค. (ํ ์๋จ์ ์ฐํด๋ฆญํ์ฌ ์ฐ์ ์์ ์ด์ ์ฒดํฌํด์ผ ํ๋ค.)
BBC ๋ด์ค ์์ธ ํ์ด์ง์์ type = "font"
๋ฆฌ์์ค์ ์ฐ์ ์์
BBC ๋ด์ค ์์ธ ํ์ด์ง์์ type = "script"
๋ฆฌ์์ค์ ์ฐ์ ์์
๋ธ๋ผ์ฐ์ ์ฐ์ ์์ ๋ก์ง๊ณผ ์ด๋ฏธ ์๋ ค์ง ๋ช ๊ฐ์ง ํธ๋ฆญ์ ์ฌ์ฉํ์ฌ (๋ฆฌ์์ค์) ๋ค์ด๋ก๋ ์์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์กฐ์ ํ ์ ์๋ค.
<script>
, <link>
๊ฐ์ ๋ฆฌ์์ค ํ๊ทธ๋ฅผ ๋ฐฐ์นํ๋ค. ์ฐ์ ์์๊ฐ ๊ฐ์ ๋ฆฌ์์ค๋ ๋ณดํต ๋ฐ๊ฒฌํ ์์๋๋ก ๋ก๋๋๋ค.preload
ย ๋ฆฌ์์ค ํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ธฐ์ ํ์ํ ๋ฆฌ์์ค๋ค, ํนํ ๋ธ๋ผ์ฐ์ ๊ฐ ์กฐ๊ธฐ์ ์ฝ๊ฒ ๋ฐ๊ฒฌํ ์ ์๋ ๋ฆฌ์์ค๋ค์ ๋ ์ผ์ฐ ๋ค์ด๋ก๋ํ๋ค.async
ย ๋๋ defer
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ํ๋ค.์ด๋ฐ ๊ธฐ๋ฒ๋ค์ ๋ธ๋ผ์ฐ์ ์ ์ฐ์ ์์ ๊ณ์ฐ์ ์ ์ดํ์ฌ ์ฑ๋ฅ๊ณผ ์ฝ์ด ์น ๋ฐ์ดํ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ํ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๊ฐ preload๋์ด ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ๋ ๋นจ๋ฆฌ ๋ฐ๊ฒฌํ ์ ์์ด ์ต๋ ์ฝํ ํธํ ํ์ธํธ(LCP)๊ฐ ๊ฐ์ ๋๋ค.
๊ฐ๋ ์ด๋ฐ ๋ฐฉ๋ฒ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค ์ฐ์ ์์๋ฅผ ์ต์ ํํ๋๋ฐ ์ถฉ๋ถํ์ง ์์ ์ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ ์์ ํํธ๊ฐ ๋์์ด ๋ ์ ์๋ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํด ๋ณผ ์ ์๋ค.
importance="high"
๋ฅผ ์กฐํฉํ ์ ์๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๋ฏธ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก "๋ฎ์" ์ฐ์ ์์๋ก ์์๋๋ค.async
๋ defer
๋ก ์ ์ธํ๋ฉด ๋ธ๋ผ์ฐ์ ์๊ฒ ์คํฌ๋ฆฝํธ๋ฅผ ๋น๋๊ธฐ๋ก ๋ก๋ํ๋๋ก ์ง์ํ๋ค. ํ์ง๋ง, ์ ํ์์ ๋ณผ ์ ์๋ฏ ์ด๋ฐ ์คํฌ๋ฆฝํธ์ "๋ฎ์" ์ฐ์ ์์๊ฐ ํ ๋น๋๋ค. ํนํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ค์ํ ์ํฅ์ ์ฃผ๋ ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ์ ๋น๋๊ธฐ ๋ค์ด๋ก๋๋ฅผ ๋ณด์ฅํ๋ฉด์ ์ฐ์ ์์๋ฅผ ๋์ด๊ณ ์ถ์ ๊ฒ์ด๋ค.fetch()
ย API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค. ๋ธ๋ผ์ฐ์ ๋ fetch์ "๋์" ์ฐ์ ์์๋ฅผ ํ ๋นํ๋ค. ๋ชจ๋ fetch๊ฐ "๋์" ์ฐ์ ์์๋ก ์คํ๋๋ ๊ฒ์ ์ํ์ง ์๊ณ ๋์ ๋ค๋ฅธ ์ฐ์ ์์ ํํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ์ํฉ์ด ์์ ์ ์๋ค. ์ด๋ ๋ฐฑ๊ทธ๋ผ์ด๋ API ํธ์ถ์ ์คํํ๊ณ ์๋ ์์ฑ๊ณผ ๊ฐ์ด ์ฌ์ฉ์ ์
๋ ฅ์ ์๋ตํ๋ API ํธ์ถ๊ณผ ์์ ๋ ์ฐ์ ์์๋ฅผ ์ง์ ํ๋๊ฒ ์ ์ฉํ ์ ์๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋ API ํธ์ถ์ "๋ฎ์" ์ฐ์ ์์๋ก, ๋ํํ API ํธ์ถ์ "๋์" ์ฐ์ ์์๋ก ์ง์ ํ ์ ์๋ค.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
์์ฑ์ ์ฌ์ฉํ์ฌ ์ฐ์ ์์ ํํธ๊ฐ ํ์ํ ์ ์๋ ์๋๋ฆฌ์ค๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
importance="high"
๋ฅผ ์ง์ ํ์ฌ LCP ๋๋ ์ฃผ์ ์ด๋ฏธ์ง๋ค์ ์ฐ์ ์์๋ฅผ ์ฌ๋ฆด ์ ์๋ค.
<img src="lcp-image.jpg" importance="high">
๋ค์์ ์ฐ์ ์์ ํํธ๋ฅผ ์ ์ฉํ LCP ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ตฌ๊ธ ํญ๊ณตํธ ์๋น์ค ํ์ด์ง์ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋น๊ตํ๋ค. ์ฐ์ ์์๋ฅผ ๋์์ผ๋ก ์ค์ ํ์ฌ LCP๋ฅผ 2.6์ด์์ 1.9์ด๋ก ๊ฐ์ ํ๋ค.
์ฐ์ ์์ ํํธ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ๊ธ ํญ๊ณตํธ ์๋น์ค ํ์ด์ง๋ฅผ ๋ค์ ์์ฑํ๊ธฐ ์ํด 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์ด๋ก ์ค์ด๋ ๋ฐ ๋์์ด ๋์๋ค.
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๋ฅผ ํด์ผ ํ๋ค.
์ฐ์ ์์ ํํธ ๊ธฐ๋ฅ์ ํฌ๋กฌ 73~76์์ ํธ๋ผ์ด์ผ๋ก ์ฌ์ฉํ ์ ์์์ง๋ง ํฌ๋กฌ 95์์ ์์ ๋ preload์ ์ฐ์ ์์ ๋ฌธ์ ๋ก ๋ฆด๋ฆฌ์ฆ๋์ง ์์๋ค. ํฌ๋กฌ 95 ์ด์ ์๋ ๋ค๋ฅธ ์์ฒญ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๋๋ผ๋ <link rel='preload'>
๋ฅผ ํตํด ์ฒ๋ฆฌ๋๋ ์์ฒญ์ ํญ์ preload ์ค์บ๋์์ ๋ณผ ์ ์๋ ๋ค๋ฅธ ์์ฒญ๋ณด๋ค ๋จผ์ ์์๋์๋ค.
ํฌ๋กฌ 95์ ์์ ์ฌํญ ๋ฐ ์ฐ์ ์์ ํํธ์ ๊ฐ์ ์ ํตํด ๊ฐ๋ฐ์๊ฐ ํ์์์ ๊ฐ์ง ๋ชปํ preload
๋ฆฌ์์ค(ํฐํธ, import, ๋ฐฐ๊ฒฝ LCP ์ด๋ฏธ์ง)๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๊ธฐ ์ํด ์๋ํ ๋ชฉ์ ์ ๋ฐ๋ผ ์ ์ฉํ๊ธธ ๋ฐ๋๋ค. preload
ํํธ์ ๋ฐฐ์น๋ ๋ฆฌ์์ค๊ฐ ๋ฏธ๋ฆฌ ๋ก๋๋๋ ์๊ธฐ์ ์ํฅ์ ๋ฏธ์น๋ค. preload
์ฌ์ฉ์ ํต์ฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค
preload
๋ฅผ ํฌํจํ๋ฉด ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ณด๋ค ์ฐ์ ๋๋ค.preload
๋ "์ค๊ฐ" ์ฐ์ ์์๋ณด๋ค ๋์ ํญ๋ชฉ์ ๋ํด ํ์๊ฐ ๋ฐ๊ฒฌํ๋ ๋๋ก ๋ก๋๋๋ค. ๋ฐ๋ผ์ HTML ์์๋ถ์ preload
๋ฅผ ํฌํจํ ๋ ์ฃผ์ํด์ผ ํ๋ค.preload
๋ head์ ๋๋ถ๋ถ์ด๋ body์ ์์ ๋ถ๋ถ์์ ๊ฐ์ฅ ์ ๋์ํ๋ค.preload
(๋์ import()๋ modulepreload)๋ import๊ฐ ํ์ํ ์คํฌ๋ฆฝํธ ํ๊ทธ ๋ค์ ์ํ๋์ด์ผ ํ๋ค(์ค์ ์คํฌ๋ฆฝํธ๊ฐ ๋จผ์ ๋ก๋/ํ์ฑ ๋๋ค). ๊ธฐ๋ณธ์ ์ผ๋ก ์คํฌ๋ฆฝํธ ํ๊ทธ๊ฐ ์ข
์์ฑ์ ๋ก๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๋ ๊ฒฝ์ฐ ์ข
์์ฑ์ ๋ํ <link rel=preload>
๊ฐ ์์ ์คํฌ๋ฆฝํธ ํ๊ทธ ๋ค์ ์๋์ง ํ์ธํด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ข
์์ฑ์ด ๊ธฐ๋ณธ ์คํฌ๋ฆฝํธ๋ณด๋ค ๋จผ์ ๋ก๋๋ ์ ์๋ค. ์ข
์์ฑ์ด ๋ก๋๋๋ ๋์ ์ ์ ํ ์์๋ก ์ฃผ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.preload
๋ ์ฐ์ ์์๊ฐ ๋ฎ๊ณ (์ฐ์ ์์ ํํธ๊ฐ ์๋ค๋ฉด) ๋น๋๊ธฐ ์คํฌ๋ฆฝํธ ๋ฐ ๊ธฐํ ๋ฎ์ ์ฐ์ ์์์ ํ๊ทธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋์ด์ผ ํ๋ค.์ฐ์ ์์ ํํธ ๊ธฐ๋ฅ์ ํฌ๋กฌ 96์์ 99๊น์ง Origin Trial๋ก ์ ๊ณต๋๋ค. ๋ฒ์ 96์ ์ด๋ฏธ ๋ฏธ๋ฆฌ ์ฌ์ฉํด ๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์๋ค์ ์ํด Canary์์ ์ด๋ฏธ ์ ๊ณต๋๋ค. Trial์ ๋๋ฉ์ธ์ ๋ฑ๋กํ๊ณ ํ
์คํธํ๋ ค๋ ํ์ด์ง์ head
์ ํ ํฐ์ ํฌํจํ ์ ์๋ค.
ํฌ๋กฌ์ ์คํ์ ์น ํ๋ซํผ ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ํ์ฑํํ์ฌ ๊ธฐ๋ฅ์ ํ ์คํธํ ์๋ ์๋ค.
๋ค์์ ๋ค๋ฅธ ์ฐ์ ์์๋ค๋ก ์คํฌ๋ฆฝํธ ํ์ผ๊ณผ ์ด๋ฏธ์ง๋ค์ ๋ชจ์ ๊ฐ ๋น๊ต๋ค. ์ด๋ฏธ์ง์ ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ ์ฐ์ ์์๋ ํฌ๋กฌ 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">
ํฌ๋กฌ 94์ ์ฐ์ ์์ - ์์ ํ ๋ฒ์
ํฌ๋กฌ 96์ ์ฐ์ ์์ - Canary
๊ฐ๋ฐ์๋ค์ preload ๋์์ ์์ ์ฌํญ๊ณผ ์ต๊ทผ Core Web Vital ๋ฐ LCP์ ์ค์ ์ ๋ ์ฐ์ ์์ ํํธ์ ๊ด์ฌ์ด ์์ ๊ฒ์ด๋ค. ์ด์ ์ํ๋ ๋ก๋ฉ ์์๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ์ถ๊ฐ ๊ธฐ๋ฒ์ด ์๊ฒผ๋ค. ๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํ๊ฐํ์ ๋ฑ๋กํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฑ๋์ ํตํด ํผ๋๋ฐฑ์ ์ฃผ๊ธธ ๋ฐ๋๋ค.