본문 바로가기

XML to JSON 변환 방법 총정리 - 온라인 도구부터 파이썬 코드까지 상황별 해결법

공공데이터 API나 레거시 시스템의 XML 데이터를 JSON으로 바꿔야 할 때, 설치 없이 3초 만에 끝내는 온라인 도구와 개발자용 코드 변환법을 한번에 정리했습니다.


XML to JSON 변환 방법 총정리 - 온라인 도구부터 파이썬 코드까지 상황별 해결법

공공데이터포털에서 API를 신청했는데 응답이 XML로 와서 당황했던 경험, 한 번쯤 있으실 겁니다. 국내 공공데이터 API 중 상당수가 여전히 XML을 기본 응답 형식으로 제공하고, RSS 피드나 오래된 사내 시스템도 마찬가지입니다. 문제는 요즘 개발 환경 대부분이 JSON 중심으로 돌아간다는 점입니다. 자바스크립트는 물론이고 파이썬, 모바일 앱까지 JSON을 표준처럼 사용합니다. 그래서 XML to JSON 변환은 개발자뿐 아니라 데이터를 다루는 누구에게나 한 번은 부딪히는 과제가 됩니다.

XML과 JSON, 무엇이 어떻게 다른가

두 형식 모두 데이터를 구조화해서 주고받기 위한 포맷이지만, 태생과 문법이 다릅니다. XML은 1998년 W3C가 표준화한 마크업 언어로 태그 기반이고, JSON은 자바스크립트 객체 표기법에서 출발해 키와 값의 쌍으로 데이터를 표현합니다.

구분XMLJSON
문법여는 태그와 닫는 태그중괄호와 키-값 쌍
데이터 크기태그 중복으로 상대적으로 큼같은 내용 기준 더 작음
속성(attribute)지원함개념 자체가 없음
주석지원함표준에서 지원 안 함
배열 표현같은 태그 반복대괄호로 명시적 표현

이 차이 때문에 변환이 단순한 문법 치환으로 끝나지 않습니다. 특히 XML의 속성과 배열 처리는 뒤에서 다룰 문제의 핵심 원인이 됩니다.

온라인 도구로 3초 만에 변환하기

일회성 변환이라면 코드를 짤 필요가 전혀 없습니다. 브라우저에서 바로 쓰는 무료 변환 도구가 많고, 붙여넣기 한 번이면 결과가 나옵니다.

  • Code Beautify: XML to JSON 변환뿐 아니라 포맷 정리, 유효성 검사까지 한 사이트에서 처리할 수 있습니다.
  • FreeFormatter: 변환 옵션이 세분화되어 있어 속성 처리 방식을 직접 고를 수 있습니다.
  • VS Code 확장: XML Tools 확장을 설치하면 에디터 안에서 명령 팔레트로 바로 변환됩니다.

요즘 유틸리티는 대부분 이렇게 설치 없는 웹 도구로 옮겨왔습니다. BMI 계산기학점 계산기처럼 일상적인 계산을 브라우저에서 끝내듯, 데이터 변환도 가벼운 작업이라면 웹 도구로 충분합니다.

참고: 온라인 도구에 데이터를 붙여넣는 순간 외부 서버로 전송될 수 있습니다. 고객 정보, 인증 키, 사내 데이터가 포함된 XML은 온라인 도구 대신 로컬에서 코드로 변환하는 것이 안전합니다.

코드로 변환하기 - 파이썬과 자바스크립트

반복 작업이거나 자동화 파이프라인에 넣어야 한다면 코드 변환이 정답입니다.

파이썬: xmltodict

파이썬에서는 xmltodict 라이브러리가 사실상 표준처럼 쓰입니다. 단 세 줄이면 됩니다.

import xmltodict, json
data = xmltodict.parse(xml_string)
result = json.dumps(data, ensure_ascii=False)

한글 데이터라면 ensure_ascii=False 옵션을 꼭 넣어야 유니코드 이스케이프 없이 읽기 좋은 결과가 나옵니다.

자바스크립트: fast-xml-parser

Node.js 환경에서는 fast-xml-parser가 널리 쓰입니다. 주간 다운로드가 수천만 건에 이를 정도로 검증된 라이브러리이고, 속성 파싱 여부를 옵션으로 제어할 수 있습니다. 브라우저에서는 내장 DOMParser로 XML을 파싱한 뒤 직접 객체로 매핑하는 방법도 있습니다.

팁: 변환 결과가 제대로 나왔는지 확인할 때는 json.dumps의 indent=2 옵션이나 JSON 포맷터로 들여쓰기를 적용해 보세요. 한 줄짜리 결과에서는 구조 오류를 눈으로 잡아내기 어렵습니다.

변환할 때 자주 겪는 문제 4가지

변환 자체는 쉽지만, 결과물이 예상과 다르게 나오는 경우가 많습니다. 원인은 대부분 아래 네 가지입니다.

  • 속성 처리: JSON에는 속성 개념이 없어서 도구마다 @ 접두사를 붙이거나 별도 키로 빼는 등 처리 방식이 제각각입니다.
  • 단일 요소와 배열 혼동: 같은 태그가 2개면 배열, 1개면 객체로 변환되는 도구가 많습니다. 데이터 개수에 따라 구조가 바뀌면 파싱 코드가 깨집니다.
  • 주석과 CDATA 유실: JSON 표준은 주석을 지원하지 않아 XML 주석은 변환 과정에서 사라집니다.
  • 숫자와 문자열 판별: XML에서는 모든 값이 문자열이라 "01012345678" 같은 값이 숫자로 바뀌며 앞자리 0이 사라질 수 있습니다.
XML to JSON 변환의 진짜 난이도는 문법 치환이 아니라 구조 해석에 있습니다. 속성과 배열을 어떻게 다룰지 먼저 정하고 도구의 옵션을 확인하는 것이 변환 후 디버깅 시간을 줄이는 지름길입니다.

상황별 추천 방법 정리

정리하면 선택 기준은 두 가지, 반복 여부와 데이터 민감도입니다. 일회성이고 민감하지 않은 데이터라면 온라인 도구로 3초 만에 끝내면 됩니다. 반복 작업이거나 민감한 데이터라면 파이썬 xmltodict 또는 fast-xml-parser로 로컬에서 처리하세요.

지금 바로 해볼 일은 두 가지입니다. 첫째, 자주 다루는 XML 샘플 하나를 변환해 보고 속성과 배열이 어떤 구조로 나오는지 확인하세요. 둘째, 반복 작업이라면 위의 세 줄짜리 파이썬 코드를 스크립트로 저장해 두세요. 다음번 변환은 파일 경로만 바꾸면 끝납니다.

3일 무료체험큰손탐지기, 지금 바로 시작하세요

설치 없이 웹에서 바로 사용 가능 · PC & 모바일 지원

무료체험 시작
카카오톡 상담