SVG

lim1313ยท2021๋…„ 12์›” 31์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
1/22

๐ŸŠ SVG

๐Ÿ“Ž SVG ์„ค๋ช… ์ฐธ๊ณ 

์›น์‚ฌ์ดํŠธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ”ํžˆ ์•Œ๋ ค์ง„ jpg, png ๋“ฑ์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผํ˜•์‹ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ svg๋ผ๋Š” ํ˜•์‹์ด ์กด์žฌํ•œ๋‹ค.

SVG๋Š” 2์ฐจ์› ๋ฒกํ„ฐ ๊ทธ๋ž˜ํ”ฝ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ XML ๊ธฐ๋ฐ˜์˜ ํŒŒ์ผํ˜•์‹์ด๋‹ค. ์ฆ‰, ๊ธฐ์กด ์ด๋ฏธ์ง€ ํ˜•์‹์€ ํ”ฝ์…€๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ–ˆ๋‹ค๋ฉด, svg๋Š” ๋ฒกํ„ฐ(์ˆ˜ํ•™์  ๊ณ„์‚ฐ)์„ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

๐Ÿ‰ SVG ์‚ฌ์šฉ๋ฐฉ๋ฒ•

1. img ํƒœ๊ทธ

<img src="nana.svg" />

2. background-image

.nana {
  width: 300px;
  height: 120px;
  outline: 2px solid red;
  background-image: url("./potion.svg");
}

3. HTML ์ธ๋ผ์ธ

<svg> ... </svg>
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋งˆ๋‹ค HTTP ์š”์ฒญ์„ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—” ์š”์ฒญ-์‘๋‹ต์˜ ํ•„์š”๊ฐ€ ์—†์–ด, ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ํŽ˜์ด์ง€ ๋กœ๋“œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์บ์‹ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋กœ๋“œ๋  ๋•Œ๋งˆ๋‹ค HTML๋‚ด SVG ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ฝ์–ด์•ผ ํ•œ๋‹ค.

์ ์€ SVG์˜ ๊ฒฝ์šฐ inline์œผ๋กœ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ, ์บ์‹ฑ์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ SVG๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด img ํƒœ๊ทธ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

4. object

<object type="image/svg+xml" data="./potion.svg" class="nana"></object>

๐Ÿ‰ SVG๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

1. ํŠน์ • ์‚ฌ์ด์ฆˆ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Œ.

SVG๋Š” ๋ฒกํ„ฐ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์‚ฌ์ด์ง•์ด ๋˜์–ด๋„ ์ „ํ˜€ ๊นจ์ง€์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ด์ฆˆ๋ณ„๋กœ ์•„์ด์ฝ˜์„ ์ผ์ผ์ด ์ƒ์„ฑํ•ด์„œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋„˜๊ฒจ์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค. SVG ํŒŒ์ผ ํ•˜๋‚˜๋ฉด ๋ชจ๋“  ํ•ด์ƒ๋„๋ฅผ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์ž‘์€ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ

๋น„ํŠธ๋งต ์ด๋ฏธ์ง€๋“ค(PNG, JPEG) ๊ฐ™์€ ๊ฒฝ์šฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์š” ์š”์†Œ๋Š” ๋ฐ”๋กœ โ€˜ํ•ด์ƒ๋„โ€™์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 5000x5000 ํ”ฝ์…€ ์ด๋ฏธ์ง€๋Š” ํ•ญ์ƒ 500x500๋ณด๋‹ค ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ๋‹ค.

๋ฐ˜๋ฉด, SVG ๊ทธ๋ž˜ํ”ฝ ๊ฐ™์€ ๊ฒฝ์šฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์š” ์š”์†Œ๋Š” ๋ฐ”๋กœ โ€˜๋ณต์žก๋„โ€™์ด๋‹ค. Path๊ฐ€ ๋น„๊ต์  ์ ์€ ๊ฐ„๋‹จํ•œ ์ด๋ฏธ์ง€๋Š” PNG, JPEG ๋ณด๋‹ค ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ์˜ ๋ณต์žก๋„(๋ ˆ์ด์–ด๊ฐ€ ๋งŽ๋‹ค๋“ ์ง€ ํŠน์ • ํšจ๊ณผ๊ฐ€ ๋งŽ๋‹ค๋“ ์ง€)์— ๋”ฐ๋ผ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง„๋‹ค.

๐Ÿ‰ ์ฐธ๊ณ  ์ž๋ฃŒ

๐Ÿ“Ž Which SVG technique performs best for way too many icons?
๐Ÿ“Ž Inline SVGโ€ฆ Cached
๐Ÿ“Ž Inline SVG vs SVG File Performance

profile
start coding

0๊ฐœ์˜ ๋Œ“๊ธ€