DT

YAML ↔ JSON ↔ TOML 상호 변환

설정 파일 포맷을 자유롭게 변환하고 문법 오류를 즉시 찾아냅니다.

이 도구는 100% 브라우저에서 실행됩니다. 입력한 데이터는 서버로 전송되지 않습니다.

같은 설정을 YAML로 쓰는 도구와 JSON으로 쓰는 도구, TOML을 요구하는 도구가 한 프로젝트 안에 뒤섞이는 일은 흔합니다. Kubernetes 매니페스트와 GitHub Actions 워크플로는 YAML, package.json 과 API 응답은 JSON, Rust의 Cargo.toml 이나 Python의 pyproject.toml 은 TOML입니다.

이 도구는 세 형식을 서로 변환하고, 입력 형식을 자동으로 감지하며, 문법 오류가 있으면 원인을 그 자리에서 알려 줍니다. 들여쓰기 폭을 바꾸거나 키를 알파벳순으로 정렬해 диff를 줄이는 것도 한 번의 클릭으로 가능합니다. YAML의 앵커·별칭은 펼쳐서 변환하고, 중첩된 구조는 깊이에 관계없이 처리합니다.

사용 방법

  1. 원본 붙여넣기왼쪽에 설정 내용을 붙여넣습니다. 원본 형식은 자동 감지가 기본값이며, 감지 결과가 입력창 아래 배지로 표시됩니다. 의도와 다르게 감지되면 드롭다운에서 형식을 직접 지정하세요.
  2. 대상 형식 선택JSON·YAML·TOML 중 원하는 출력을 고릅니다. 변환은 입력할 때마다 즉시 다시 계산되므로 원본을 고치면서 결과를 바로 확인할 수 있습니다.
  3. 들여쓰기와 정렬 조정들여쓰기를 min 으로 두면 JSON이 한 줄로 압축됩니다. 키 정렬을 켜면 모든 객체의 키가 알파벳순으로 재배열되어, 두 설정 파일을 비교할 때 순서 차이로 생기는 잡음이 사라집니다.
  4. 결과 확인 후 저장복사하거나 파일로 내려받습니다. 서로 바꾸기 버튼을 누르면 결과가 입력으로 이동하고 방향이 뒤집혀, 왕복 변환이 제대로 되는지 검증할 수 있습니다.

자주 묻는 질문

YAML의 주석이 변환하면 사라집니다.

JSON에는 주석 문법이 없기 때문에 구조적으로 보존이 불가능합니다.

YAML → YAML 변환에서도 주석은 사라집니다. 파서가 문서를 데이터 구조로 읽어 들인 뒤 다시 직렬화하는 방식이라 주석은 데이터가 아니어서 버려집니다. 주석을 유지해야 한다면 변환 결과를 새 파일로 쓰지 말고, 원본 파일을 직접 편집하면서 이 도구는 검증·미리보기 용도로만 쓰는 것을 권합니다.

TOML로 변환하니 오류가 납니다.

TOML은 다른 두 형식보다 표현할 수 있는 구조가 제한적입니다.

최상위가 반드시 테이블(객체)이어야 하므로 배열이나 단일 값으로 시작하는 문서는 변환할 수 없습니다. null 에 해당하는 값도 TOML에는 없고, 서로 다른 타입이 섞인 배열도 표준에서 허용되지 않습니다. 이런 데이터가 포함되어 있으면 오류가 표시되니, 해당 항목을 제거하거나 문자열로 바꾼 뒤 다시 시도하세요.

`NODE_VERSION: 20` 이 문자열이 아니라 숫자로 바뀝니다.

YAML은 따옴표 없는 값의 타입을 추론합니다. 20 은 정수, true·no·on 은 불리언, null·~ 는 null로 읽힙니다.

문자열로 유지하려면 원본에서 NODE_VERSION: "20" 처럼 따옴표로 감싸야 합니다. 이 추론 규칙은 실무에서 사고를 자주 일으킵니다. 노르웨이 국가 코드 NO 가 불리언 false로 읽히는 이른바 'Norway 문제'가 대표적이고, version: 1.10 이 숫자 1.1로 축약되는 경우도 흔합니다. 버전·코드·ID처럼 의미가 문자열인 값은 항상 따옴표를 붙이세요.

알아두면 좋은 개념

세 형식의 설계 의도

JSON은 기계 간 데이터 교환을 위해 만들어져 문법이 단순하고 파서가 빠릅니다. 대신 주석이 없고 사람이 길게 쓰기엔 번거롭습니다.

YAML은 사람이 읽고 쓰기 좋게 설계되어 들여쓰기로 구조를 표현하고 주석과 여러 줄 문자열을 지원합니다. 그만큼 문법이 복잡하고 타입 추론에 함정이 많습니다. TOML은 그 중간에서 '설정 파일'에 초점을 맞춰, 명확한 타입과 평평한 섹션 구조로 모호함을 줄였습니다. 깊게 중첩된 데이터에는 잘 맞지 않습니다.

YAML 들여쓰기 규칙

YAML은 탭 문자를 들여쓰기로 인정하지 않습니다. 반드시 공백을 써야 하며, 에디터가 탭을 삽입하도록 설정되어 있으면 파싱 오류가 납니다. 같은 레벨의 항목은 들여쓰기 폭이 정확히 같아야 합니다.

리스트 항목의 - 는 들여쓰기의 일부로 볼 수도, 아닐 수도 있어 두 스타일이 모두 유효합니다. 이 도구의 출력은 일관된 규칙으로 재생성하므로, 원본의 들여쓰기가 뒤섞여 있었다면 변환 후 정돈된 형태를 얻을 수 있습니다.

앵커와 별칭으로 중복 줄이기

YAML에는 &이름 으로 노드를 표시하고 *이름 으로 재사용하는 앵커·별칭 기능이 있습니다. <<: *기본값 형태의 병합 키와 함께 쓰면 Docker Compose나 CI 설정의 중복을 크게 줄일 수 있습니다.

다만 JSON과 TOML에는 대응하는 개념이 없으므로, 변환 시 참조가 모두 펼쳐져 실제 값이 반복 출력됩니다. 원본보다 결과가 길어졌다면 앵커가 펼쳐진 것이며, 데이터 자체는 동일합니다.

함께 쓰면 좋은 도구

최종 업데이트: 2026-08-12