πŸ–ΌοΈSVG to Base64 λ³€ν™˜κΈ°

SVG μ½”λ“œλ₯Ό μž…λ ₯창에 λΆ™μ—¬λ„£μœΌλ©΄ CSS와 HTMLμ—μ„œ μ¦‰μ‹œ μ‚¬μš© κ°€λŠ₯ν•œ Data URI μ½”λ“œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

λ³€ν™˜λœ Data URI (Base64)

μ‚¬μš© μ˜ˆμ‹œ (Usage)

κ΅¬λΆ„μ μš© 방법
CSS μ „μš©background-image: url("data:image/svg+xml;base64,...");
HTML μ „μš©<img src="data:image/svg+xml;base64,..." />

μ›Ή μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μœ„ν•œ ν•„μˆ˜ 단계: SVG 인라이닝

μ›Ήμ‚¬μ΄νŠΈμ˜ λ‘œλ”© 속도λ₯Ό κ²°μ •ν•˜λŠ” 핡심 μš”μ†Œ 쀑 ν•˜λ‚˜λŠ” λΈŒλΌμš°μ €κ°€ μ„œλ²„μ— λ³΄λ‚΄λŠ” HTTP μš”μ²­(Request)의 νšŸμˆ˜μž…λ‹ˆλ‹€. μ•„μ΄μ½˜μ΄λ‚˜ κ°„λ‹¨ν•œ κ·Έλž˜ν”½μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μˆ˜μ‹­ 개의 μž‘μ€ SVG νŒŒμΌμ„ κ°œλ³„μ μœΌλ‘œ λΆˆλŸ¬μ˜€λŠ” 것은 λΈŒλΌμš°μ €μ—κ²Œ 큰 뢀담이 λ©λ‹ˆλ‹€. μ΄λ•Œ κ°€μž₯ 효과적인 λŒ€μ•ˆμ΄ λ°”λ‘œ **SVG to Base64 λ³€ν™˜**μž…λ‹ˆλ‹€. SVG μ½”λ“œλ₯Ό ν…μŠ€νŠΈ 기반의 데이터 μ£Όμ†Œ(Data URI)둜 λ³€ν™˜ν•˜μ—¬ CSSλ‚˜ HTML μ½”λ“œ 내뢀에 직접 ν¬ν•¨μ‹œν‚€λ©΄, 좔가적인 파일 μš”μ²­ 없이 μ¦‰κ°μ μœΌλ‘œ 이미지λ₯Ό λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ³Έ λ„κ΅¬λŠ” μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 순수 SVG μ½”λ“œλ₯Ό κ°μ§€ν•˜μ—¬ λΈŒλΌμš°μ € μΉœν™”μ μΈ Base64 포맷으둜 μ‹€μ‹œκ°„ μΈμ½”λ”©ν•΄μ€λ‹ˆλ‹€. λ‹¨μˆœνžˆ `btoa` ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것을 λ„˜μ–΄, XML λ„€μž„μŠ€νŽ˜μ΄μŠ€(`xmlns`) λˆ„λ½ μ—¬λΆ€λ₯Ό ν™•μΈν•˜κ³  κ°€μž₯ μ΅œμ ν™”λœ ν˜•νƒœμ˜ 결과물을 μ œκ³΅ν•©λ‹ˆλ‹€. 특히 닀크 λͺ¨λ“œμ™€ 라이트 λͺ¨λ“œμ— 따라 μ•„μ΄μ½˜ 색상을 λ™μ μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•˜κ±°λ‚˜, μ™ΈλΆ€ λ¦¬μ†ŒμŠ€ λ‘œλ“œκ°€ μ°¨λ‹¨λœ 이메일 ν…œν”Œλ¦Ώ μ œμž‘ μ‹œ 이 방식은 κ°•λ ₯ν•œ νž˜μ„ λ°œνœ˜ν•©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ λͺ¨λ“  μƒν™©μ—μ„œ Base64 λ³€ν™˜μ΄ 정닡은 μ•„λ‹™λ‹ˆλ‹€. ν…μŠ€νŠΈλ‘œ μΈμ½”λ”©λœ λ°μ΄ν„°λŠ” 원본 λ°”μ΄λ„ˆλ¦¬ νŒŒμΌλ³΄λ‹€ μ•½ 33% 정도 μš©λŸ‰μ΄ μ»€μ§€λŠ” νŠΉμ„±μ΄ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 수백 KBκ°€ λ„˜λŠ” λ³΅μž‘ν•œ μΌλŸ¬μŠ€νŠΈλ ˆμ΄μ…˜λ³΄λ‹€λŠ” 10KB 미만의 λ‹¨μˆœν•œ μ•„μ΄μ½˜, 둜고, μž₯μ‹μš© κ·Έλž˜ν”½μ— ν™œμš©ν•  λ•Œ 졜적의 μ„±λŠ₯(LCP κ°œμ„ )을 κΈ°λŒ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‹¬ν”Œμš°λ”” SVG λ³€ν™˜κΈ°λ₯Ό 톡해 λΆˆν•„μš”ν•œ λ„€νŠΈμ›Œν¬ 지연을 쀄이고, μ‚¬μš©μžμ—κ²Œ 더 λΉ λ₯Έ μ›Ή κ²½ν—˜μ„ 선사해 λ³΄μ„Έμš”.

자주 λ¬»λŠ” 질문 (FAQ)

Q: XML μ„ μ–Έ()이 ν¬ν•¨λ˜μ–΄μ•Ό ν•˜λ‚˜μš”?

A: ν¬ν•¨λ˜μ–΄ μžˆμ–΄λ„ μƒκ΄€μ—†μ§€λ§Œ, μ‹€μ œ Data URI둜 μ‚¬μš©λ  λ•ŒλŠ” μƒλž΅ν•΄λ„ λ¬΄λ°©ν•©λ‹ˆλ‹€. λ³Έ λ„κ΅¬λŠ” μ–΄λŠ ν˜•μ‹μ΄λ‚˜ μœ μ—°ν•˜κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

Q: λ³€ν™˜λœ μ½”λ“œκ°€ λ„ˆλ¬΄ κΈΈμ–΄μš”.

A: SVG 파일 내뢀에 λΆˆν•„μš”ν•œ 메타데이터(에디터 정보 λ“±)κ°€ ν¬ν•¨λ˜μ–΄ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. SVGO 같은 λ„κ΅¬λ‘œ λ¨Όμ € μ΅œμ ν™”ν•œ ν›„ λ³€ν™˜ν•˜μ‹œλŠ” 것을 μΆ”μ²œν•©λ‹ˆλ‹€.

Q: λͺ¨λ°”일 μ•±μ—μ„œλ„ μ‚¬μš© κ°€λŠ₯ν•œκ°€μš”?

A: λ„€, μ›Ήλ·°(WebView)λ₯Ό μ‚¬μš©ν•˜λŠ” ν•˜μ΄λΈŒλ¦¬λ“œ μ•±μ΄λ‚˜ λ¦¬μ•‘νŠΈ λ„€μ΄ν‹°λΈŒ λ“±μ—μ„œλ„ 이미지 μ†ŒμŠ€λ‘œ Base64 μ£Όμ†Œλ₯Ό λ™μΌν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.