YAML, JSON, TOML, XML 변환하기
JSON, YAML, TOML, XML 사이에서 데이터를 로컬로 옮기세요. 원본·대상 형식을 고르고 요약과 경고를 확인한 뒤 변환된 출력을 복사하거나 저장합니다.
설정 파일은 흔히 네 가지 형태로 옵니다 — JSON, YAML, TOML, XML — 그리고 시작한 형태 그대로 머무는 일은 드뭅니다. 쿠버네티스 매니페스트는 YAML로 오고, 러스트 프로젝트는 TOML을 담고, API는 JSON을 반환하며, 레거시 시스템은 여전히 XML을 씁니다. 데이터 형식 변환기를 열면 1바이트도 업로드하지 않고 어느 형식 사이에서든 옮길 수 있습니다.
TL;DR
원본과 대상을 고르고, 데이터를 붙여 넣고, 변환하고, 복사.
- 어느 것에서 어느 것으로나 — JSON, YAML, TOML, XML을 서로 변환합니다. 모두 브라우저 안에서.
- 손실 경고를 미리 — XML 속성이나 혼합 텍스트가 정확히 왕복하지 않을 때, 출력을 신뢰하기 전에 경고 패널이 알려줍니다.
- 복사 또는 저장 — 결과를 클립보드에 담거나 대상 형식의 확장자로 로컬에 저장합니다.
형식 변환이 중요한 이유
이 형식들은 모두 같은 것 — 키와 값의 구조화된 데이터 — 을 설명하지만, 서로 다른 목적으로 만들어졌고 각 생태계는 가장 잘 맞는 것을 채택합니다. 마찰은 데이터가 경계를 넘는 순간 드러납니다. CI 파이프라인은 YAML을 읽지만 호출하는 도구는 JSON을 원하고, 파이썬 프로젝트의 TOML 설정을 JSON을 쓰는 스크립트가 편집해야 하며, API는 JSON을 반환하지만 소비 측 서비스는 XML을 기대합니다.
정직한 사실은 형식이 완벽하게 상호 교환 가능하지 않다는 것입니다(자세한 건 한계 절에서). 하지만 설정 파일의 대다수 — 평면적이거나 얕게 중첩된 설정, 목록, 타입이 있는 스칼라 — 에서는 깔끔한 변환이 정확히 필요한 것입니다. 도구의 역할은 그 변환을 빠르고 투명하게 만들고, 무손실이 아닐 때 경고하는 것입니다.
네 가지 형식
각 형식은 성격이 있고, 언제 쓰이는지 알면 올바른 대상을 고르는 데 도움이 됩니다.
- JSON — 엄격하고 어디에나 있으며, API와
package.json의 기본값입니다. 큰따옴표 문자열, 끝 쉼표 없음, 주석 없음을 요구합니다. 모든 파서가 동의합니다. - YAML — 사람에게 친절하고, 들여쓰기로 구동됩니다. 쿠버네티스, CI 설정, 사람이 손으로 편집하는 모든 것을 떠받칩니다. 공백이 의미를 가져서 강점이자 함정입니다.
- TOML — 타입이 있고, 표 기반이며, 설정 파일을 위해 설계되었습니다. 러스트의
Cargo.toml, 파이썬의pyproject.toml, 비슷한 도구의 선택입니다. INI보다 명확하고 YAML보다 엄격합니다. - XML — 장황하고, 속성과 네임스페이스가 많습니다. 기업 시스템, SOAP API, 오래된 문서 저장소에 여전히 나타나는 레거시 형식입니다.
단계별: 형식 간 변환하기
데이터 형식 변환기는 전적으로 브라우저 안에서 돌아갑니다. 흐름은 이렇습니다.
- 원본 형식과 대상 형식을 고릅니다. 두 개의 별도 드롭다운이 무엇에서 무엇으로 변환하는지 선택합니다. 바꾸기를 쓰면 즉시 뒤집을 수 있습니다 — 방금 JSON을 YAML로 했는데 이제 그 반대가 필요할 때 편리합니다.
- 입력을 붙여 넣습니다. 원본 영역에 넣습니다. 형식이 확실하지 않으면 도구가 제안할 수 있습니다 — 붙여 넣은 내용에 따라 원본 옆에 “감지됨” 힌트가 나타납니다.
- 옵션을 설정합니다. 세 가지 컨트롤이 출력을 만듭니다.
- 들여쓰기(0~8) — 결과를 몇 칸 들여쓸지(JSON 압축 시 무시).
- JSON 압축 — 대상이 JSON일 때 모든 공백을 없애 가장 작은 페이로드로 만듭니다.
- XML 속성 접두사 — XML 속성을 나타내는 키 앞에 붙는 문자열(기본
@, 최대 4자).
- 변환을 누릅니다. 출력 영역에 결과가 나타나고, 요약(형식 간 변환과 최상위 항목 수)과 손실이 있는 것을 표시하는 경고 패널이 함께 나옵니다.
- 복사하거나 저장합니다. 결과 복사로 클립보드에, 다운로드로 대상 형식의 확장자 파일을 저장합니다. 지우기로 초기화합니다.
손실이 있는 변환과 경고
일부 변환은 완벽할 수 없고, 도구는 그 점을 솔직히 밝힙니다. 경고 패널이 각 사례를 나열하여 정확히 어디를 봐야 할지 알려줍니다.
- XML 속성 —
<user id="7">같은 속성은 접두사가 붙은 키(기본@id) 아래에 저장됩니다. JSON이나 YAML로 변환하면 보존되지만, XML로 되돌릴 때는 속성을 자식 요소와 구별하기 위해 접두사에 의존하며, 경계 사례에서는 손실이 생길 수 있습니다. - XML 혼합 텍스트 — 요소가 텍스트와 자식 요소를 모두 가질 때, 텍스트는
#text키 아래에 저장됩니다. 원래 혼합 구조는 JSON이나 YAML으로 표현할 수 없어 왕복이 불완전합니다. - XML 이름 — 요소와 속성 이름이 유효한 XML 이름으로 정규화되어, 키의 특이한 문자는 교체됩니다.
- TOML 중첩 — 깊이 중첩된 객체는 TOML 출력을 위해 평면화되며 수동 검토가 필요할 수 있습니다.
경고 패널이 비어 있으면 변환은 깔끔하게 왕복합니다. 비어 있지 않으면 각 경고를 읽고 영향받는 부분이 자신에게 중요한지 판단하세요. 평면적인 설정 파일에서는 대개 경고가 전혀 없습니다.
한계와 정직함
무엇을 얻는지 정확히 알도록 몇 가지 정직한 제약을 짚습니다.
- YAML과 TOML 파서는 직접 구현한 하위 집합입니다. 일반적인 경우 — 중첩 매핑, 목록, 스칼라, 따옴표 문자열, 숫자, 불리언, null — 를 다루지만, 완전한 YAML이나 TOML 사양 라이브러리는 아닙니다. 복잡하거나 경계 사례의 구조(YAML의 앵커와 별칭, 여러 줄 문자열, TOML의 표 배열, 날짜와 시간)는 전용 라이브러리처럼 정확히 해석·직렬화되지 않을 수 있습니다.
- JSON과 XML은 견고합니다. JSON은
JSON.parse를 거치므로 유효한 JSON은 정확히 해석됩니다. XML은 속성, 중첩, 엔티티를 다루는 전용 파서를 씁니다. - 왕복은 보장되지 않습니다. 위의 손실 사례(XML 속성, 혼합 텍스트, TOML 중첩)가 대상 형식으로 항상 표현되는 것은 아니므로, A → B → A가 A를 정확히 재현하지 못할 수 있습니다. 원본은 보관하세요.
자주 묻는 질문
변환이 무손실인가요?
평면적이고 얕게 중첩된 설정 파일에서는 네 — 대개 비어 있는 경고 패널을 보게 됩니다. XML 속성, XML 혼합 텍스트, TOML의 깊은 중첩을 쓰는 데이터에서는 변환에 손실이 생길 수 있고, 경고 패널이 각 영향받는 부분을 표시합니다. 경고를 그 절을 검토하라는 신호로 여기세요.
YAML을 JSON으로 변환할 수 있나요?
네. 원본 형식을 YAML로, 대상 형식을 JSON으로 설정하고(또는 감지 제안을 사용해), YAML을 붙여 넣고 변환을 누르세요. 출력은 유효한 JSON이며, 들여쓰기는 들여쓰기 옵션으로, 압축은 선택적으로 제어합니다.
왜 제 XML이 다르게 왕복하나요?
두 가지 이유가 있습니다. XML 속성은 접두사가 붙은 키(@id 등)로 매핑되어, 되돌릴 때 자식 요소와 구별하는 것이 그 접두사에 달려 있습니다. 그리고 혼합 콘텐츠 — 텍스트와 자식을 모두 가진 요소 — 는 #text 아래에 저장되어 혼합 XML로는 깔끔하게 되돌릴 수 없습니다. 경고 패널이 두 사례를 모두 보고합니다. 왕복 충실도가 중요하다면 XML 원본을 보관하세요.
JSON의 주석을 지원하나요?
아니요. JSON 사양에는 주석이 없고, 파서는 이를 잘못된 입력으로 취급합니다. 입력에 주석이 있으면 변환 전에 제거하거나, 주석을 지원하는 형식(YAML과 TOML 모두 지원)을 사용하세요.

이 도구로 시작
지금 시작하기