์นํ์ด์ง์ ์ด๋ฏธ์ง๋ฅผ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ์ <img>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, CSS background-image
์์ฑ์ ์ฌ์ฉํ๊ฑฐ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ ๋ ์ด๋ค ์ํฉ์ ์ด๋ค ๋ฐฉ์์ ์ฌ์ฉํด์ผํ๋์ง ์ ํํ๊ฒ ์์ง ๋ชปํ์ต๋๋ค.
img tag vs css background-image
๋ฑ์ ํค์๋๋ก ๊ฒ์ํ๋ค ์์ธํ ์ค๋ช
๋ ๊ธ์ ์ฝ์๊ณ , ๋ ๋ง์ ๋ถ๋ค์ด ๋ณผ ์ ์๋๋ก ๋ฒ์ญํด๋ณด์์ต๋๋ค.
์๋๋ nystudio107์ ๋ธ๋ก๊ทธ ๊ธ "The CSS background-image property as an anti-pattern"์ ์์์์ ํ๋ฝ์ ๋ฐ์ ๋ฒ์ญํ ๊ธ์ ๋๋ค.
์์ญ, ์ค์ญ์ด ์์ ์ ์์ต๋๋ค. ํผ๋๋ฐฑ์ ํ์์ ๋๋ค. ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
CSS background-image ์์ฑ์ ์ฌ๋ฌ๊ฐ์ง ๋๋ผ์ด ์ผ๋ค์ ํ ์ ์์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์ด CSS background-image ์์ฑ์ผ๋ก ๋ค์ํ ์ผ๋ค์ ํด์์ต๋๋ค. ์ด ์์ฑ์ ์ค๋ ์ฌ์ฉ๋์ด ์์ง๋ง, ์ด์ ๋ ์๋ณ ์ธ์ฌ๋ฅผ ํด์ผํฉ๋๋ค.
์ง์ง ๋ฌธ์ ๋ CSS background-image
์์ฑ ์์ฒด๊ฐ ์๋๋ผ, ๋ฉ์ธ ์ด๋ฏธ์ง๋ UI ์ด๋ฏธ์ง์ ๊ฐ์, ์ค์ ๋ก ์ฌ์ฉํด์๋ ์๋๋ ๊ณณ์์ ์ฌ์ฉ๋๋ค๋ ๊ฒ์
๋๋ค.
๋ถ์ ์ ํ๊ฒ ์ฌ์ฉ๋ background-image
๋ ์ํฐ ํจํด์
๋๋ค. background-image
์ ์ข์ ์ฌ์ฉ ์ฌ๋ก๋ ์์๊น์? ๋น์ฐํ ์์ต๋๋ค.
ํ์ง๋ง, CSS background-image
์์ฑ์๋ ๋ช ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค. ๋ ์ค์ํ ๊ฒ์, ์ค๋๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์๋ ์ด๋ฏธ์ง๋ฅผ ์ํ ๋ ์ข์ ๋ฐฉ๋ฒ๋ค์ด ์์ต๋๋ค.
ํธ๋์ด ๋ด๋ฐฐํผ๋ ์์ ์ ์๋์ง๋ ์ด์ผ๊ธฐ๋ ํ์ง๋ง์๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ CSS background-image
์์ฑ์ ๋จ์ ๊ณผ, ์ด ์์ฑ ๋์ ์ฌ์ฉํ ์ ์๋ ๊ฒ๋ค์ ๋ํด ์ด์ผ๊ธฐ ํด๋ด
์๋ค.
CSS background-image
์์ฑ์ด ๋์ ์ด์ ๋ ์๋์ ๊ฐ์ต๋๋ค.
CSS background-image
์์ฑ์ ์๋ ์ด๋ฏธ์ง๋ Google ๋ด์ด ํฌ๋กค๋งํ๊ฑฐ๋ ์์ธํ์ง ์์ต๋๋ค. ๋ณ๊ฑฐ ์๋๋ผ๊ตฌ์? ๊ธ์์, Moz.com์ ๊ธGoogle ์ด๋ฏธ์ง ๊ฒ์์์ ์์๋ฅผ ๋งค๊ธฐ๋ ๋ฐฉ๋ฒ์์ ์ธ์ฉํ ์ด ๊ธ์ ๋ด
์๋ค.
โฆ Google ๋ชจ๋ ๊ฒ์์ 3๋ถ์ 1์ ์ด๋ฏธ์ง ๊ฒ์์ด๋ฉฐ, ๊ฒ์๊ฒฐ๊ณผ์ 12.5%๋ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ค๋๋คโฆ
Google ๊ฒ์์ 33%๋ ์ด๋ฏธ์ง ๊ฒ์์ ๋๋ค. ์ด๋ฏธ์ง๊ฐ ํ์ด์ง์ ์ฃผ์ ๋ ์ฌ์ ๊ณผ ๊ด๋ จ์ด ์๋ค๋ฉด, ๋น์ ์ ๋ถ๋ช ๊ฒ์์ ์์ธ๋๊ธธ ์ํ ๊ฒ์ ๋๋ค.
background-image
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ด๋ฏธ์ง์ alt=""
์ผ๋ก ์ด๋ฏธ์ง์ ๋ํ ์ค๋ช
๊ณผ ์ปจํ
์คํธ๋ฅผ Google์ ์ ๊ณตํ ์ ์กฐ์ฐจ ์์ต๋๋ค.
CSS background-image
์์ฑ์ ์ ๊ทผ์ฑ์ ์ ํฉํ์ง ์์ต๋๋ค. Screen readers๋ background-image
๋ฅผ ์์ ํ ๋ฌด์ํฉ๋๋ค.
Accessibility Conscerns๋ฅผ ๋ด ์๋ค:
๋ธ๋ผ์ฐ์ ๋ ๋ณด์กฐ ๊ธฐ์ (assistive tech)์ ์ํด ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์ ๋ํ ํน๋ณํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ด๋ ์คํฌ๋ฆฐ ๋ฆฌ๋์ ์ค์ํ๋ฐ, ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ๊ทธ ์ ๋ณด๋ฅผ ์๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์๊ฒ ์๋ฌด๊ฒ๋ ์ ๋ฌํ์ง ์์ต๋๋ค.
์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ์ด๋ฏธ์ง๋ฅผ ์์ ํ ๋ฌด์ํ์ง ์์๋๋ผ๋, ์ด๋ฏธ์ง์ ๋ํ ์ค๋ช
์ด๋ ์ปจํ
์คํธ๋ฅผ ์ค๋ช
ํ ์ ์๋ alt=""
ํ
์คํธ์กฐ์ฐจ ์์ต๋๋ค.
Pro Tip: ์ค์ ๋ก ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋ฌด์ํ๋๋ก ํ๋ ค๋ฉด(๋์์ธ์ ์์์ผ ๋), ๋น alt ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ธ์. ์: alt=""
(role="presentation"
์์ฑ์ ARIA์ ์ฒซ ๋ฒ์งธ ๊ท์น์ ์๋ฐํ๋ฏ๋ก, ์ต์ ์ด ์๋๋๋ค.)
์ด๋ป๊ฒ background-image
์์ฑ์ด ์ฑ๋ฅ์ ๋์ ์ํฅ์ ๋ฏธ์น ์ ์์๊น์? ์ผ๋ฐ์ ์ผ๋ก ๋๋ฐ์ด์ค ํ๋ฉด ๋๋น๋ ํด์๋์ ๊ด๊ณ์์ด background-image
์์ฑ์ ํ๋์ ์ด๋ฏธ์ง๋ง ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด์์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ๋ฐ์ํ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ๋๋ฐ์ด์ค์ ํ๋ฉด ๋๋น๋ ํด์๋์ ๋ฐ๋ผ ๋ค๋ฅธ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ผ๋ฐ์ ์ธ ์ฌ์ดํธ์์ ์ด๋ฏธ์ง๋ ์ ์ก๋๋ ๋ฐ์ดํฐ ์ค์์ ๊ฐ์ฅ ํฐ ์ฒญํฌ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์ด๋ฏธ์ง๋ค์ ์ต์ ํํด์ผํฉ๋๋ค.
@media
์ฟผ๋ฆฌ์ CSS background-image
๋ฅผ ์ฌ์ฉํ ์๋ ์์ง๋ง, ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊ฟ์ผํ๋ ๊ฒฝ์ฐ ๊ต์ฅํ ๋ฒ๊ฑฐ๋ก์์ง๋๋ค.
์ด๊ฒ์ด ๋ฒ๊ฑฐ๋ก์ด ์ด์ ๋ ์ด๋ฏธ์ง๊ฐ CSS์ ํฌํจ๋์ด์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก CSS๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ์ดํ์ง ์๋ ๋น๋ ํ๋ก์ธ์ค์ ์ํด ๋น๋๋ฉ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋๋ค์ ๋ณดํต ํฌ๊ธฐํ๊ณ ๋ชจ๋ ๋๋ฐ์ด์ค ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ๋ํด ํ๋์ ์ด๋ฏธ์ง๋ง ์ฌ์ฉํฉ๋๋ค.
์ด๋ฅผ ๋์์ฃผ๋ bgset๊ณผ ๊ฐ์ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง๋ง, ์ ๋ค๋ฅธ ๋จ์ ์ด ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด JavaScript๋ฅผ ๋ ์ถ๊ฐํด์ผํ๋์?
๊ฒ๋ค๊ฐ webp์ ๊ฐ์ next-generation ํฌ๋งท์ ํ๋ก๊ทธ๋ ์๋ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํด๋, background-image
๋ก ์ธํด ๋ ๋ฒ๊ฑฐ๋ก์์ง๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ CSS๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ํ์ฑํ๊ธฐ ์ ๊น์ง ์ด๋ฏธ์ง ๋ค์ด๋ก๋๋ฅผ ์์ํ ์ ์์ต๋๋ค
๋ ๋ค๋ฅธ ์ฑ๋ฅ ๋จ์ ์, ์ด๋ฏธ์ง๊ฐ background-image
๋ก CSS์ ํฌํจ๋ ๊ฒฝ์ฐ, ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ CSS๋ฅผ ๋จผ์ ๋ค์ด๋ก๋ํ๊ณ ํ์ฑํด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค.
์ฆ, ๋ฉ์ธ hero ์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋ ๋๊ธฐ์ด ์ฐ์ ์์๊ฐ ๋ฎ์์ง๊ณ , ๋ก๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค. ๋์ HTML ์์๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, CSS๊ฐ ๋ค์ด๋ก๋๋๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
CSS background-image
์์ฑ์ Content Management Systems๊ณผ Content Distribution Networks (CDNs)์ ํจ๊ป ์ฌ์ฉํ ๋์๋ ์ข์ง ์์ต๋๋ค.
<div>
์ background-image
๋ก ์ค์ ๋ ์ด๋ฏธ์ง๋ก ๊ตฌํ๋ ์น์ฌ์ดํธ์ ๋ฉ์ธ hero ์ด๋ฏธ์ง๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค.
์ ์ธ๊ณ ์ฌ๋๋ค์ด ์ด ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ์์ผ๋ฉฐ, ์ ๋ CDN์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ฆฌ์์ค๋ค๋ฅผ ์ต์ ์ผ๋ก ์ ๊ณตํ๊ณ ์ ํฉ๋๋ค.
CSS์ ์ด๋ฏธ์ง URL์ด ํฌํจ๋์ด ์๋ค๋ฉด, ์ ๋ ํ๋ก์ ํธ ์ ์ฒด์ ์ด๋ฏธ์ง๋ค์ ๊ฒ์ํ์ฌ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ local URL์์ CDN URL๋ก ๊ต์ฒดํด์ผํฉ๋๋ค.
CSS ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏธ๋ฆฌ ๋ชจ๋ ์ด๋ฏธ์ง์ URL์ ์ค๋นํ ๊ฒฝ์ฐ์ ๊ด์ฐฎ์ ์ ์์ต๋๋ค. ํ์ง๋ง, ๋๋ถ๋ถ์ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋ก์ด CSS ์์ ๋ฒ๋ค์ ๋ง๋ค๊ณ ๋ฐฐํฌํ์ง ์์ต๋๋ค. ์๋๋ฉด ์ด๋ฅผ ์ํด ๋์ ์ผ๋ก inline CSS๋ฅผ ์์ฑํ ์๋ ์์ง๋ง... ๊ทธ๋ ๊ฒ๊น์ง ํ์ง ๋ง์๋ค.
CMS๊ฐ URL prefix๋ฅผ ์ฒ๋ฆฌํ๊ฒํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์ธ ์ ์์ง๋ง, CSS background-image
๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๋ผ์ธ ์คํ์ผ์ ์์ฑํ๊ฑฐ๋ ๋ค๋ฅธ ํธ๋ฆญ์ด ํ์ํด์ ๋ ๊ท์ฐฎ์ ์ง ์ ์์ต๋๋ค.
CSS์ ์ด๋ฏธ์ง URL์ ๋ฃ๋ ๊ฒ์ ํญ์ "ํ๋ ์ฝ๋ฉ"ํ๋ ๋๋์ด ๋ญ๋๋ค.
๊ทธ๋ฌ๋ฉด, ์ง๊ธ๊น์ง ๋จ์ ์ ๋ํด์๋ง ์ด์ผ๊ธฐํ์ง๋ง, CSS background-image
์์ฑ์ด ์ค์ ๋ก ์ข์ ์ํฉ์ ์ธ์ ์ผ๊น์?
์ ํ ๋ถํ์ํด ๋ณด์ผ ์๋ ์์ง๋ง, ์ค์ ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ ์ฅ์ ์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐโฆ background-image
๋ฅผ ์ฌ์ฉํ์ธ์!
์ค์ ๋ก ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด์ผํ ๊ฒฝ์ฐ
background-image
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค
๊ทธ๋ ๊ฒํ๋ค๋ฉด, image-set()์ background-image
์ ํจ๊ป ์ฌ์ฉํ์ฌ ์์์ ์ธ๊ธํ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด ์์ฑ์ด ๋ณธ์ง์ ์ผ๋ก ๋์๋ค๋ ๊ฒ์ด ์๋๋ผ, ์ด ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ต์ ์ ์ ํ์ด ์๋๋ผ๋ ๊ฒ์ ๋งํ๊ธฐ ์ํจ์ ๋๋ค.
<PICTURE>
๋ฅผ ์ฌ์ฉํ์ธ์!์ ๋ ๋ง์ ์ฌ๋๋ค์ด background-image
๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ CSS background-size: cover;
์์ฑ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋งค์ฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก "๋ฎ์(cover)" ์ ์์ต๋๋ค.
์ด๋ object-fit ์์ฑ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค!
object-fit ์์ฑ๊ณผ ํจ๊ป semantic HTML ์์ <picture>
๋ฅผ ์ฌ์ฉํ๋ฉด, background-size: cover;
์ ๋์ผํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ง๋ง ์๋์ ๊ฐ์ ๊ฒ๋ค ๋ํ ์ป์ ์ ์์ต๋๋ค.
alt=""
์์ฑ ์ฌ์ฉ).webp
๊ฐ์ next-generation ์ด๋ฏธ์ง ํฌ๋งท์ ์ํด <source>
๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ์ด๋ ์ค์ ๊ตฌํํ๊ธฐ๋ ์ด๋ ต์ง์์๋ฐ ๋นํด ์ด์ ์ ์ ๋ง ๋ง์ต๋๋ค! object-fit
์์ฑ์ ์ด๋ฏธ์ง๋ ๋น๋์ค๊ฐ ๋ถ๋ชจ ์ปจํ
์ด๋์ ์ด๋ป๊ฒ ๋ง์์ผํ๋์ง ์๋ ค์ค๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค.
<div
style="background-image: url('/some/man-with-a-dog.jpg');
background-size: cover;"
></div>
<!-- The old way -->
์ด๋ ๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
<picture>
<img
src="/some/man-with-a-dog.jpg"
alt="Man with a dog"
style="object-fit: cover;"
/>
</picture>
<!-- The new way -->
๋ถ๋ช
๋ ์ผ์ด์ค ๋ชจ๋, inline ์คํ์ผ์ ์ฌ์ฉํ์ง๋ ์์ ๊ฒ์
๋๋ค. ํ์ง๋ง background-image
์์ฑ์ ๋ฒ๋ฆฌ๊ณ <picture>
์ <img>
๊ฐ์ ์๋ฏธ์ HTML ์์๋ฅผ ์ฌ์ฉํ๋ ์ ๊ทผ ๋ฐฉ์์ด ์ผ๋ง๋ ์ ์ฐํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ ๋ค์ srcset
์ ํตํด ๋ฐ์ํ ์ฌ์ด์ฆ ์ด๋ฏธ์ง๋ค์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ํ ๋ธ๋ผ์ฐ์ ๊ฐ <source>
๋ฅผ ํตํด ์ ํํ ์ ์๋ .webp
์ ๊ฐ์ next-generation ์ด๋ฏธ์ง ํฌ๋งท์ ์ฝ๊ฒ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด Chrome์ด๋ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ native image lazy load ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ฅ์ ๋ํ ์ป์ ์ ์์ต๋๋ค.
์ด ๋ชจ๋ ์์ ์ ํ๋ ์ต์ข ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<picture>
<source
srcset="
/some/_1170x658_crop_center-center/man-with-a-dog.webp 1170w,
/some/_970x545_crop_center-center/man-with-a-dog.webp 970w,
/some/_750x562_crop_center-center/man-with-a-dog.webp 750w,
/some/_320x240_crop_center-center/man-with-a-dog.webp 320w
"
sizes="100vw"
type="image/webp"
/>
<source
srcset="
/some/_1170x658_crop_center-center/man-with-a-dog.jpg 1170w,
/some/_970x545_crop_center-center/man-with-a-dog.jpg 970w,
/some/_750x562_crop_center-center/man-with-a-dog.jpg 750w,
/some/_320x240_crop_center-center/man-with-a-dog.jpg 320w
"
sizes="100vw"
/>
<img
src="/some/man-with-a-dog-placeholder.jpg"
alt="Man with a dog"
style="object-fit: cover;"
loading="lazy"
/>
</picture>
<!-- The final way -->
์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ ์ป์ ์ ์์ต๋๋ค.
webp
ํฌ๋งท (์ง์ํ์ง ์์ผ๋ฉด skip)srcset
.SEO ์นํ์ , ์ ์ง์ ํฅ์, ์ ๊ทผ์ฑ, ์ฑ๋ฅ์ด ๋ชจ๋ ํ๋์ ์์ ์ฝ๋ ๋ฒ๋ค๋ก ํตํฉ๋ฉ๋๋ค.
Boom. ๐ฅ
๋ํ, ๋ชจ๋ ์ด๋ฏธ์ง๋ ImageOptimize์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด CMS์์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋์ด CDN์ด๋ Amazon S3์ ๊ฐ๋ฆฌํฌ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, object-fit
์ผ๋ก ๋
์ฐฝ์ ์ธ ์ด๋ฏธ์ง ํฌ๋กญํ์ ํ ์ ์์ต๋๋ค.
<picture>
์ srcset
์ ๋ธ๋ผ์ฐ์ ์ง์์ ๊ต์ฅํ ์ข์ต๋๋ค. (ํ์ํ๋ค๋ฉด polyfill ์ฌ์ฉ), object-fit
์ ๋ํ ๋ธ๋ผ์ฐ์ ์ง์ ๋ํ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. (์ญ์ ํ์ํ๋ค๋ฉด polyfill ์ฌ์ฉ). polyfill.io๋ ๋ ๋ค๋ฅธ ์ข์ ํด๋ฆฌํ ์ฌ์ฉ ํจํด์
๋๋ค.
์ค์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ์ํ๋ ๋๋ฌธ ๊ฒฝ์ฐ๋ ์ ์ธํ๊ณ , ์ด์ background-image
๋ฅผ ๋ฒ๋ฆด ๋๊ฐ ๋์์ต๋๋ค.
๋ค์์ ์ฌ์ฉ์๋ฅผ ์ํด ๋ชจ๋ฒ์ฌ๋ก๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ํ์ํ ๋ ์ ์ง์ ํฅ์๊ณผ ํด๋ฆฌํ์ ์ฌ์ฉํ์ธ์. ๋ฐฉ๋ฌธ์์ ๋น์จ์ด ์์ฃผ ์ ์ ์์ ๋ธ๋ผ์ฐ์ ์ ๋ํด ๋๋ฌด ๋์ํ์ง ๋ง์ธ์.
์ฝํ ์ธ ์ด๋ฏธ์ง๋ฅผ ์ฅ์(decoration)์ผ๋ก ์ฌ์ฉํ์ง ๋ง์ธ์. ์๋ฏธ์๋ HTML ์ปจํ ์ธ ์ด๋ฏธ์ง ์์๋ฅผ ์ฌ์ฉํ์ธ์.
์ ๋ ๋น์ ์ด SEO์ ๋ ์นํ์ ์ด๊ณ , ๋ ์ ๊ทผํ๊ธฐ ์ฝ๊ณ , ๋ ์ฑ๋ฅ์ด ์ข์ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ฒ๋ ๋ฟ๋ง ์๋๋ผ, ์๋ฏธ์๋ HTML๋ก ์์ฑํ๊ธฐ ๋์ฑ ๋ง์กฑ์ค๋ฝ๊ฒ ๋๋ผ๊ฒ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
CSS background-image
์์ฑ์ ๋ฉ์ธ hero ์ด๋ฏธ์ง๋ UI ์์์ ์ฌ์ฉํ๊ธฐ์ํ ๊ฒ์ด ์๋๋๋ค. ์ด์ ๋ ์ข์ ๋ฐฉ๋ฒ๋ค์ด ์์ผ๋, ์ด๋ฅผ ์ฌ์ฉํ์ธ์.
์ด๋ฏธ์ง ์ต์ ํ์ ๊ด์ฌ์ด ๋ง๋ค๋ฉด, images.guide๋ฅผ ํ์ธํด๋ณด์ธ์.
Enjoy your object-fit
!
picture ๋ผ๋ ํ๊ทธ๋ ์๊ตฐ์. ์์ฆ์ ๋งํฌ์ ๋ถ๋ถ์ ์ด์ ๋ ๋ณด์ง ์์๋๋ฐ ๊ฐ์ฌํฉ๋๋ค. ์ ์๊ฐ์ img์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์
์ ํ๊ทธ ์กฐํฉ์ด ๋ ๋ซ๋ค๊ณ ๋ด ๋๋ค. picture ํ๊ทธ๋ ๋ฐ์ํ ์น์ด๋ ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ์ ํฉํด ๋ณด์ ๋๋ค. ํด๋น ์คํ๋ณด๋ video, audio์ ๋น์ทํ ๋ฉด๋ค์ด ์๊ณ ์. ๊ทธ๋ฆฌ๊ณ , background-image ์์ฑ์ ์ธ๊ธํ์ ๋๋ก SEO์ ๊ฑฐ๋ฆฌ๊ฐ ์์ต๋๋ค. ํด๋น ์ฌ์ฉ์ด๋ฏธ์ง๊ฐ ํด๋น html ๋ฌธ์์์ ํ์์์๋ฉด imgํ๊ทธ๋ก, ๊ทธ๋ฅ ๊พธ๋ฏธ๋ ์์๋ฉด background-image๋ก ์ฒ๋ฆฌํ๋๊ฒ ๋ง์ต๋๋ค.
๋๋ถ์ ์ข์ ์ ๋ณด๋ฅผ ์์๊ฐ๋๋ค. ๊ฐ์ฌํฉ๋๋ค ๐ค