우리 SVG 포맷터의 주요 기능
- **비티파이 모드** - 스마트 들여쓰기, 줄 바꿈 및 속성 정렬
- **미니파이 모드** - 공백, 주석 및 불필요한 메타데이터 제거
- 내부적으로 Prettier 스타일 형식화와 SVGO 스타일 최적화 사용
- 구성 가능한 들여쓰기 스타일 (공백 또는 탭) 및 들여쓰기 크기
- 선택적 줄 바꿈 컬럼으로 긴 경로와 속성을 깔끔하게 유지
- 일관된 줄 끝 스타일(LF/CRLF)로 OS 간 깔끔한 diff 유지
- 최대 5MB 크기의 `.svg` 파일 드래그 앤 드롭 또는 인라인 SVG 마크업 붙여넣기
- 100% 클라이언트 측 처리 — 아트워크가 브라우저를 벗어나지 않음
- 서식 지정된(`.formatted.svg`) 또는 최소화된(`.min.svg`) 출력을 한 번의 클릭으로 복사 또는 다운로드
- 노트북, 데스크톱, 태블릿에서 원활하게 작동하는 반응형 UI
🔧 SVG 서식 지정 또는 최소화 방법: 빠른 가이드 for svg-formatter
1. SVG 붙여넣기 또는 업로드
📥 `.svg` 파일을 드래그 앤 드롭하거나 원시 SVG 마크업을 편집기에 붙여넣으세요. 도구가 표준 `image/svg+xml` 콘텐츠를 자동으로 감지합니다.
2. 서식 지정 또는 최소화 선택
✨ 사람이 읽기 쉬운 마크업을 위해 **서식 지정**(리뷰 및 버전 관리에 적합) 또는 가능한 가장 작은 파일 크기를 위한 **최소화**를 선택하세요.
3. 서식 지정 옵션 조정
⚙️ **들여쓰기 스타일**(공백 또는 탭), **들여쓰기 크기** 및 선택적 **줄 바꿈/줄 길이**를 조정하세요. 이들은 기본 서식 지정기 설정에 직접 매핑됩니다.
4. 미리보기 및 내보내기
👀 최적화된 SVG 코드를 검사하고 프로젝트에서 빠르게 테스트한 후 클립보드에 복사하거나 새 `.svg` 파일로 결과를 다운로드하세요.
기술적 세부사항
예쁘게 만들기 엔진(서식 모드)
서식 모드는 SVG XML 마크업에 맞춰진 Prettier 스타일 엔진을 사용합니다. 가독성과 안정적이고 예측 가능한 diff에 중점을 둡니다.
| 항목 | 동작 | 참고 |
|---|---|---|
| 들여쓰기 스타일 | 공백 또는 탭 | **들여쓰기 스타일**을 통해 구성 가능(`indentStyle`에 매핑). |
| 들여쓰기 크기 | 1–8 공백 | 공백 사용 시 중첩 너비 제어(`indentSize`에 매핑). |
| 줄 바꿈/줄 길이 | 0–120 열 | `0`은 줄 바꿈 비활성화, 그렇지 않으면 긴 줄이 선택된 열 주변으로 줄 바꿈됨(`wrapLineLength`에 매핑). |
| 줄 끝 | LF(`\n`) 또는 CRLF(`\r\n`) | OS 간 줄 끝 일관성 유지(`endOfLine`에 매핑). |
| 출력 언어 | XML 스타일 SVG | 안전한 임베딩을 위해 SVG 호환 XML 구조를 유지합니다. |
최소화 파이프라인 (최소화 모드)
최소화 모드는 시각적 출력을 유지하면서 크기 감소에 중점을 둔 SVGO 기반 파이프라인을 사용합니다.
| 단계 | 설명 | 영향 |
|---|---|---|
| 주석 제거 | 렌더링에 영향을 주지 않는 `<!-- ... -->` 주석 노드를 제거합니다. | 더 작은 파일, 더 깔끔한 diff. |
| 불필요한 공백 제거 | 불필요한 공백, 탭 및 줄 바꿈을 축소합니다. | 장황한 편집기 내보내기 SVG에 큰 효과. |
| 메타데이터 정리 | 안전한 경우 렌더링되지 않는 메타데이터 노드를 선택적으로 제거합니다. | 공개 프로덕션 에셋에 적합. |
| 속성 정규화 | 속성을 안정적인 방식으로 단순화하고 재정렬합니다. | 더 컴팩트한 출력, 더 나은 캐시 가능성. |
인코딩 및 호환성
출력은 현대 브라우저 및 도구와 호환되는 UTF-8 SVG이며 SVG 2 사양에 부합합니다.
성능 및 제한 (일반 데스크톱 브라우저)
| 파일 유형 | 입력 크기 | 정리 시간 | 최소화 시간 | 일반 크기 감소율 |
|---|---|---|---|---|
| 아이콘 | 5 KB | ⚡ < 15 ms | ⚡ < 20 ms | ≈ 25–40% |
| 일러스트레이션 | 100 KB | ⚡ < 60 ms | ⚡ < 90 ms | ≈ 40–55% |
| 히어로 그래픽 | 500 KB | ⏱️ < 300 ms | ⏱️ < 450 ms | ≈ 50–60% |
파워 유저를 위한 CLI 대안
터미널 워크플로우나 CI 통합을 선호하시나요? Prettier와 SVGO를 결합하여 이 도구와 유사한 동작을 구현하세요:
리눅스 / 🍎 macOS
Prettier로 SVG 예쁘게 만들기
npx prettier --parser xml --print-width 80 --tab-width 2 --write input.svgSVG 마크업에 일관된 들여쓰기와 줄 바꿈을 적용합니다.
SVGO로 SVG 최소화하기
npx svgo input.svg -o input.min.svg주석, 메타데이터 및 불필요한 공백을 제거하여 파일 크기를 줄입니다.
윈도우 (PowerShell 또는 CMD)
xmlstarlet을 사용하여 SVG 예쁘게 출력하기 (WSL 또는 네이티브)
xmlstarlet fo --indent-spaces 2 input.svg > pretty.svg2칸 들여쓰기로 SVG/XML을 포맷합니다.
SVGO로 SVG 최소화하기 (전역 설치 없음)
npx svgo input.svg -o min.svg일회성 최적화를 위해 `npx`를 통해 SVGO를 직접 실행합니다.
실용적인 적용 사례
웹 성능 & 프론트엔드 번들
- 디자인 시스템, 아이콘 세트 및 스프라이트 시트에서 SVG 페이로드 줄이기
- HTML/CSS에 최소화된 SVG를 인라인으로 삽입하여 추가 HTTP 요청 절약
- 랜딩 페이지의 히어로 일러스트레이션을 축소하여 Core Web Vitals 개선
<img src="/assets/hero.min.svg" alt="최적화된 히어로 그래픽" />.icon-check { background-image: url('data:image/svg+xml;utf8,<svg ...>'); }디자인 인계 및 버전 관리
- 코드 리뷰 전에 내보낸 SVG를 예쁘게 만들어 diff를 읽기 쉽게 하기
- 협업을 위한 `.formatted.svg`와 프로덕션을 위한 `.min.svg` 유지하기
- 디자인 시스템 전체에 걸쳐 일관된 들여쓰기와 속성 순서 적용
모바일, 이메일 및 하이브리드 앱
- HTML 이메일의 인라인 SVG를 최소화하여 가벼운 캠페인 만들기
- 많은 아이콘을 제공할 때 React Native / Capacitor / Ionic에서 앱 번들 크기 줄이기
- 느리거나 제한된 연결을 사용하는 사용자의 대역폭을 절약하세요.
❓ Frequently Asked Questions
❓SVG 포맷팅이란 무엇인가요?
📏최소화 작업이 SVG의 외관을 변경하나요?
🔒제 SVG가 서버에 업로드되나요?
🚀최소화로 얼마나 많은 크기를 절약할 수 있나요?
⚠️`<metadata>`나 주석을 제거하면 워크플로우가 깨질 수 있나요?
Pro Tips
리포지토리에 최소화되지 않은 `icon.formatted.svg`를 유지하여 깔끔한 diff를 확인하고, 빌드 단계의 일부로 `icon.min.svg`를 생성하세요.
최소화하기 전에 항상 의미 있는 `<title>` 및 `<desc>` 요소를 포함하여 스크린 리더가 SVG에 접근할 수 있도록 하세요.
SVG 최소화와 HTTP 압축(Gzip/Brotli)을 결합하여 무거운 일러스트레이션과 차트에서 더 많은 바이트를 압축하세요.
아이콘 세트의 경우 스프라이트 전략을 고려하세요: 한 번 최소화한 후 SVG 코드를 모든 곳에 복제하는 대신 `<use>`를 통해 아이콘을 참조하세요.
Additional Resources
Other Tools
- CSS 정리 도구
- HTML 정리 도구
- 자바스크립트 정리 도구
- PHP 정리 도구
- 색상 선택기
- 스프라이트 추출기
- Base64 디코더
- Base64 인코더
- C# 포맷터
- CSV 포맷터
- Dockerfile Formatter
- Elm 포맷터
- ENV 포맷터
- Go 포맷터
- GraphQL 포맷터
- HCL 포맷터
- INI 포맷터
- JSON 포맷터
- LaTeX 포맷터
- 마크다운 포맷터
- Objective-C 포맷터
- Php Formatter
- 프로토콜 버퍼 포맷터
- Python 포맷터
- Ruby 포맷터
- Rust 포맷터
- Scala 포맷터
- 셸 스크립트 포맷터
- SQL 포맷터
- Swift 포맷터
- TOML 포맷터
- Typescript Formatter
- XML 포맷터
- YAML 포맷터
- Yarn 포맷터
- CSS 압축기
- Html Minifier
- Javascript Minifier
- JSON 압축기
- XML 최소화 도구
- HTTP 헤더 뷰어
- PDF 텍스트 변환
- 정규식 테스터
- 검색 순위 확인기
- Whois 조회