Skip to content
Technical

SVG 포맷이란? 2026년 완전 기술 가이드

SVG(Scalable Vector Graphics) 포맷에 대해 모든 것을 배우세요: 작동 원리, 사용 시점, 그리고 왜 모던 웹 디자인에 필수적인지.

Robin Monteiro2025년 12월 23일2026년 10월 10일4 min
Use this article with an AI assistant:
.md
SVG 포맷이란? 2026년 완전 기술 가이드
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • SVG는 품질 손실 없이 무한히 확장되는 XML 기반, W3C 표준 벡터 포맷
  • 인라인 SVG는 완전한 CSS/JS 제어를 제공; <img> 태그는 캐싱 가능 — 사용 사례에 따라 선택
  • 접근성이 내장됨: <title>, <desc>, role, aria-label이 SVG를 스크린 리더 친화적으로 만듦
  • 애니메이션은 4가지 접근법을 포함: SMIL, CSS, JavaScript, Web Animations API
  • 신뢰할 수 없는 소스의 SVG는 항상 sanitize — 포맷이 스크립트를 포함할 수 있음
  • VectoSolve의 SVG 최적화 도구로 메타데이터 제거 및 경로 압축 최적화
좌표 그리드 위의 확장 가능한 벡터 도형을 보여주는 SVG 포맷 개요
SVG: 웹의 네이티브, 해상도 독립적 이미지 포맷

SVG란 정말 무엇인가?

SVG(Scalable Vector Graphics)는 단순한 이미지 포맷이 아닙니다. 수학적 좌표, 기하학적 프리미티브, 스타일 선언을 사용하여 2차원 그래픽을 설명하는 완전한 XML 어휘입니다. HTML과 같은 수준에 존재합니다: 텍스트 기반, 사람이 읽을 수 있고, DOM 통합, CSS로 스타일링 가능.

W3C는 SVG를 "XML로 2차원 그래픽을 설명하기 위한 언어"로 정의합니다. XML이기 때문에 모든 SVG는 텍스트 편집기에서 열고, JavaScript로 조작하고, 스키마에 대해 검증할 수 있는 구조화된 문서입니다. 다른 주류 이미지 포맷은 이것을 제공하지 않습니다.

"

SVG는 웹의 네이티브 이미지 포맷입니다. 웹에서 살기만 하는 것이 아니라 — 웹 그 자체입니다.

— Chris Coyier

SVG 구조: XML 구조와 viewBox

모든 SVG는 루트 <svg> 요소로 시작합니다. 속성을 이해하는 것이 포맷을 마스터하는 열쇠입니다.

xml
<svg xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 200 100"
     width="400" height="200">
  <rect x="10" y="10" width="180" height="80" rx="8"
        fill="#0f172a" stroke="#38bdf8" stroke-width="2"/>
  <text x="100" y="58" text-anchor="middle"
        fill="#f8fafc" font-size="18">안녕, SVG!</text>
</svg>
  • xmlns는 SVG 네임스페이스를 선언 — 독립적인 .svg 파일에서는 필수, HTML5에 인라인할 때는 선택적
  • viewBox="0 0 200 100"은 내부 좌표계를 정의: 원점 (0,0), 너비 200단위, 높이 100
  • width/height는 렌더링 크기를 설정; 브라우저가 viewBox를 이 뷰포트에 매핑

viewBox는 좌표 공간을 픽셀 크기에서 분리합니다. viewBox="0 0 24 24"인 아이콘은 16px이든 512px이든 동일하게 렌더링됩니다 — 브라우저가 좌표계를 스케일링합니다. 이것이 SVG가 무한히 확장되는 이유입니다.

SVG는 Y축이 아래를 향하는 좌표계(CSS 및 Canvas와 동일)를 사용하며, 원점은 왼쪽 상단입니다.

SVG는 순수 XML입니다. SVG 파일을 아무 텍스트 편집기로 생성, 편집, 디버그할 수 있습니다 — VS Code, Vim, 메모장까지. 이것은 PNG나 JPG 같은 바이너리 포맷과 근본적으로 다릅니다. 비주얼 인터페이스가 필요하신가요? VectoSolve의 SVG 에디터로 실시간 코드 출력을 이용하세요.


