ZeroTool Workbench
SVG 최적화
브라우저에서 SVGO로 SVG를 압축. 플러그인 토글, 바이트 절감 비교, 결과 복사 또는 다운로드. 업로드도 가입도 불필요.
사용 방법
- SVG 마크업을 붙여넣거나, 「파일 업로드」 탭으로 전환해
.svg파일을 드롭합니다. - 필요한 플러그인을 토글합니다. 기본값은 SVGO의 preset-default에 맞춰져 있고, 주 토글 8개가 가장 자주 내리는 결정을 커버합니다.
- SVG 최적화를 클릭합니다. 최적화 전 / 후 바이트 수, 절감 비율, 실제 렌더링 결과를 함께 표시해 시각적 회귀를 즉시 발견할 수 있습니다.
- 결과 복사로 코드베이스에 바로 붙여넣거나, .svg 다운로드로 정리된 파일을 저장합니다.
제거되는 항목
SVGO는 에디터 메타데이터, 주석, 숨겨진 요소, 기본 속성 등 렌더링에 영향을 주지 않는 마크업을 제거하고, 경로 데이터를 다시 쓰고, 인접 경로를 통합하며, 색상 표기를 단축합니다. 일반적인 아이콘은 40–70% 줄어들고, 절감의 대부분은 convertPathData, mergePaths, cleanupNumericValues에서 나옵니다.
위험한 두 토글
viewBox 제거와 width/height 제거가 기본 비활성화된 데에는 이유가 있습니다. viewBox가 없는 SVG는 반응형 스케일이 불가능하고, width / height가 없는 SVG는 부모 요소의 렌더링 박스를 상속받습니다 — 다운로드용 아이콘에서는 거의 원하지 않는 결과입니다. 임베딩 컨텍스트를 완전히 제어할 때(예: 부모 <use>가 크기를 지정한 스프라이트 시트)에만 켜세요.
언제 최적화하나요
- 프로덕션 빌드:
vite-plugin-svgo같은 도구로 번들러에 SVGO를 통합하세요. 본 도구는 CLI를 띄우지 않고 결과를 빠르게 확인할 때 유용합니다. - 수작업 / 익스포트한 SVG: Figma, Illustrator, Sketch 모두 에디터 메타데이터와 미참조
id속성을 대량으로 남기고, SVGO는 이를 깨끗이 제거합니다. - HTML에 인라인된 SVG: 마크업이 직접 임베드되는 경우 1 KB마다 첫 페인트가 지연됩니다 — 작을수록 좋습니다.
설계상 단일 파일
본 도구는 한 번에 하나의 SVG만 최적화합니다. 배치 최적화, 사용자 정의 플러그인 작성, CI 통합은 SVGO 명령행 도구에 맡기세요 — npm install -g svgo 후 svgo input.svg -o output.svg로 디렉터리나 glob를 처리할 수 있습니다. 본 도구에서 토글 조합을 결정한 뒤, SVGO 공식 문서에서 대응하는 svgo.config.js 스니펫을 복사해 빌드에 적용하세요.
최적화 후 PNG로 변환하거나 React로 추출해야 한다면 SVG → PNG 변환기와 SVG → JSX를 이어서 사용하세요.
FAQ
SVGOMG와 무엇이 다른가요?
SVGO 코어 엔진은 동일합니다. ZeroTool 버전은 SVGO v4를 고정하고, 사용 빈도가 가장 높은 8개 플러그인을 주 토글로 노출하며, 영어 / 중국어 / 일본어 / 한국어 네이티브 UI를 제공합니다. SVGOMG는 영어 전용입니다.
SVG가 서버로 전송되나요?
전송되지 않습니다. SVGO는 JavaScript 모듈로 현재 탭에 로드되어, 붙여넣거나 업로드한 SVG를 로컬 메모리에서만 처리합니다. 입력 · 출력 · 플러그인 설정 모두 디바이스 안에 머무릅니다.
최적화 후 SVG가 깨져 보이는 이유는?
가장 흔한 원인은 「viewBox 제거」 토글입니다. viewBox가 없는 SVG는 반응형 스케일이 불가능합니다. 끄고 다시 최적화하세요. 「width/height 제거」도 고정 크기 아이콘에서 비슷한 부작용을 일으킵니다.
인라인 <style>과 CSS 클래스는 어떻게 처리되나요?
기본 설정에서 SVGO는 style을 요소 속성으로 인라인하고 압축합니다(inlineStyles + minifyStyles). 런타임 CSS 오버라이드용으로 클래스를 유지하려면 「모든 34개 플러그인 표시」 패널에서 두 플러그인을 비활성화하세요.
<script>가 포함된 SVG도 최적화할 수 있나요?
가능합니다. SVGO는 script 내용을 변경하지 않고 주변 주석 제거와 공백 정리만 수행합니다. <use href="sprite.svg#id">와 같은 외부 참조도 보존됩니다.