YAML → TOML 변환기
YAML을 파싱해 TOML로 변환합니다.
YAML 설정을 TOML로 바꿔 Cargo.toml이나 pyproject.toml 같은 TOML 설정 파일의 초안을 만듭니다.
사용 순서
- 왼쪽 입력 칸에 YAML을 넣습니다.
- 오른쪽 출력에 TOML 결과가 표시됩니다. 입력이 잘못되면 검증 문구가 나옵니다.
- 최상위 키가 테이블로 바뀌었는지, 배열과 중첩 구조가 기대와 같은지 확인합니다.
- 결과를 복사해 TOML 파일에 넣고 대상 도구로 한 번 읽어 검증합니다.
예시
name: it-box 한 줄짜리 YAML은 name = "it-box"라는 TOML 한 줄이 됩니다.
한계
TOML의 최상위는 반드시 키와 값의 테이블이어야 합니다. 최상위 배열이나 단일 값은 TOML로 표현할 수 없어 결과가 빈 칸으로 나옵니다. TOML에는 null이 없으므로 null 값이 있으면 변환이 실패할 수 있습니다. 결과는 라이브러리의 기본 스타일로 나오므로 원래 YAML의 따옴표와 문자열 표기는 바뀔 수 있고, 주석은 사라집니다.
보안 주의
YAML의 날짜는 이 도구에서 문자열로 읽히므로 TOML에서도 따옴표가 붙은 문자열이 됩니다. 대상 도구가 날짜 타입을 기대하면 결과의 따옴표를 직접 지우고 값을 확인해야 합니다.
배경 지식
TOML은 설정 파일을 위해 만들어진 형식으로, 키와 값을 등호로 잇고 [섹션] 머리글로 구조를 나눕니다. Rust의 Cargo.toml과 Python의 pyproject.toml처럼 빌드와 패키지 도구가 TOML을 씁니다. 들여쓰기에 영향을 받지 않고 타입 규칙이 엄격해서 실수를 빨리 찾을 수 있습니다.
TOML의 [a.b] 테이블은 YAML에서 a 아래에 b가 들여쓰기된 구조가 됩니다. 배열 테이블 [[items]]는 items 아래의 하이픈 목록으로 바뀝니다. 이 대응 관계를 알고 있으면 변환 결과를 훑어볼 때 어디가 바뀌었는지 빠르게 찾을 수 있습니다. 배열 테이블은 키 이름이 같은 객체가 반복될 때만 쓰이므로, 반복이 없다면 일반 목록으로 바뀌는지도 확인하세요.
YAML에서 TOML로 옮길 때 가장 큰 차이는 최상위 구조입니다. YAML은 배열이나 단일 값을 문서 전체로 둘 수 있지만 TOML은 키와 값의 테이블이어야 합니다. 변환 전에 내용을 하나의 객체로 묶어 두면 실패가 줄어듭니다. 감싸는 키 이름은 대상 도구가 요구하는 이름으로 정하면 결과를 바로 쓸 수 있습니다.
자주 묻는 질문
TOML 테이블과 인라인 테이블은 어떻게 다른가요?
[section] 형식의 테이블은 여러 줄에 걸쳐 키를 나열하고, {key = value}는 한 줄에 쓰는 인라인 테이블입니다. 이 도구는 라이브러리 기본 형식으로 내보내므로 원하는 모양이 다르면 손으로 고쳐야 합니다.
YAML 주석을 TOML 결과에 다시 넣으려면 어떻게 하나요?
결과에는 주석이 전혀 없으므로 원본 YAML 주석을 따로 보관해 두고, TOML에서 같은 키 위에 # 주석으로 옮겨 적는 것이 가장 확실합니다.
공백이 들어간 키는 어떻게 되나요?
TOML에서 공백이 있는 키는 따옴표로 감싸야 합니다. 변환 결과가 이 규칙을 지키는지 출력에서 직접 확인하고, 필요하면 키 이름을 바꾸세요.