์น์ฌ์ดํธ๊ฐ ๋๋ฆด ๋ ์ด๋ฏธ์ง๋ถํฐ ์ ๊ฒํ๊ธฐ: ํฌ๊ธฐยทํฌ๋งทยท์ง์ฐ ๋ก๋ฉ ์ค์ ๊ฐ์ด๋
์น์ฌ์ดํธ์ ๊ธ์ ์ฌ๋ฆด ๋๋ ์ฌ์ง์ด ์ ๋ช ํ๊ฒ ๋ณด์ด๋์ง๋ถํฐ ํ์ธํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ์ด๋ฏธ์ง๊ฐ ๋ง์์ง๋ฉด ๋ชจ๋ฐ์ผ์์ ์ฒซ ํ๋ฉด์ด ๋ฆ๊ฒ ๋ํ๋๊ฑฐ๋, ์ฝ๋ ๋ฌธ์ฅ์ด ์๋๋ก ๋ฐ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค. ์๋ฒ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ ์ ์ด๋ฏธ์ง์ ํ์ผ ํฌ๊ธฐ์ ํ์ ๋ฐฉ์์ ํ์ธํ๋ฉด ์์ธ์ ์ขํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฏธ์ง ์ต์ ํ๋ ๋ชจ๋ ํ์ผ์ ํน์ ํ์ฅ์๋ก ๋ฐ๊พธ๋ ์์ ์ด ์๋๋๋ค. ๋ฐฉ๋ฌธ์๊ฐ ์ค์ ๋ก ๋ณด๋ ํฌ๊ธฐ, ๊ทธ๋ฆผ์ ๋ด์ฉ, ์์ถ ์ค์ , ๋ถ๋ฌ์ค๋ ์์ ์ ํจ๊ป ์กฐ์ ํด์ผ ํฉ๋๋ค. ์ด ๊ธ์์๋ ๊ฐ์ธ ์น์ฌ์ดํธ์ ๊ฒ์ํ ์ด์์๊ฐ ์ ์ฉํ๊ธฐ ์ฌ์ด ์์๋ก ์ ๊ฒ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ด ๊ธ์ ๊ฒ์ฆ ๋ฒ์: ๊ธ ์์ฑ ๊ณผ์ ์์ ์ง์ ๋ง๋ ๊ฐ์ ๋์๋ณด๋ ๋ํ๋ฅผ Pillow 12.3.0์ผ๋ก ์ ์ฅํด ํ์ผ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ์ต๋๋ค. ํน์ ์น์ฌ์ดํธ์ ์ค์ ์ ์ ์๋๋ ๊ด๊ณ ์น์ธ ๊ฒฐ๊ณผ๋ฅผ ์ธก์ ํ ์ฌ๋ก๋ ์๋๋๋ค. ์คํ ์์น์ ์ผ๋ฐ์ ์ธ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ตฌ๋ถํด ์ฝ์ด์ฃผ์ธ์.
1. ํ๋ฉด์์ ์๊ฒ ๋ณด์ธ๋ค๊ณ ์์ ํ์ผ์ ์๋๋ค
๊ฐ๋ก 4,000ํฝ์ ์ฌ์ง์ ๋ณธ๋ฌธ์์ 800ํฝ์ ๋๋น๋ก ํ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. CSS๋ก ํ์ ํฌ๊ธฐ๋ง ์ค์ด๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ ํ ์๋ ํ์ผ์ ๋ด๋ ค๋ฐ์ต๋๋ค. ํ๋ฉด์ ์ฐจ์งํ๋ ๋ฉด์ ๊ณผ ์ ์ก๋๋ ํ์ผ ์ฉ๋์ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๋๋ค.
๋จผ์ ์ด๋ฏธ์ง๊ฐ ์ด๋์ ์ฐ์ด๋์ง ๊ตฌ๋ถํ์ธ์. ๊ฒ์ํ ๋ชฉ๋ก์ ์ธ๋ค์ผ์ ์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ด๊ณ , ๋ณธ๋ฌธ ์ด๋ฏธ์ง๋ ๋ด์ฉ์ ์ค๋ช ํ๋ ์๋ฃ์ ๋๋ค. ๊ฐ์ ์๋ณธ์ ์์ชฝ์์ ๊ทธ๋๋ก ์ฐ๊ธฐ๋ณด๋ค ์ฉ๋์ ๋ง๋ ํ์ผ์ ์ค๋นํ๋ ํธ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๋ค๋ง ๊ณ ๋ฐ๋ ํ๋ฉด์์๋ CSS ํ์ ๋๋น๋ณด๋ค ๋ ๋ง์ ์ด๋ฏธ์ง ํฝ์ ์ด ํ์ํ ์ ์์ผ๋ฏ๋ก, ํ์ ๋๋น๋ง ๋ณด๊ณ ๋ฌด์กฐ๊ฑด ๊ฐ์ ํฝ์ ์๋ก ์๋ผ๋ด์ง๋ ๋ง์ธ์.[9]
| ์ฌ์ฉ ์์น | ๋จผ์ ํ์ธํ ์ | ์กฐ์ ๋ฐฉํฅ |
|---|---|---|
| ๊ฒ์ํ ๋ชฉ๋ก | ์์ ์ธ๋ค์ผ์ ์๋ณธ์ ๋ด๋ ค๋ฐ๋๊ฐ? | ๋ณ๋ ์ธ๋ค์ผ๊ณผ ์ผ์ ํ ๋น์จ ์ค๋น |
| ๋ณธ๋ฌธ ์ฌ์ง | ๋ณธ๋ฌธ ๋๋น์ ๋นํด ์๋ณธ์ด ์ง๋์น๊ฒ ํฐ๊ฐ? | ์ค์ ํ์ ํฌ๊ธฐ์ ํ๋ฉด ๋ฐ๋๋ฅผ ๊ณ ๋ คํด ์ถ์ |
| ์ฝ๋ยท์ค์ ํ๋ฉด ์บก์ฒ | ์์ ๊ธ์จ๋ฅผ ํ๋ํด์ ์ฝ์ด์ผ ํ๋๊ฐ? | ๊ธ์ ๊ฐ๋ ์ฑ์ ๊ธฐ์ค์ผ๋ก ํฌ๊ธฐ์ ์์ถ ๊ฒฐ์ |
| ์ฒซ ํ๋ฉด์ ๋ํ ์ด๋ฏธ์ง | ์ด ์ด๋ฏธ์ง ๋๋ฌธ์ ์ฃผ์ ๋ด์ฉ์ด ๋ฆ๊ฒ ๋ณด์ด๋๊ฐ? | ์ฉ๋๊ณผ ์์ฒญ ์์ ์ ์ฐ์ ํ์ธ |
์ด์ ์ค์๋ ๋จผ์ ์์ฃผ ์ฝํ๋ ๊ธ ๋ช ๊ฐ๋ฅผ ๋์์ผ๋ก ์ ๊ฒํด๋ ์ข์ต๋๋ค. ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ํ๊บผ๋ฒ์ ๋ณํํ๋ฉด ์ด๋ ๋ณ๊ฒฝ์ด ๋์์ด ๋์๋์ง ๊ตฌ๋ถํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ํ ์ด๋ฏธ์ง, ๋ชฉ๋ก ์ธ๋ค์ผ, ๋ณธ๋ฌธ ์๋ ์ด๋ฏธ์ง ์์๋ก ๋์์ ๋๋๋ฉด ๋น๊ต ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ๊ธฐ๋ ์ฝ์ต๋๋ค.
2. Chrome ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ์ค์ ์ ์ก์ ํ์ธํ๊ธฐ
์ด๋ฏธ์ง ํ์ผ์ด ํฌ๋ค๊ณ ํด์ ํ์ด์ง ์ง์ฐ์ ์์ธ์ด ํญ์ ์ด๋ฏธ์ง์ธ ๊ฒ์ ์๋๋๋ค. ์๋ฒ๊ฐ HTML์ ๋ฆ๊ฒ ๋ณด๋ด๊ฑฐ๋, ๋ค๋ฅธ ๋ฆฌ์์ค ์์ฒญ์ด ๋จผ์ ์ง์ฐ๋ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ถ์ธก์ผ๋ก ํ์ผ์ ๋ฐ๊พธ๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ์ ์์ฒญ ๊ธฐ๋ก์ ํ์ธํ์ธ์.
- Chrome์์ ์ ๊ฒํ ํ์ด์ง๋ฅผ ์ด๊ณ
F12๋ก ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค. - Network ํญ์์ Disable cache๋ฅผ ์ผ๊ณ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํฉ๋๋ค. ์ด ์ค์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ์ด๋ ค ์์ ๋ ์ ์ฉ๋ฉ๋๋ค.
- ์ด๋ฏธ์ง ํํฐ๋ฅผ ์ ํํด ์ด๋ค ํ์ผ์ ์์ฒญํ๋์ง ํ์ธํฉ๋๋ค.
- Size์ Time, ์์ฒญ ์์ธ์ Timing์ ํจ๊ป ๋ด ๋๋ค.
- ๊ฐ์ ์กฐ๊ฑด์์ ํ์ผ์ ๊ต์ฒดํ ๋ค ๋ค์ ์ธก์ ํฉ๋๋ค.
Network์์๋ ์ ์ก๋๊ณผ ๋ฆฌ์์ค ํฌ๊ธฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๊ณ , ์บ์์์ ๊ฐ์ ธ์จ ๊ฒฝ์ฐ๋ ํ์ธํ ์ ์์ต๋๋ค. ์บ์๋ ์ํ์ ๊ฒฐ๊ณผ๋ฅผ ์ฒ์ ๋ฐฉ๋ฌธํ ์ฌ์ฉ์์ ๊ฒฐ๊ณผ์ ๋ฐ๋ก ๋น๊ตํ์ง ๋ง์ธ์. ์๊ฐ์๋ ์ ์ก๋ฟ ์๋๋ผ ๋๊ธฐ์ ์ฐ๊ฒฐ ๋ฑ ์ฌ๋ฌ ๋จ๊ณ๊ฐ ์ํฅ์ ์ค๋๋ค.[2]
์ด์ ๊ธฐ๋ก์๋ ํ์ด์ง ์ฃผ์, ํ์ธ ๋ ์ง, ํ๋ฉด ํฌ๊ธฐ, ์บ์ ์ฌ์ฉ ์ฌ๋ถ, ๋ณ๊ฒฝํ ํ์ผ ์ด๋ฆ์ ์ ์ด๋์ธ์. ์๋ฅผ ๋ค์ด โ์ด๋ฏธ์ง๋ฅผ WebP๋ก ๋ฐ๊ฟจ๋๋ ๋นจ๋ผ์ก๋คโ๋ณด๋ค โ๊ฐ์ ํ ์คํธ ์กฐ๊ฑด์์ ๋ํ ์ด๋ฏธ์ง์ ์ ์ก๋์ด ์ค์๋คโ๊ฐ ๊ฒ์ฆ ๊ฐ๋ฅํ ํํ์ ๋๋ค. ์ค์ ํ์ด์ง์ ํ์ ์๋๊น์ง ๊ฐ์ ๋์๋์ง๋ ๋ณ๋ ์ธก์ ์ผ๋ก ํ์ธํด์ผ ํฉ๋๋ค.
3. PNG, JPEG, WebP, AVIF ์ค ๋ฌด์์ ์ ํํ ๊น?
ํฌ๋งท์ ๊ทธ๋ฆผ์ ์ฉ๋์ ๋ง์ถฐ ์ ํํด์ผ ํฉ๋๋ค. JPEG๋ ์ฌ์ง์ ํํ ์ฐ์ด๋ ์์ค ์์ถ ํ์์ด๊ณ , PNG๋ ๋ฌด์์ค ํํ์ด๋ ํฌ๋ช ๋ฐฐ๊ฒฝ์ด ํ์ํ ์ด๋ฏธ์ง์ ์ฐ์ ๋๋ค. WebP๋ ์์คยท๋ฌด์์ค ์์ถ์ ์ง์ํ๋ฉฐ, AVIF๋ ์ฌ์ง๊ณผ ํฌ๋ช ์ด๋ฏธ์ง ๋ฑ์ ๋์์ด ๋ ์ ์์ต๋๋ค.[3]
ํ์ง๋ง โ์ต์ ํ์์ด๋๊น ๋ชจ๋ ์ด๋ฏธ์ง์์ ๊ฐ์ฅ ์๋คโ๋ผ๊ณ ๋จ์ ํ ์๋ ์์ต๋๋ค. ์ฌ์ง, ๋จ์ ๋ํ, ์์ ๊ธ์จ๊ฐ ๋ง์ ํ๋ฉด ์บก์ฒ๋ ์์ถ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๊ฒ ๋ํ๋ฉ๋๋ค. ์ธ์ฝ๋ ์ค์ ๊น์ง ๋ฌ๋ผ์ง๋ฏ๋ก ํ์ฅ์์ ํ์ง ์ซ์๋ง ๋น๊ตํด์ ์ต์ข ํ๋จ์ ๋ด๋ฆฌ๋ฉด ์ ๋ฉ๋๋ค.
| ๊ทธ๋ฆผ์ ํน์ง | ๋น๊ตํด ๋ณผ ํ์ | ํ์ธํ ๋ถ๋ถ |
|---|---|---|
| ์ผ๋ฐ ์ฌ์ง | JPEG, ์์ค WebP, AVIF | ํผ๋ถยท๊ทธ๋ผ๋ฐ์ด์ ยท๋ฏธ์ธํ ์ง๊ฐ |
| ์์ ๊ธ์จ๊ฐ ๋ง์ ์บก์ฒ | PNG, ๋ฌด์์ค WebP | ๊ธ์ ํ ๋๋ฆฌ์ ์์ ์ |
| ํฌ๋ช ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง | PNG, WebP, AVIF | ํฌ๋ช ์์ญ๊ณผ ๊ฐ์ฅ์๋ฆฌ |
์ด ํ๋ ๋น๊ต์ ์ถ๋ฐ์ ์ ๋๋ค. ๊ฐ์ ํ์ผ์ ์ค์ ๋ก ์ ์ฅํด ์ฉ๋์ ํ์ธํ๊ณ , ๋ ์๊ฐ ์ฝ์ ํฌ๊ธฐ์์ ๊ทธ๋ฆผ์ ์ดํด๋ณด์ธ์. ์๋ฒ๊ฐ ํน์ ํ์์ผ๋ก ์๋ ๋ณํํ๋ค๋ฉด ์ ๋ก๋ ์ ํ์ผ๊ณผ ๊ฒ์ ํ ์ ๊ณต๋๋ ํ์ผ๋ ๊ตฌ๋ถํด์ผ ํฉ๋๋ค. ๋ณํ์ ๋ฐ๋ณตํ๋ฉด ๊ธฐ๋ํ๋ ๊ฒฐ๊ณผ์ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
4. ์ง์ ๋ง๋ ๋ํ๋ก ํ์ธํ ์์ถ ๊ฒฐ๊ณผ
์๋ ์ด๋ฏธ์ง๋ ์ ์๊ถ ๋ฌธ์ ๊ฐ ์๋ ์น์ฌ์ดํธ ํ๋ฉด์ ๊ฐ์ ธ์จ ๊ฒ์ด ์๋๋ผ, ํ ์คํธยท๋จ์ ๋ฐฐ๊ฒฝยท์์ ์ ์ผ๋ก ์ง์ ๊ตฌ์ฑํ ์คํ์ฉ ๊ฐ์ ๋์๋ณด๋์ ๋๋ค. ์ค์ ์ด์ ์์คํ ์ ํ๋ฉด์ด๋ ์ฑ๋ฅ ๊ธฐ๋ก์ ๋ํ๋ด์ง๋ ์์ต๋๋ค.
์คํ์ ์ฌ์ฉํ ๋ํ์ 1,200 ร 675ํฝ์ ๋ฒ์ . ์ด ๋ฌธ์์๋ ๋ฌด์์ค WebP๋ก ๋ด์ฅํ์ต๋๋ค.
์๋ณธ์ RGB ๋ชจ๋์ 2,400 ร 1,350ํฝ์
์
๋๋ค. PNG๋ optimize=True, ์์ค WebP๋ quality=80, method=6์ผ๋ก ์ ์ฅํ์ต๋๋ค. ์ถ์๋ณธ์ LANCZOS๋ก ๊ฐ๋กยท์ธ๋ก๋ฅผ ๊ฐ๊ฐ ์ ๋ฐ์ผ๋ก ์ค์์ต๋๋ค. ๋ฌด์์ค WebP์๋ lossless=True, method=6์ ์ ์ฉํ์ต๋๋ค.
| ์ ์ฅ ์กฐ๊ฑด | ํด์๋ | ์ค์ ๋ฐ์ดํธ | ์ฉ๋ |
|---|---|---|---|
| ์๋ณธ PNG | 2,400 ร 1,350 | 163,983 | 160.1 KiB |
| ์๋ณธ ์์ค WebP, quality 80 | 2,400 ร 1,350 | 220,426 | 215.3 KiB |
| ์ถ์ PNG | 1,200 ร 675 | 153,431 | 149.8 KiB |
| ์ถ์ ๋ฌด์์ค WebP | 1,200 ร 675 | 20,812 | 20.3 KiB |
| ์ถ์ ์์ค WebP, quality 80 | 1,200 ร 675 | 91,666 | 89.5 KiB |
์ฉ๋์ ํ์ผ ๋ฐ์ดํธ๋ฅผ 1,024๋ก ๋๋ KiB์ด๋ฉฐ ์์์ ํ ์๋ฆฌ๋ก ํ์ํ์ต๋๋ค. quality=80์ ์ธ์ฝ๋์ ์ค์ ๊ฐ์ด์ง ์๋ณธ ํ์ง์ 80% ์ ์งํ๋ค๋ ๋ป์ด ์๋๋๋ค.[4]
์ด ๊ทธ๋ฆผ์์๋ ์๋ณธ์ ์์ค WebP๋ก ๋ฐ๊พผ ํ์ผ์ด PNG๋ณด๋ค ์ปธ์ต๋๋ค. ์ถ์ PNG๋ ํฝ์ ์๊ฐ ํฌ๊ฒ ์ค์ด๋ ๋งํผ ์ฉ๋์ด ์ค์ง๋ ์์์ต๋๋ค. ๋ฐ๋ฉด ์ถ์ ๋ฌด์์ค WebP๋ ์ถ์ PNG๋ณด๋ค ์ฝ 86.4% ์์์ต๋๋ค. ๋ ์ถ์ ํ์ผ์ ์ ์ฅ ํ ๋ค์ ์ด์ด RGB ํฝ์ ๊ฐ์ด ๊ฐ์์ง๋ ํ์ธํ์ต๋๋ค.
์ด ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ง์ด๋ ๋ชจ๋ ์น์ฌ์ดํธ์ ๊ทธ๋๋ก ์ ์ฉํ ์๋ ์์ต๋๋ค. ์ด ์คํ์ ๋จ์๊ณผ ๋ฐ๋ณต๋๋ ๊ธ์๊ฐ ๋ง์ ๊ทธ๋ฆผ ํ ์ฅ์ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ํ ํ์ผ ํฌ๊ธฐ๋ง ๋น๊ตํ์ผ๋ฏ๋ก ์ธ์ฝ๋ฉ ์๊ฐ, ๋ธ๋ผ์ฐ์ ๋์ฝ๋ฉ ์๊ฐ, ์ค์ LCP ๊ฐ์ ์จ์ ์ธก์ ํ ๊ฒ์ ์๋๋๋ค. ์ค๋ฌด์์ ์ป์ ์ ์๋ ๊ตํ์ ์๊ฒ ๋ง๋ ๋ค์๋ ์ ์ฅ ํ์์ ์ฌ๋ฌ ๊ฐ ๋น๊ตํด์ผ ํ๋ค๋ ์ ์ ๋๋ค.
5. ์๋ณธ์ ๋ณด์กดํ๋ฉด์ ์ถ์๋ณธ ๋ง๋ค๊ธฐ
๋ฐ๋ณต ์์ ์๋ ๊ฐ๋จํ ๋ณํ ์คํฌ๋ฆฝํธ๊ฐ ๋์์ด ๋ฉ๋๋ค. ๋ค์ ์์ ๋ Pillow๊ฐ ์ค์น๋ Python ํ๊ฒฝ์์ PNG ํ ์ฅ์ ์ด์ด, ์ต๋ 1,200 ร 1,200ํฝ์ ์์ ๋ค์ด๊ฐ๋ ๋ฌด์์ค WebP๋ฅผ ๋ง๋ญ๋๋ค. ์๋ณธ์ ๋ฎ์ด์ฐ์ง ์์ผ๋ฉฐ, ์์ ์ด๋ฏธ์ง๋ฅผ ์ต์ง๋ก ํ๋ํ์ง ์์ต๋๋ค.
from pathlib import Path
from PIL import Image, ImageOps
source = Path("input.png")
destination = Path("input-1200.webp")
with Image.open(source) as original:
image = ImageOps.exif_transpose(original)
image.thumbnail((1200, 1200), Image.Resampling.LANCZOS)
image.save(destination, "WEBP", lossless=True, method=6)
print("saved:", destination)
print("bytes:", destination.stat().st_size)
thumbnail()์ ์ข
ํก๋น๋ฅผ ์ ์งํ๋ฉด์ ์ง์ ํ ์์ ์์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ค์
๋๋ค. ๊ฐ๋ก๊ฐ ๊ธด ์ด๋ฏธ์ง์ ์ธ๋ก๊ฐ ๊ธด ์ด๋ฏธ์ง์ ์ต์ข
ํฌ๊ธฐ๋ ๋ค๋ฅด๊ฒ ๋์ต๋๋ค.[5] ์ฌ์ง์ ์ ์ฉํ ๋๋ ์์ค ์์ถ๋ ๋น๊ตํ๊ณ , ํ๋ฉด ์บก์ฒ์ ์ ์ฉํ ๋๋ ์์ ๊ธ์จ๊ฐ ์ฝํ๋์ง ํ์ธํ์ธ์.
์ด ์์ ๋ ์ ์ง ์ด๋ฏธ์ง ํ ์ฅ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ณธํ์ ๋๋ค. ์ ๋๋ฉ์ด์ ํ๋ ์, ์์ ํ๋กํ, ๋ฉํ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ ๊น์ง ๋ค๋ฃจ๋ ์ผ๊ด ๋ณํ ๋๊ตฌ๋ ์๋๋๋ค. ์๋ณธ์ ๋ณ๋๋ก ๋ณด๊ดํ๊ณ , ๋ณํ๋ณธ์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ง์ ์ด์ด๋ณด๋ ์ ์ฐจ๋ฅผ ์ ์งํ์ธ์.
6. width์ height๋ก ์ด๋ฏธ์ง ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ํ๋ณดํ๊ธฐ
์ด๋ฏธ์ง๊ฐ ๋ฆ๊ฒ ๋์ฐฉํ ๋ ๋ณธ๋ฌธ์ด ์๋๋ก ๋ฐ๋ฆฐ๋ค๋ฉด ์ด๋ฏธ์ง ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ์ก์๋์๋์ง ํ์ธํ์ธ์. HTML์ ์ฌ๋ฐ๋ฅธ width์ height๋ฅผ ๋ฃ์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฏธ์ง์ ๋น์จ์ ๊ณ์ฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ฏธ์ง๊ฐ ๋ก๋๋๋ฉด์ ์๊ธฐ๋ ๋ ์ด์์ ์ด๋์ ์ค์ด๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์
๋๋ค.[6]
<img
src="/static/uploads/example-1200.webp"
alt="์ด๋ฏธ์ง ํฌ๊ธฐ์ ์์ถ ์กฐ๊ฑด์ ๋น๊ตํ ๊ฒฐ๊ณผ"
width="1200"
height="675"
style="max-width:100%;height:auto;"
>
๊ฐ๋กยท์ธ๋ก ๊ฐ์ ํ์ผ์ ์ค์ ๋น์จ๊ณผ ๋ง์ถฐ์ผ ํฉ๋๋ค. ์ธ๋ก ์ด๋ฏธ์ง์ ๊ฐ๋ก ์ด๋ฏธ์ง์ ์์น๋ฅผ ๋ณต์ฌํ๋ฉด ์์๊ณผ ๋ค๋ฅธ ๊ณต๊ฐ์ด ์กํ ์ ์์ต๋๋ค. CSS์ max-width:100%๋ ๋ณธ๋ฌธ ๋๋น๋ฅผ ๋์ง ์๊ฒ ํ๊ณ , height:auto๋ ํ์ ๋น์จ์ ์ ์งํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
์ด๋ฏธ์ง ์น์ ์ง์ ์ผ๋ก ๋ชจ๋ ๋ ์ด์์ ์ด๋์ด ํด๊ฒฐ๋์ง๋ ์์ต๋๋ค. ๊ด๊ณ ์์ญ, ๋ฆ๊ฒ ์ฝ์ ๋๋ ์ฝํ ์ธ , ๊ธ๊ผด ๋ณํ ๋ฑ๋ ๋ฐ๋ก ์ ๊ฒํด์ผ ํฉ๋๋ค. ์ด๋ฏธ์ง๋ ํด๋น ๋ฌธ์ ์ ํ ๊ฐ์ง ์์ธ์ผ๋ก ํ์ธํ๋ ํธ์ด ์ ํํฉ๋๋ค.
7. ๋ชจ๋ ์ด๋ฏธ์ง์ lazy๋ฅผ ๋ถ์ด์ง ์๊ธฐ
๊ธด ๊ธ ์๋์ชฝ ์ด๋ฏธ์ง๋ฅผ ์ฒ์๋ถํฐ ์ ๋ถ ๋ด๋ ค๋ฐ์ ํ์๋ ์์ต๋๋ค. ํ๋ฉด์ ๊ฐ๊น์์ก์ ๋ ๋ถ๋ฌ์ค๋ loading="lazy"๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋จํ๋ ๊ฑฐ๋ฆฌ์ ์์ ์ ๋ฐ๋ผ ๋์ํ๋ฏ๋ก, ์ด๋ฏธ์ง๊ฐ ๋ณด์ด๋ ์ ํํ ์๊ฐ์๋ง ์์ฒญ๋๋ค๊ณ ์ดํดํ๋ฉด ์ ๋ฉ๋๋ค.[7]
<!-- ์คํฌ๋กค ์๋์ชฝ์ ๋ณธ๋ฌธ ์ด๋ฏธ์ง ์์ -->
<img
src="/static/uploads/example-detail.webp"
alt="์ธ๋ถ ์ค์ ์ ์ค๋ช
ํ๋ ํ๋ฉด"
width="1200"
height="800"
loading="lazy"
style="max-width:100%;height:auto;"
>
๋ฐ๋๋ก ์ฒซ ํ๋ฉด์์ ๊ฐ์ฅ ํฌ๊ฒ ๋ณด์ด๋ ๋ํ ์ด๋ฏธ์ง์ ์ง์ฐ ๋ก๋ฉ์ ๊ฑธ๋ฉด ์ฃผ์ ์ฝํ ์ธ ํ์๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค. LCP ํ๋ณด ์ด๋ฏธ์ง๋ ์ง์ฐ ๋ก๋ฉ์ ํผํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ๋ฐฉํฅ์ ๋๋ค. LCP๋ ์ฒซ ํ๋ฉด์ ์ฃผ์ ์ฝํ ์ธ ๊ฐ ๋ํ๋๋ ์์ ์ ์ดํด๋ณด๋ ์ฑ๋ฅ ์งํ์ ๋๋ค.[7]
๊ฒ์ํ์ ์ด์ํ๋ค๋ฉด ๋ชฉ๋ก๊ณผ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํด์ ๊ฒฐ์ ํ์ธ์. ๋ชฉ๋ก ์๋จ์์ ๋ฐ๋ก ๋ณด์ด๋ ์ด๋ฏธ์ง, ๊ธด ๊ธ ์ค๊ฐ ์ดํ์ ์ด๋ฏธ์ง, ํ๋ฉด ๋ฐ ์ธ๋ค์ผ์ ๊ฐ์ ์กฐ๊ฑด์ด ์๋๋๋ค. ์ ์ญ ๊ท์น์ผ๋ก ๋ชจ๋ ์ด๋ฏธ์ง์ lazy๋ฅผ ๋ถ์ด๊ธฐ๋ณด๋ค ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธํด์ผ ํฉ๋๋ค.
8. ๋ชจ๋ฐ์ผ๊ณผ ๋ฐ์คํฌํฑ์ ๋ค๋ฅธ ํฌ๊ธฐ ์ ๊ณตํ๊ธฐ
ํ์ผ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ค๋นํ ์ ์๋ค๋ฉด srcset๊ณผ sizes๋ก ์ด๋ฏธ์ง ํ๋ณด์ ์์ ํ์ ๋๋น๋ฅผ ์๋ ค์ค ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ํ๋ฉด ๋ฐ๋์ ๋ ์ด์์ ๋ฑ์ ๊ณ ๋ คํด ํ๋ณด๋ฅผ ์ ํํฉ๋๋ค. ์๋๋ ๋ณธ๋ฌธ์ด ์ต๋ 800ํฝ์
์ด๊ณ , ์ข์ ํ๋ฉด์์๋ ์์ชฝ์ 16ํฝ์
์ฌ๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ์ ์์์
๋๋ค.[1]
<img
src="/static/uploads/photo-800.webp"
srcset="/static/uploads/photo-480.webp 480w,
/static/uploads/photo-800.webp 800w,
/static/uploads/photo-1600.webp 1600w"
sizes="(max-width: 832px) calc(100vw - 32px), 800px"
width="1600"
height="900"
alt="์๋ก ๋ค๋ฅธ ํ๋ฉด ๋๋น์ ๋ง์ถฐ ์ ๊ณตํ๋ ๋ณธ๋ฌธ ์ฌ์ง"
style="max-width:100%;height:auto;"
>
์ฝ๋์ ํ์ผ ์ด๋ฆ์ ์ ๋ ๊ฒ๋ง์ผ๋ก ๋ณํ๋ณธ์ด ์์ฑ๋์ง๋ ์์ต๋๋ค. ์ธ ํ์ผ์ ๊ฐ์ ๋น์จ๋ก ์ค์ ์ค๋นํด์ผ ํ๊ณ , sizes๋ ์ฌ์ดํธ์ ๋ณธ๋ฌธ ํญ์ ๋ง์ถฐ์ผ ํฉ๋๋ค. ์ ๊ฒฝ๋ก๋ ๊ตฌํ ์ค๋ช
์ฉ์ด๋ฉฐ ๊ทธ๋๋ก ๋ณต์ฌํ๊ธฐ ์ ์ ์ค์ ํ์ผ ์ฃผ์๋ก ๋ฐ๊พธ์ธ์.
์๋ํฐ๋ ์๋ฒ์ HTML ์ ๋ฆฌ ๊ธฐ๋ฅ์ด ์์ฑ์ ์ ๊ฑฐํ ์๋ ์์ต๋๋ค. ์ ์ฅํ ๋ค ์ค์ ํ์ด์ง์ ์์ ๊ฒ์ฌ์์ srcset, sizes, loading์ด ์ ์ง๋๋์ง ํ์ธํ์ธ์. ์๊ณ ์ ์ฝ๋ ์์ ๋ฅผ ๋ฃ๋ ์ผ๊ณผ ์น์ฌ์ดํธ ์ ์ฒด์ ์ต์ ํ๋ฅผ ์ ์ฉํ๋ ์ผ์ ๋ณ๊ฐ์ ์์
์
๋๋ค.
9. ์ด์์๊ฐ ๊ธฐ๋กํด๋ ์ ๊ฒํ
์ค์ ์ด์์์๋ ํ ๋ฒ์ ์ ์๋ณด๋ค ๋ณ๊ฒฝ ์ ํ ๊ธฐ๋ก์ด ์ ์ฉํฉ๋๋ค. ์๋ ํญ๋ชฉ์ ๊ธ ํ ํธ์ ์ ์ฉํ๊ณ , ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ ๋ค ๋ค๋ฅธ ๊ธ๋ก ํ๋ํด ๋ณด์ธ์.
- ๋ํ ์ด๋ฏธ์ง์ ๋ชฉ๋ก ์ธ๋ค์ผ์ ์ค์ ํ์ผ ์ฉ๋์ ํ์ธํ๋๊ฐ?
- ๋ณธ๋ฌธ์์ ์์ ๊ธ์จ์ ์์ ์ ์ด ์ถฉ๋ถํ ์ฝํ๋๊ฐ?
- ์๋ณธ ํ์ผ๊ณผ ๋ณํ๋ณธ์ ๋ถ๋ฆฌํด ๋ณด๊ดํ๋๊ฐ?
- ์บ์ยทํ๋ฉด ํฌ๊ธฐ ๋ฑ ๊ฐ์ ์กฐ๊ฑด์ผ๋ก ๋ณ๊ฒฝ ์ ํ๋ฅผ ๋น๊ตํ๋๊ฐ?
- ์ด๋ฏธ์ง์ ๊ฐ๋กยท์ธ๋ก ๋น์จ์ด ๋ง๋๊ฐ?
- ์ฒซ ํ๋ฉด์ ์ฃผ์ ์ด๋ฏธ์ง๋ฅผ ๋ถํ์ํ๊ฒ ์ง์ฐ ๋ก๋ฉํ์ง ์์๋๊ฐ?
- ๋ฑ๋ก ํ ์ค์ ์ด๋ฏธ์ง ์์ฒญ์ด ์ฑ๊ณตํ๊ณ ๋ชจ๋ฐ์ผ์์ ์ ๋๋ก ํ์๋๋๊ฐ?
์๋ฅผ ๋ค์ด ํ ๊ธ์ ๋ํ ์ด๋ฏธ์ง๋ง ๋ฐ๊พธ์๋ค๋ฉด ๋ํ ์ด๋ฏธ์ง์ ํ์ผ ์ ์ก๋๊ณผ ์ฒซ ํ๋ฉด ํ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋ชฉ๋ก ์ธ๋ค์ผ๊น์ง ๋์์ ๋ฐ๊พธ์๋ค๋ฉด ๋ชฉ๋ก ํ์ด์ง๋ ๋ฐ๋ก ํ์ธํด์ผ ํฉ๋๋ค. ์ธก์ ๋์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ก์ผ๋ฉด ๊ฐ์ ์ด ์์ ๋ ๋๋๋ฆฌ๊ฑฐ๋ ๋ค์ ์์ธ์ ์ฐพ๊ธฐ ์ฝ์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Q. ์ด๋ฏธ์ง ์ฉ๋์ ๋ฌด์กฐ๊ฑด 100KB ์ดํ๋ก ๋ง์ถฐ์ผ ํ๋์?
๋ชจ๋ ์ด๋ฏธ์ง์ ์ ์ฉํ ๋จ์ผ ๊ธฐ์ค์ผ๋ก ๋ณด๊ธฐ ์ด๋ ต์ต๋๋ค. ์์ ์ธ๋ค์ผ๊ณผ ๊ธ์จ๊ฐ ๋ง์ ์ค๋ช ์๋ฃ๋ ํ์ํ ์ ๋ณด๋์ด ๋ค๋ฆ ๋๋ค. ์ผ์ ์ซ์๋ฅผ ๋ง์ถ๋ ค๊ณ ๊ฐ๋ ์ฑ์ ํผ์ํ๊ธฐ๋ณด๋ค ์ฉ๋์ ๋ง๋ ํฌ๊ธฐ์ ์์ถ์ ๋น๊ตํ์ธ์.
Q. PNG๋ฅผ WebP๋ก ๋ฐ๊พธ๋ฉด ๋ฐ๋์ ์์์ง๋์?
๊ทธ๋ ์ง ์์ต๋๋ค. ์ ์คํ์์๋ ์๋ณธ ์์ค WebP๊ฐ ์๋ณธ PNG๋ณด๋ค ์ปธ์ต๋๋ค. ๊ฐ์ ๊ทธ๋ฆผ์ ์ถ์ ๋ฌด์์ค WebP๋ ํจ์ฌ ์์์ต๋๋ค. ๊ทธ๋ฆผ์ ํน์ฑ๊ณผ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฏ๋ก ์ค์ ํ์ผ์ ๋น๊ตํด์ผ ํฉ๋๋ค.
Q. ์ด๋ฏธ์ง๊ฐ ์ด๋ฏธ WebP๋ผ๋ฉด ๋ ํ ์ผ์ด ์๋์?
ํด์๋, ์์ถ ์ค์ , ์ธ๋ค์ผ ๋ถ๋ฆฌ, ์ฒซ ํ๋ฉด ์์ฒญ ์์ ์ด ๋จ์ ์์ต๋๋ค. ์์ ์นด๋์ ํฐ ์๋ณธ์ ๋ด๋ ค๋ฐ๋๋ค๋ฉด WebP๋ผ๋ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Q. ํ์ผ ์ฉ๋์ด ์ค์๋๋ฐ ์ฌ์ดํธ๋ ์ฌ์ ํ ๋๋ฆฝ๋๋ค.
์ด๋ฏธ์ง ์ธ์ ์ง์ฐ์ด ์์ ์ ์์ต๋๋ค. HTML ์๋ต, ์คํฌ๋ฆฝํธ, ๊ธ๊ผด, ์ธ๋ถ ๋ฆฌ์์ค ์์ฒญ์ ํจ๊ป ํ์ธํ์ธ์. ํ์ผ ํฌ๊ธฐ ๊ฐ์๋ฅผ ํ์ด์ง ์ ์ฒด์ ์๋ ๊ฐ์ ๊ณผ ๊ฐ์ ์๋ฏธ๋ก ๊ธฐ๋กํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
Q. HTML์ ๋ด์ฅํ ์ด๋ฏธ์ง๋ ๊ทธ๋๋ก ๊ฒ์ํด๋ ๋๋์?
ํ์ผ ํ๋๋ก ๋ฌธ์๋ฅผ ์ ๋ฌํ ๋๋ ํธ๋ฆฌํฉ๋๋ค. ๊ฒ์ํ์ด ๋ด์ฅ ์ด๋ฏธ์ง๋ฅผ ๋ณ๋ ํ์ผ๋ก ์ ์ฅํ๋ ๋ถ๋ฌ์ค๊ธฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ฉด ๊ทธ ๊ธฐ๋ฅ์ ์ด์ฉํ์ธ์. ๋ฑ๋ก ํ ๋ณธ๋ฌธ์ ์ด๋ฏธ์ง ์ฃผ์๊ฐ ์ค์ ํ์ผ URL๋ก ๋ฐ๋์๋์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค.
Q. ์ด ์์ ์ ํ๋ฉด ์ ๋์ผ์ค ์น์ธ์ด ๋๋์?
์ด๋ฏธ์ง ์ต์ ํ๋ง์ผ๋ก ์น์ธ์ ๋ณด์ฅํ ์๋ ์์ต๋๋ค. ๋ ์๊ฐ ๊ธ์ ํธํ๊ฒ ์ฝ๋๋ก ๋๋ ๊ฐ์ ์ด๋ฉฐ, ์ฝํ ์ธ ์ ๋ ์ฐฝ์ฑยท์ ์ฑ ์ค์ยทํ์ ๊ตฌ์กฐ ๋ฑ ์ฌ์ดํธ ์ ์ฒด์ ์ํ๋ ๋ณ๋๋ก ์ ๊ฒํด์ผ ํฉ๋๋ค.[8]
๋ค์ ๊ธ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆด ๋๋ ํ์ผ ํ์๋ถํฐ ๊ฒฐ์ ํ๊ธฐ๋ณด๋ค, ๋ฐฉ๋ฌธ์๊ฐ ์ด๋์์ ์ด๋ค ์ ๋ณด๋ฅผ ์ฝ์ด์ผ ํ๋์ง ๋จผ์ ํ์ธํ์ธ์. ๊ทธ๋ค์ ํ์ํ ํฌ๊ธฐ๋ก ์ค๋นํ๊ณ , ์ฌ๋ฌ ์ ์ฅ ์กฐ๊ฑด์ ๋น๊ตํ ๋ค, ์ค์ ๊ฒ์ ํ์ด์ง์์ ์์ฒญ๊ณผ ํ์๋ฅผ ํ์ธํ๋ฉด ๋ฉ๋๋ค.
์ฐธ๊ณ ์๋ฃ์ ์คํ ์กฐ๊ฑด
๊ณต์ ๋ฌธ์ ํ์ธ์ผ: 2026๋ 10์ 1์ผ. ํ์ผ ํฌ๊ธฐ ์คํ์ Linux ํ๊ฒฝ์ Pillow 12.3.0์์ ์ง์ ๋ง๋ ์ ์ ๋ํ ํ ์ฅ์ผ๋ก ์ํํ์ต๋๋ค. ์๋ณธ๊ณผ ์ถ์๋ณธ์ ํด์๋ยท์ธ์ฝ๋ฉ ์กฐ๊ฑด์ ๋ณธ๋ฌธ์ ๋ช ์ํ์ต๋๋ค. ๊ฒฐ๊ณผ๋ ํด๋น ์์ ์ ์ธก์ ๊ฐ์ด๋ฉฐ ์ผ๋ฐ์ ์ธ ์ ๊ฐ๋ฅ ์ด๋ ํน์ ์ฌ์ดํธ์ ์ฑ๋ฅ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
- MDN โ Using responsive images in HTML
- Chrome DevTools โ Inspect network activity
- MDN โ Image file type and format guide
- Pillow โ WebP image format options
- Pillow โ Image.thumbnail()
- web.dev โ Optimize Cumulative Layout Shift
- web.dev โ Browser-level image lazy loading
- Google ์ ๋์ผ์ค โ ์ฌ์ดํธ ํ์ด์ง ์ค๋น ์๋ด
- MDN โ The Image Embed element
๐ฌ ๋๊ธ 0๊ฐ