MEASURED CASE STUDY

60,114개 path인데
왜 곡선은 거칠었을까

SVG 확장자와 많은 path 수는 깨끗한 곡선을 보장하지 않습니다. 실제 자동 추적 파일의 구조를 세어 보고, 픽셀에서 시작한 계단 모양이 어떻게 벡터 좌표로 굳는지, 자동 정리가 무엇을 개선하고 무엇을 잃는지 기록했습니다.

분석 작성 2026-07-19실험 파일 생성 2026-06-28전후 렌더 포함
이 페이지의 범위

아래 정리본은 저장소의 별도 분석·재구성 실험 결과입니다. 현재 DrowPack 웹 도구가 모든 업로드에 동일한 60,114→28 path 정리를 자동 적용하거나 같은 시각 결과를 보장한다는 뜻이 아닙니다. 자동 추적의 구조와 한계를 보여주는 사례로 공개합니다.

문제: SVG인데 확대하면 외곽이 흔들렸다

분석 대상 artwork_vector.svg에는 PNG, JPEG, WebP를 담는 `` 요소가 없었습니다. 필터, 마스크, 클립 path도 없었습니다. 즉 래스터 이미지를 SVG 안에 넣은 파일이 아니라 실제 path 좌표만 가진 SVG였습니다. 그런데 확대하면 바깥 원과 머리카락, 작은 장식 주변에 픽셀 계단을 따라간 듯한 요철과 조각이 보였습니다.

원인은 “가짜 SVG”가 아니라 래스터에서 유래한 기하학이었습니다. 추적기는 안티앨리어싱된 가장자리의 여러 중간색을 서로 다른 영역으로 읽고, 픽셀 경계를 촘촘한 직선·곡선 좌표로 기록했습니다. 벡터가 된 뒤에도 그 좌표 자체가 거칠면 확대할수록 거친 모양이 더 선명하게 드러납니다.

원본에서 직접 센 값

10.63MB원본 SVG 파일 크기
60,114path 요소 수
53,039아주 작은 추적 path
523,692반 픽셀 좌표 수

60,114개 중 53,039개가 작은 추적 조각이었고, 그중 어두운 외곽·노이즈 조각으로 볼 수 있는 작은 dark path가 20,118개였습니다. 색상 띠는 28개였지만 각 띠 안에 작은 조각이 매우 많이 분산되어 있었습니다. 반 픽셀 좌표가 523,692개라는 점도 원본 픽셀 격자를 촘촘히 따라간 흔적과 일치했습니다.

파일크기path 요소포함 래스터의미
artwork_vector.svg10.63MB60,1140자동 추적 원본
clean_redraw.svg1.26MB280세부를 더 남긴 자동 정리
clean_web.svg666.5KB280웹 표시용 강한 단순화
clean_flat.svg437.9KB140색상 수와 작은 디테일을 더 줄인 버전

렌더링 전후 비교

왼쪽은 자동 추적 원본을 렌더링한 기준 이미지, 오른쪽은 별도 정리 파이프라인의 clean_redraw.svg 렌더입니다. 정리본은 큰 색면과 외곽을 합치고 작은 조각을 줄였지만, 모든 세부를 똑같이 보존하려는 무손실 결과는 아닙니다.

자동 추적 원본 SVG를 렌더링한 파란색 캐릭터 일러스트
자동 추적 원본 렌더
시각 정보는 풍부하지만 작은 경계 조각과 계단형 좌표가 SVG 구조 안에 대량으로 남아 있습니다.
색면과 외곽을 단순화한 자동 정리 SVG 렌더
자동 정리본 렌더
큰 색면은 단순해졌지만 머리카락·의상·테두리의 일부 작은 질감과 곡선이 달라졌습니다.
비교 이미지를 보는 방법

전체 축소 화면만 보면 둘 다 비슷해 보일 수 있습니다. 원 테두리, 머리카락의 푸른 하이라이트, 드레스 주름, 책의 작은 선을 확대해 “노이즈 감소”와 “의도된 디테일 손실”을 함께 확인해야 합니다.

자동 정리 실험에서 한 일

  1. 원본 SVG를 2배 해상도로 렌더링했습니다. 기존 path를 그대로 단순화하는 대신 시각 기준을 다시 만들었습니다.
  2. 다운샘플과 약한 블러를 적용했습니다. 픽셀 수준의 계단과 매우 작은 색 조각을 줄일 준비를 했습니다.
  3. 원본 계열의 제한된 팔레트로 양자화했습니다. 비슷한 중간색이 끝없이 나뉘는 것을 억제했습니다.
  4. 다수결 필터와 작은 연결 요소 제거를 적용했습니다. 고립된 점, halo, 작은 외곽 조각을 병합하거나 제거했습니다.
  5. 테두리와 이어진 흰 배경을 깨끗한 사각형으로 대체했습니다. 내부 흰색 하이라이트와 외부 배경을 구분하려 했습니다.
  6. 색 영역의 contour를 다시 찾았습니다. 좌표를 단순화하고 부드러운 cubic Bézier path로 변환했습니다.

정리본도 PNG를 포함하지 않는 path 기반 SVG입니다. 다만 “원본 path의 모든 점을 보존”하는 방식이 아니라 렌더된 시각 정보를 바탕으로 색 영역을 재구성했기 때문에 작은 디테일이 합쳐지거나 달라질 수 있습니다.

개선된 것과 잃은 것

관찰 항목개선 가능성동반 위험
DOM/path 복잡도60,114개 요소를 28개 복합 path로 축소한 path 안의 여러 loop는 여전히 편집이 복잡할 수 있음
파일 크기10.63MB에서 1.26MB 또는 666.5KB세부와 팔레트를 더 줄일수록 원본과 차이가 커짐
외곽 노이즈작은 점·계단형 조각 감소섬세한 속눈썹·하이라이트도 함께 약해질 수 있음
배경테두리 연결 흰 영역을 정돈내부 흰색과 배경 판정이 잘못되면 구멍이 생김
곡선contour 단순화와 Bézier fitting작가가 의도한 정확한 곡선을 추론할 수는 없음

이 사례에서 얻은 실용 결론

  • SVG 내부에 래스터가 없다고 해서 자동으로 깨끗한 벡터가 되는 것은 아니다
  • path 수가 많다는 것은 정보량 또는 노이즈가 많다는 뜻일 수 있으며 품질 점수가 아니다
  • 구조만 묶는 무손실 최적화는 파일을 줄일 수 있어도 거친 좌표 자체를 고치지 못한다
  • 자동 스무딩은 외곽을 완화하지만 작은 모양과 작가 의도를 바꿀 수 있다
  • 웹 표시, 편집, 전문 납품은 서로 다른 합격 기준을 써야 한다
  • 정확한 전문 벡터가 필요하면 고해상도·레이어 원본 또는 수동 Bé지어 재작업이 가장 확실하다

웹 표시만 목적이라면 clean_web.svg처럼 강하게 정리된 결과가 실용적일 수 있습니다. 색면을 다시 편집하려면 세부를 더 남긴 정리본이 낫지만, 자동 재구성된 도형이라는 한계는 남습니다. 상표·대형 인쇄·정밀 커팅에는 수동 검수가 필요합니다.

내 이미지에는 어떤 선택이 맞을까

복잡한 일러스트를 path로 바꾸기 전에 SVG 컨테이너와 순수 벡터의 차이를 먼저 확인하세요.