๐ SVG ํ์ฉ ์๋ฆฌ์ฆ ๋ชฉ๋ก ๋ณด๊ธฐ
SVG๋?
SVG๋ Scalable Vector Graphics์ ์ฝ์๋ค. ๋์ด๊ฑฐ๋ ์ค์ฌ๋ ๋ํธ๊ฐ ๋ณด์ด์ง ์๋ ์ด๋ฏธ์ง๋ฅผ ๋งํ๋ค. ๋นํธ๋งต(์ฆ, ํฝ์ )์ ์ ์ฅํ๋ ๊ฒ ์๋๋ผ ์ขํ๋ฅผ ์ ์ฅํด ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๋ค. ์ด๋ฐ Scalableํ ๊ฒ์ผ๋ก ๋ํ์ ์ธ ๊ฑด ํฐํธ๋ค(ํฐํธ๋ ๋ฌผ๋ก ๋นํธ๋งต ํฐํธ๊ฐ ์๊ธด ํ์ง๋ง).
์์ปจ๋, ๋๊ทธ๋ผ๋ฏธ๋ฅผ SVG๋ก ๊ทธ๋ฆฌ๋ ค๋ฉด ์๋์ฒ๋ผ ์ฐ๋ฉด ๋๋ค(์ค์ ์์ ์๋ ์ฝ๋๋ฅผ ์ง์ ์ธ ์ผ์ ๊ฑฐ์ ์๋ค).
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="42" cy="42" r="40" stroke="#34495E"
stroke-width="4" fill="#2ECC71"/>
</svg>
๋๊ทธ๋ผ๋ฏธ๋ฅผ ๋ํ๋ด๋ ํ๊ทธ๋ circle
์ด๊ณ cx
์ cy
๋ ์ค์ ์ ์ขํ๋ฅผ ์๋ฏธํ๋ค. stroke
๋ ์ธ๊ณฝ์ ์๊น, stroke-width
๋ ์ธ๊ณฝ์ ์ ๊ตต๊ธฐ, fill
์ ๋๊ทธ๋ผ๋ฏธ์ ์๊น์ ์๋ฏธํ๋ค. ์์ ๊ฐ์ ํ๊ทธ๋ฅผ ์ฐ๋ฉด ์๋์ ๊ฐ์ ๋ชจ์์ด ๋์จ๋ค. ์ธ๊ณฝ์ ์ด ์๋ ์๋ฉ๋๋์(#34495E) ์์ด๋ค. (์ขํ๋ฅผ ํ์ธํ ์ ์๊ฒ ์ธ๊ณฝ์ ์ ์ถ๊ฐ๋ก ์ณ ์คฌ๋ค.)
๋ฐ๋ก ํ์ผ๋ก ๋ฃ์ ํ์์์ด HTML์ฒ๋ผ ์ ์ด ์ฃผ๋ฉด ํํ๋๋ค. ํ๊ทธ์ ํด๋์ค์ ์์ด๋๋ฅผ ์ ๊ณ CSS์ js๋ก ์ ์ดํ ์ ์์ผ๋ ๋๋ฐ์ด๋ค. ๋ฌผ๋ก ํ๊ทธ๋ก ์ ์ดํด๋ ๋๋ค.
img
, object
, iframe
, embed
ํ๊ทธ๋ก ๋ฃ์ ์๋ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด CSS, js๋ก ์ ์ด๊ฐ ์ ๋๊ฑฐ๋, ์ข ๋ณต์กํด์ง๋ค. ์ฌํผ ๋์ค์ ์ค๋ช
ํ๋ค.
SVG๋ ๊ฝค ์ค๋ ์ ์ ๋์์ง๋ง, ๊ณ ํด์๋ ๋์คํ๋ ์ด๊ฐ ๋ฑ์ฅํ๋ฉด์ ๋๋์ด ํ์์ฑ์ด ์ปค์ง ๊ฒ ๊ฐ๋ค. ๋ ํฐ๋ ๋์คํ๋ ์ด์ฒ๋ผ ppi(pixel per inch, ์ธ์น๋น ํฝ์ ์)๊ฐ ํ๊ธฐ์ ์ผ๋ก ๋ง์์ง ๋์คํ๋ ์ด๊ฐ ๋์ค๋ฉด์, ์ด๋ฏธ์ง๊ฐ ๋ฟ์๊ฒ ๋ณด์ด๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒผ๋ค.
๋ฌผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋์ถฉ ๋ ๋ฐฐ ์ฌ์ด์ฆ๋ก ๋ฃ์ ๋ค width
์ height
๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ธ ์ฑ ํํํ๋ฉด ๋๊ธฐ๋ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์์ดํจ๋์ ๋งฅ๋ถ ํ๋ก์ ๋ ํฐ๋๋ ๋ ์ธ์น๋น ํฝ์
์๊ฐ ๋ค๋ฅด๋ค. ์๋๋ก์ด๋ํฐ๋ ppi๊ฐ ๋ ๋ค๋ฅด๋ค. ์์ฐ, ๊ฒฐ๊ตญ ๊ฐ์ฅ ๊ฐ๋จํ ํด๋ฒ์ ppi๊ฐ ๊ฐ์ฅ ๋์ ๊ธฐ๊ธฐ์ ๋ง์ถฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๋ ๊ฒ์ด๋ค. ์ผ๋ฐ ๋ชจ๋ํฐ์ ppi๊ฐ 72๋๊น, ํด๋น ๊ธฐ๊ธฐ์ ppi์ 72๋ฅผ ๋๋๋ฉด ์ค์ ์ด๋ฏธ์ง๋ฅผ ํํํ๋ ๊ฒ์ ๋ช ๋ฐฐ๋ก ํ๋ฉด ๋๋์ง ๋์จ๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋ฉด ๋น์ฅ ์ฉ๋์ด ๊ฑฑ์ ๋๋ค. ๋ ํฐ๋ ์์ดํฐ5์ ์ต์ ํ๋ ์ด๋ฏธ์ง๋ฅผ ์์ดํฐ3GS์์๋ ๋ค์ด๋ฐ์์ ์ฌ์ฉํ๋ ๊ฑด ๋์ญํญ ๋ญ๋น๋ค. ์ฌ์ง์ด ๊ธฐ๊ธฐ๊ฐ ์ด๋ฏธ์ง์ ์ฌ์ด์ฆ๋ฅผ ์ค์ฌ์ ๋ณด์ฌ ์ค์ผ ํ๋ฏ๋ก ์ฑ๋ฅ์๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์์ ์์ด๊ฒ ์ง๋ง ๋ฐฐํฐ๋ฆฌ๋ ๋ญ๋น๋ ๊ฒ์ด๋ค.
์ต๊ทผ์ ์ ํํ ํด๋ฒ – ์์ด์ฝ ํฐํธ
์ด ๋ฌธ์ ์ ๋์ํ๋ฉด์ ์ต๊ทผ์ ์ ํํ ํด๋ฒ์ ์์ด์ฝ ํฐํธ๋ค. GitHub ๊ฐ์ ๋ฐ๊ฐ ์์ด์ฝ ํฐํธ๋ฅผ ์ด๋ค(๊ธ์ ์์ฑํ๋ 2013๋ ์๋ GitHub๊ฐ ์์ด์ฝ ํฐํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ svg๋ฅผ ์ฌ์ฉํฉ๋๋ค โ 2023๋ , ์ํ์ฐ).
์์ด์ฝ ํฐํธ๋, ๊ฐ๋จํ ์ค๋ช ํ๋ฉด ์นํฐํธ๋ฅผ ์ด์ฉํด์ scalableํ ์์ด์ฝ์ ๋ณด์ฌ ์ฃผ๋ ๊ฒ์ด๋ค. SVG๋ผ๋ ํน์ ํฌ๋งท์ ์๋์ง๋ง ์ด๊ฒ๋ ๋ฒกํฐ ๊ทธ๋ํฝ์ ์ด์ฉํ ๋ฐฉ์์ด ๋๊ฒ ๋ค.
์์ด์ฝ ํฐํธ๋ ์ฌ์ฉํ๊ธฐ๋ ํธํ๋ค. ์์ปจ๋ ์๋์ฒ๋ผ ์ฌ์ฉํ๋ฉด ๋๋ค.
<span class="icon-font">t</span>
CSS์์ .icon-font
์ ์นํฐํธ ๊ธ๊ผด์ ๋งค๊ธฐ๋ฉด, t๋ t๊ฐ ์๋ ํธ์ํฐ ์์ด์ฝ์ด ๋๋ ๊ฑฐ๋ค. ๋ด ๋ธ๋ก๊ทธ์๋ ์ ๊น ์์ด์ฝ ํฐํธ๋ฅผ ์ ์ฉํ ์ ์ด ์์๋ค.
์ํ๋ ์์ด์ฝ์ผ๋ก ์นํฐํธ๋ฅผ ๋ง๋ค์ด์ ๋ค์ด๋ฐ์ ์ ์๊ฒ ํด์ฃผ๋ ์ฌ์ดํธ๋ ์๋ค. ์ด๊ฑธ ์ด์ฉํ๋ฉด ์์ฒญ ํธํ๊ฒ ์์ ํ ์ ์๋ค. (IcoMoon)
์์ด์ฝ ํฐํธ์ ํ๊ณ – ๊ธ๊ผด์ ๊ฐ์ ์ง์ ํ๋ฉด ๊นจ์ง๋ค
๊ทธ๋ฐ๋ฐ ์์ด์ฝ ํฐํธ์๋ ๋ฌธ์ ๊ฐ ์๋ค.
์ฒซ์งธ, ๋ธ๋ผ์ฐ์ ๊ธ๊ผด์ ๊ฐ์ ์ง์ ํ๊ณ ๋ณด๋ ์ฌ๋๋ค์๊ฒ ์์ด์ฝ์ด ๋ณด์ด์ง ์์ ์ ์๋ค๋ ๋ฌธ์ ๋ค.
์์ปจ๋ ์ปค์คํ ์คํ์ผ์ ์ฃผ์ ํ๋ ํ์ฅ์ ์ด์ฉํด์ ๋ชจ๋ ๊ธ๊ผด์ ๊ฐ์ ๋ก ํน์ ๊ธ๊ผด(์์ปจ๋ Noto Sans)๋ก ๋ง๋ค ์ ์๋๋ฐ ์ด๋ฌ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ํ์ฅ ์์ด ์ค์ ์์ ๊ธ๊ผด์ ๊ฐ์ ์ ์ฉํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
๊ฐ์ ์ ์ฉํ ๋ค ์์ด์ฝ ํฐํธ๋ฅผ ์ฌ์ฉํ ์ฌ์ดํธ์ ๋ค์ด๊ฐ ๋ณด๋ฉด ์์ด์ฝ์ด ๋ค ๋ ์๊ฐ๋ ๊ฑธ ๋ณผ ์ ์์ ๊ฑฐ๋ค.
๋์งธ, ์๋งจํฑํ ์ ๋ณด๋ผ๋ ์ธก๋ฉด์์๋ ์์ด์ฝ ํฐํธ๋ ์ ๋ณด๋ฅผ ๊ต๋ํ๋ค.
์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒ์ด ์ด๋ฏธ์ง๋ก ์ฌ์ฉ๋๋ ๊ฒ์ด๋ฏ๋ก ์๊ฐ์ ๊ฐ์ง ๋ชปํ ์น ํ์์๋ค(๊ฒ์ ์์ง, ์คํฌ๋ฆฐ ๋ฆฌ๋๋ฅผ ์ฌ์ฉํ๋ ์๊ฐ ์ฅ์ ์ธ)์๊ฒ ์ข์ง ๋ชปํ๋ค.
๋ฌผ๋ก W3์์ ์๋งจํฑํ๊ฒ ์ฌ์ฉํ ๋ฐฉ๋ฒ์ ๋ง๋ค์ด ๋๊ธด ํ๋ค. role
, aria-label
์์ฑ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
ํ์ง๋ง ๋ฒ๊ฑฐ๋กญ๋ค. ๋ฒ๊ฑฐ๋ก์ฐ๋ฉด ๋์น ๊ฐ๋ฅ์ฑ์ด ์๊ธด๋ค. ์ค์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ๊ฑฐ๋ก์ ์์ด ์๋งจํฑ์ ํ๋ณดํ ์ ์๋ค.
๋๊ฐ๋ฉฐ
SVG๊ฐ ๋ญ๊ณ , ์ ์ฌ์ฉํ๋์ง๋ฅผ ์์ ๋ดค๋ค. ๋ค์ ๊ธ์ ์ผ๋ฌ์คํธ๋ ์ดํฐ๋ฅผ ์ด์ฉํด์ SVG๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์์ ๋ณธ๋ค.
๋๊ธ ๋จ๊ธฐ๊ธฐ