역사: W3C, 브라우저 전쟁, 그리고 현대적 채택

  • 1998년: W3C가 Adobe의 PGML과 Microsoft의 VML 제안을 통합하여 SVG 워킹 그룹 설립
  • 2001년: SVG 1.0이 W3C 권고안이 됨
  • 2003년: SVG 1.1이 사양을 개선하고 모듈화
  • 2011년: SVG 1.1 Second Edition — 대부분의 브라우저가 완전히 구현하는 버전
  • 2018년: SVG 2.0이 Candidate Recommendation에 도달, CSS 및 HTML과 정렬

IE 사가

IE 8 이하는 SVG 지원이 전무했습니다. IE 9(2011년)는 기본적인 렌더링을 제공했지만 격차가 있었습니다: SMIL 애니메이션 없음, 제한된 필터, viewBox 문제. 진정한 전환점은 2022년 Microsoft가 IE를 Edge(Chromium)로 대체했을 때 왔습니다. 오늘날 SVG는 98.5%의 글로벌 브라우저 지원을 보유하고 있습니다.


A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

SVG 요소 레퍼런스

요소목적일반적인 사용
<path>그리기 명령(M, L, C, Z)으로 임의의 도형아이콘, 로고, 아웃라인
<rect>선택적 둥근 모서리(rx/ry) 사각형버튼, 카드, 배경
<circle>중심점과 반지름으로 원점, 아바타, 파이 차트
<polygon>좌표점에서 닫힌 도형별, 육각형, 화살표
<text>렌더링, 선택, 검색 가능한 텍스트레이블, 워터마크
<g>집합적 변환/스타일을 위한 그룹 요소레이어 제어, 그룹화
<defs>재사용 가능한 정의(직접 렌더링되지 않음)그래디언트, 패턴, 클립
<use>다른 곳에서 정의된 요소를 복제아이콘 재사용, 스프라이트
<symbol><defs> 안의 <g>와 비슷하지만 자체 viewBox를 가짐아이콘 라이브러리, 스프라이트 시트
SVG 요소: path, rect, circle, polygon, text가 캔버스에 렌더링됨
거의 모든 프로젝트에서 사용할 핵심 SVG 요소

인라인 SVG vs img vs CSS 배경 vs object

방법CSS 스타일링JS 접근캐싱접근성최적 용도
인라인 <svg>완전전체 DOM불가우수아이콘, 인터랙티브 그래픽
<img> 태그없음없음가능좋음 (alt)정적 로고, 일러스트레이션
CSS background없음없음가능불량장식적 패턴만
<object>내부만contentDocument 통해가능보통레거시 인터랙티브 SVG

호버 상태, 애니메이션, JS 인터랙션이 필요할 때 인라인을 선택. 캐싱하려는 정적 자산에는 <img>를 선택. CSS 배경은 장식에만 사용. <object> 접근법은 2026년에 최선의 선택이 되는 경우가 드뭅니다.


접근성: role, aria-label, title, desc

SVG는 사양에 일급 접근성이 내장되어 있습니다:

xml
<svg role="img" aria-labelledby="logoTitle logoDesc"
     viewBox="0 0 120 40">
  <title id="logoTitle">VectoSolve 로고</title>
  <desc id="logoDesc">파란색 그래디언트의 기하학적 V와 S 모노그램</desc>
  <path d="M10 35L30 5L50 35Z" fill="url(#grad)"/>
</svg>
  • role="img" — 보조 기술에 이것이 이미지임을 알림
  • <title> — 접근 가능한 이름(<img>의 alt에 해당)
  • <desc> — 복잡한 그래픽을 위한 더 긴 설명
  • aria-labelledby — <title>과 <desc> 요소에 링크
  • aria-hidden="true" — 순수 장식적 SVG에 스크린 리더로부터 숨기기 위해 사용

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

애니메이션: SMIL, CSS, JavaScript, Web Animations API

SMIL (SVG의 네이티브 애니메이션)

xml
<circle cx="50" cy="50" r="20" fill="#ef4444">
  <animate attributeName="r" values="20;35;20" dur="1.5s" repeatCount="indefinite"/>
</circle>

CSS 애니메이션

SVG 요소에 @keyframes, transition, transform을 적용 — 이미 알고 있는 CSS와 동일합니다.

JavaScript 라이브러리

