XML이란? SVG 워크플로와 SVGView 모범 사례
SVG(Scalable Vector Graphics)를 다룬다면 이미 XML(Extensible Markup Language)을 다루고 있는 셈입니다. 이 글은 XML을 쉬운 언어로 설명하고, SVG의 안정성에 왜 중요한지 보여 주며, "렌더링은 된다" 수준에서 "안전하게 배포할 수 있다" 수준으로 끌어올리는 SVGView 워크플로를 정리합니다.
요약
- XML(Extensible Markup Language)은 구조화된 데이터를 위한 마크업 언어입니다.
- SVG는 XML 기반이므로 모든 SVG 파일은 XML 텍스트입니다.
- SVGView에서는 먼저 검증과 미리보기를 하고, 그다음 정리, 최적화, 최소화, export를 진행합니다.
3분 만에 보는 XML 기초
XML은 태그를 사용해 구조화된 데이터를 엄격하면서도 읽기 쉬운 형태로 표현합니다.
최소 예시는 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<message>
<title>Reminder</title>
<body>Update the icon library</body>
</message>
기억해야 할 핵심 규칙:
- 루트 요소는 하나만 있어야 합니다.
- 태그는 정확히 닫혀야 하고 중첩도 맞아야 합니다.
- 태그 이름은 대소문자를 구분합니다.
- 속성값은 따옴표로 감싸야 합니다.
- 특수문자(
&,<,>)는 이스케이프해야 합니다.
XML이 사용되는 곳
시스템이 엄격하고 이식 가능한 구조를 필요로 할 때 XML은 여전히 많이 쓰입니다.
- 서비스나 엔터프라이즈 시스템 간 데이터 교환
- 도구와 애플리케이션의 설정 파일
- 문서 및 그래픽 형식, 특히 SVG
디자인 시스템이나 프런트엔드 툴링에서도 XML은 여전히 기본 구성 요소입니다.
SVG에서 XML이 중요한 이유
SVG는 XML로 정의된 벡터 그래픽 형식입니다. 즉, SVG 파일은 검색 가능하고 diff도 가능한 일반 텍스트입니다.
간단한 예시는 다음과 같습니다.
<svg width="120" height="120" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg">
<circle cx="60" cy="60" r="40" fill="#22C55E" />
</svg>
XML이 잘못되면 SVG 렌더링은 예측하기 어려워집니다. 유효한 XML은 선택 사항이 아니라 올바른 SVG 출력의 기반입니다.
실무적인 SVGView 워크플로
운영 환경에서 일관된 SVG를 만들기 위해 SVGView에서는 다음 흐름을 권장합니다.
1) 가져오기와 미리보기
SVG Viewer에서 파일을 열고 다음을 확인합니다.
- 잘림이나 예상치 못한 clipping
- 정렬과 패딩
- 다양한 크기에서의 배율 동작
여기서 이미 이상하다면, 나중 최적화로는 해결되지 않습니다.
2) 안전을 위해 먼저 정리
SVG가 외부 소스나 사용자 입력에서 왔다면 편집이나 export 전에 SVG Sanitizer로 먼저 정리합니다.
3) 리뷰용 포맷 정리
팀 작업이라면 SVG Formatter로 파일을 읽기 쉽게 만들어 리뷰와 diff 품질을 높입니다.
4) 최적화와 최소화
SVG Optimizer로 불필요한 노드와 패스 잡음을 제거하고, 마지막에 SVG Minify로 크기를 줄입니다.
5) viewBox와 크기 수정
배율이나 잘림 문제가 보이면 SVG ViewBox Fixer로 뷰포트를 바로잡습니다.
6) 대상 형식으로 export
실제 사용처에 맞게 바로 export합니다.
- React 컴포넌트: SVG to React
- React Native: SVG to React Native
- 래스터 형식: SVG to PNG, SVG to WebP
XML + SVG 모범 사례 체크리스트
깨진 아이콘과 불안정한 렌더링을 줄이려면 아래를 팀 표준으로 삼는 것이 좋습니다.
- XML 유효성 유지: 루트 하나, 올바른 닫기, 일관된 대소문자
- 특수문자 이스케이프:
&,<,>는 반드시 이스케이프 - 최소화 전에 읽기 쉽게 유지: 리뷰 단계에서는 포맷 유지, 배포 직전 최소화
- 전후 비교 필수: 최적화 뒤 Viewer에서 항상 다시 확인
- 이름 일관성 유지: 안정적인 ID와 파일명으로 CSS 충돌 방지
- 워크플로 고정: import → sanitize → preview → optimize → minify → export
정리
XML은 SVG 아래에 있는 언어입니다. XML 규칙을 이해하면 SVG가 어디서 깨질 수 있는지도 이해하게 됩니다.
운영 자산이라면 "대충 괜찮아 보인다" 식의 흐름을 피해야 합니다. 검증 가능한 일관된 파이프라인을 두면 모든 SVG를 더 깔끔하고 안전하게 배포할 수 있습니다.
다음 단계
- SVG Viewer에서 검증하고 미리보기합니다.
- SVG Sanitizer로 외부 입력을 정리합니다.
- SVG Optimizer와 SVG Minify로 최적화합니다.