XML을 보기 좋게 정렬하고 압축하는 방법
XML 문자열을 입력하고 기본 정렬 모드나 `minify` 모드를 선택한 뒤 실행하면 됩니다. 문법이 맞지 않는 XML은 정렬 또는 압축 결과가 나오지 않을 수 있으므로 구조를 먼저 확인하세요.
XML 문자열을 입력하고 기본 정렬 모드나 minify 모드를 선택한 뒤 실행하면 됩니다. 문법이 맞지 않는 XML은 정렬 또는 압축 결과가 나오지 않을 수 있으므로 구조를 먼저 확인하세요.
XML Formatter의 정렬과 압축 기능 이해하기
XML Formatter는 XML 텍스트의 계층을 읽기 쉽게 정리하거나, 태그 사이 간격을 줄인 형태로 바꾸는 데 사용할 수 있습니다. 기본 모드는 보기 좋게 정렬하는 방식입니다. 이 방식은 요소의 중첩 관계와 줄바꿈을 확인할 때 알맞습니다. 압축이 필요하면 모드에 minify를 입력해 선택할 수 있습니다. 이 모드는 결과를 짧게 만드는 대신 주석과 태그 사이 공백을 없앱니다. 들여쓰기 폭을 조정하면 여러 단계로 중첩된 문서를 검토할 때 시각적 간격을 맞출 수 있습니다. 기본 들여쓰기 폭은 2칸입니다.
입력 전에는 XML 텍스트의 목적을 정하세요. 사람이 구조를 살피는 작업이라면 기본 정렬을 사용하고, 주석과 태그 사이 간격이 필요 없는 결과가 필요하면 minify를 고려합니다. 두 모드는 결과의 모양이 다르므로 원본의 주석이나 공백을 다시 확인해야 하는 작업에서는 압축 결과만 기준으로 삼지 않는 편이 좋습니다. 입력은 XML 텍스트여야 하며, 숫자나 다른 형식의 값은 문자열 입력으로 바꾸어 준비해야 합니다.
이 도구의 핵심은 입력 내용과 선택한 모드가 결과 형태를 결정한다는 점입니다. 정렬은 먼저 XML을 분석한 뒤 읽기 쉬운 텍스트를 만들고, 압축은 공백이 아닌 내용이 있을 때 XML을 검사한 뒤 불필요한 표현을 줄입니다. 따라서 보기 좋은 출력과 짧은 출력은 서로 다른 검토 목적에 맞춰 선택해야 합니다.
XML을 정렬하거나 minify하는 절차
-
XML 입력란에 문자열 형태의 XML을 붙여 넣습니다. 입력값이 XML 텍스트인지 먼저 살피고, 객체나 숫자처럼 문자열이 아닌 값은 텍스트로 준비합니다. 입력이 공백만으로 이루어졌다면 별도의 형식 분석 없이 빈 결과가 성공적으로 반환될 수 있습니다.
-
사람이 읽을 문서를 만들 때는 기본 정렬 모드를 그대로 선택합니다. 태그 사이 간격을 줄이고 주석을 제외한 짧은 결과가 필요할 때는 모드 값으로
minify를 선택합니다. 모드 값은 대소문자를 구분하지 않는 형태로 정규화된 뒤 선택됩니다. 값이 비어 있거나 거짓으로 평가되면 기본 정렬 모드로 돌아갑니다. -
정렬 결과의 간격을 정하려면 들여쓰기 폭을 입력합니다. 숫자로 바꿀 수 있는 값은 정수로 변환됩니다. 0 미만, 8 초과, 정수로 변환할 수 없는 값은 기본값인 2칸으로 처리됩니다. 이 설정 정규화는 공백이 아닌 문자가 있는 입력에 적용됩니다.
-
실행한 뒤 결과가 정렬 텍스트인지 압축 텍스트인지 선택한 목적과 비교합니다. 기본 정렬에서는 XML 분석 뒤 형식화가 진행되므로 파싱 과정에서 문제가 생기면 성공적인 결과가 나오지 않을 수 있습니다.
minify도 공백이 아닌 문자가 있는 입력을 먼저 검사하므로 문법이 잘못된 내용은 압축되지 않을 수 있습니다. -
실패하면 여는 태그와 닫는 태그의 짝을 살핍니다. 속성 따옴표가 닫혔는지 확인하고, 부모와 자식 요소의 중첩 순서도 위에서 아래로 점검합니다. 주석 안의 내용과 태그 안의 공백을 구분해 확인하면 압축 모드에서 사라지는 부분을 예상하기 쉽습니다.
-
입력 크기도 확인합니다. 공백이 아닌 문자가 포함된 XML이 1,000,000 UTF-8 바이트보다 크면 거부됩니다. 큰 문서는 의미 있는 단위로 나누어 각각 점검하되, 나눈 조각이 독립적인 XML 구조를 갖추었는지 함께 살핍니다. 공백만 있는 입력은 이 크기 검사보다 먼저 빈 결과로 처리될 수 있습니다.
출력 형태와 실패 원인 해석하기
정렬 결과에서 줄바꿈과 들여쓰기가 보이면 요소 사이의 계층을 살피는 데 활용할 수 있습니다. 들여쓰기 폭을 바꿨는데 예상과 다른 간격이 보이면 입력이 공백만 있는지 먼저 확인하고, 그 외에는 값이 0 미만인지 8 초과인지 또는 정수로 변환되지 않는지 점검합니다. 이런 값은 2칸으로 정규화됩니다.
minify 결과가 짧아지는 것은 XML 주석이 제거되고 태그 사이의 공백이 축소되기 때문입니다. 입력의 앞뒤 공백도 잘립니다. 그러므로 주석이 문서 설명에 필요하거나 태그 사이 공백을 구분해 보아야 한다면 이 결과를 원본과 같은 것으로 해석하지 마세요. 압축 결과는 표현을 줄인 형태이며, 주석과 간격을 보존한 검토본을 대신하지 않습니다.
성공하지 않은 결과는 단순히 보기 설정의 문제가 아닐 수 있습니다. 정렬 모드는 XML을 파싱한 뒤 결과를 만들고, 비어 있지 않은 입력의 minify 모드도 XML을 검증합니다. 태그 구조가 맞지 않거나 따옴표가 닫히지 않은 내용은 형식화 실패로 이어질 수 있습니다. 입력이 문자열이 아닌 경우에도 실패할 수 있으므로 값의 형식을 확인해야 합니다.
공백만 있는 입력은 다른 경우와 다르게 빈 출력으로 성공 처리될 수 있습니다. 이 결과를 문서가 정리되었다는 뜻으로 읽기보다, 처리할 XML 내용이 없었다는 뜻으로 구분하세요. 반대로 내용이 있는 입력이 갑자기 실패하면 XML 구조, 모드 표기, 들여쓰기 값, 입력 크기를 차례로 좁혀 보는 것이 좋습니다.
출력은 선택한 모드와 입력의 상태를 함께 놓고 판단해야 합니다. 정렬은 사람이 구조를 읽는 데 초점을 두고, minify는 주석과 태그 사이 간격을 제거한 결과를 만드는 데 초점을 둡니다. 하나의 결과만 보고 원본의 의미 보존 여부를 단정하지 말고, 제거 대상이었던 주석과 공백이 작업 목적에 필요한지 확인하세요.
사용 예시
상품 목록의 계층을 먼저 읽고 주석과 태그 사이 간격을 줄인 형태도 확인해야 하는 상황에서 두 모드의 결과 모양을 비교합니다.
<catalog><!--검토--><item>Book</item></catalog>를 XML 입력란에 넣고 기본 정렬 모드와 들여쓰기 2를 지정해 실행합니다. 같은 문자열을 minify로 다시 처리한 뒤 두 결과에서 주석과 태그 사이 간격의 차이를 확인합니다.
기본 정렬에서는 중첩된 요소가 들여쓰기된 XML 텍스트로 나타납니다. 같은 입력을 minify로 처리하면 주석이 제외되고 태그 사이 공백과 앞뒤 공백이 줄어든 결과 형태가 반환됩니다.
제한 사항
- 공백이 아닌 입력은 1,000,000 UTF-8 바이트를 초과하면 거부되며, 문자열이 아니거나 XML 문법에 맞지 않는 값은 성공적으로 처리되지 않을 수 있습니다.
자주 발생하는 오류
- 태그의 닫힘이나 속성 따옴표가 빠진 XML은 분석 단계에서 실패할 수 있습니다. 여는 태그와 닫는 태그의 짝, 따옴표, 중첩 순서를 확인한 뒤 수정한 문자열을 다시 입력하세요.
자주 묻는 질문
빈 입력도 처리되나요?
공백 또는 줄바꿈만 있는 입력은 빈 출력으로 성공 처리될 수 있습니다. 내용이 있는 입력은 XML로 검사되며, 구조가 잘못되면 처리에 실패할 수 있습니다.
들여쓰기 폭을 바꿀 수 있나요?
문자가 있는 입력에서는 들여쓰기 폭을 설정할 수 있습니다. 입력값이 0 미만이거나 8을 넘거나 정수로 변환되지 않으면 2칸으로 처리됩니다.
압축 모드에서 주석과 공백이 유지되나요?
minify를 선택하면 XML 주석, 태그 사이의 공백, 입력의 앞뒤 공백이 제거됩니다. 이 항목을 보존해야 하는 문서라면 기본 정렬 결과를 선택하세요.