GSAP, Anime.js, Snap.svg가 복잡한 경로 모핑과 순차적 애니메이션을 위한 타임라인 기반 제어를 제공합니다.

Web Animations API

JS 파워와 CSS 성능을 결합한 현대적 표준 기반 접근법:

javascript
element.animate(
  [{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }],
  { duration: 2000, iterations: Infinity }
);

Pro Tip: 아이콘 시스템에 SVG 스프라이트를 사용하세요. 단일 숨겨진 SVG에서 아이콘을 <symbol> 요소로 정의하고, 각각을 <use href="#icon-name"/>으로 참조합니다. 하나의 HTTP 요청, 완전한 CSS 제어, 브라우저 캐싱. 아이콘 폰트의 현대적 대체품 — 더 작고, 더 접근 가능하고, 모든 크기에서 더 선명합니다.


Warning: SVG는 JavaScript를 실행할 수 있습니다. SVG가 <script> 요소, 이벤트 핸들러(onload, onclick), 외부 참조를 지원하기 때문에 신뢰할 수 없는 SVG는 XSS 공격의 벡터가 될 수 있습니다.

자신을 보호하세요: 인라인 삽입 전 DOMPurify로 sanitize, 사용자 업로드 SVG에는 <img> 태그 선호(브라우저가 <img> 컨텍스트에서 스크립트 차단), 엄격한 CSP 설정, 업로드 처리 중 <script>, <foreignObject>, 이벤트 핸들러 제거.


성능 최적화

디자인 도구에서 나오는 SVG는 비대합니다 — 편집기 메타데이터, 중복 그룹, 과도한 소수 정밀도.

전후 파일 크기 감소를 보여주는 SVG 최적화 워크플로우
일반적인 최적화 패스는 파일 크기를 40~70% 줄입니다
최적화 단계일반적인 절감
메타데이터 제거10-25%
소수 정밀도 감소15-30%
그룹 병합, ID 정리5-15%
GZIP/Brotli(서버 측)60-75%
합산(압축 전)40-60%

핵심 기법: 편집기 메타데이터 제거, 좌표 정밀도를 소수 1~2자리로 축소, 중첩된 <g> 요소 평탄화, 고정 치수 대신 viewBox 사용, GZIP/Brotli 활성화(SVG는 매우 잘 압축됨), VectoSolve 최적화 도구로 자동화.


SVG 시작하기

VectoSolve는 완전한 SVG 워크플로우를 위한 AI 도구를 제공합니다:

  • 래스터를 벡터로 변환 — PNG/JPG 업로드, 깨끗하게 최적화된 SVG 획득
  • 시각적으로 편집 — SVG 에디터로 경로와 색상 조정
  • 최적화 — 최적화 도구로 비대함 제거

SVG는 웹의 네이티브 그래픽 언어입니다 — 개방적, 표준화, 접근 가능, 애니메이션 가능, 성능 우수. 2026년에 SVG 능숙도는 선택이 아닙니다. 기초입니다.


SVG 기능브라우저 지원사용 사례
CSS/JS 제어의 인라인 SVG모든 모던 브라우저 (98%+)인터랙티브 아이콘, 애니메이션, 테마
<img> 태그로 임베딩유니버설정적 로고, 캐싱된 일러스트레이션
SMIL 애니메이션IE 제외 전부 (95%+)JavaScript 없는 선언적 SVG 애니메이션
SVG 필터 (feGaussianBlur 등)모든 모던 브라우저 (97%+)블러, 그림자, 색상 조작
접근성 (title, desc, aria)스크린 리더 + 모든 브라우저시각 장애인을 위한 인클루시브 디자인

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

참고 자료

  • MDN Web Docs: SVG — 모든 SVG 요소, 속성, API에 대한 종합적인 레퍼런스
  • W3C SVG 2 사양 — SVG 구문, 렌더링, 인터랙티비티를 정의하는 W3C 공식 표준
  • CSS-Tricks: Using SVG — 웹에서 SVG 임베딩, 스타일링, 최적화를 위한 실용적 가이드
  • web.dev Performance — 이미지 최적화와 Core Web Vitals에 대한 Google 리소스
  • Smashing Magazine — SVG 접근성, 애니메이션, 모범 사례에 대한 심층 기사
Tags:
SVG
벡터 그래픽
웹 개발
파일 형식
기술 가이드
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.