YAML, JSON, TOML 형식을 자유롭게 변환하는 무료 온라인 도구입니다.
YAML, JSON, TOML은 모두 설정 파일과 데이터 직렬화에 사용되는 인기 있는 형식입니다. JSON은 웹 API에 주로 사용되며, YAML은 가독성이 높아 CI/CD 설정 파일에 자주 쓰이고, TOML은 Rust의 Cargo.toml 등 프로젝트 설정에 많이 사용됩니다.
YAML은 들여쓰기 기반의 사람이 읽기 쉬운 형식으로 주석을 지원하며, CI/CD 파이프라인 설정(GitHub Actions, Docker Compose 등)에 많이 사용됩니다. JSON은 중괄호와 따옴표를 사용하는 엄격한 형식으로 웹 API 데이터 교환에 주로 사용됩니다. YAML은 JSON의 슈퍼셋으로 유효한 JSON은 대부분 유효한 YAML이기도 합니다.
TOML(Tom's Obvious Minimal Language)은 INI 파일과 유사한 형태로 Rust의 Cargo.toml, Python의 pyproject.toml, Hugo 정적 사이트 생성기 등의 프로젝트 설정 파일에 많이 사용됩니다. 섹션 기반 구조로 직관적이고 명시적인 설정 파일 작성에 적합합니다.
자동 감지는 텍스트의 첫 문자나 구문 패턴을 분석합니다. {나 [로 시작하면 JSON, = 기호가 많으면 TOML, 그 외는 YAML로 판단합니다. 감지가 틀린 경우 변환 버튼을 클릭하면 실제 파싱 오류 메시지를 통해 올바른 형식을 확인할 수 있습니다.
이 도구는 브라우저에서 직접 실행되는 경량 파서를 사용합니다. YAML의 경우 기본 키-값, 중첩 객체, 배열, 문자열/숫자/불리언/null 타입을 지원합니다. TOML의 경우 기본 키-값, [섹션], [[배열 테이블]], 인라인 배열을 지원합니다. 앵커, 별칭, 멀티라인 문자열 등 고급 기능은 지원하지 않습니다.
JSON(2001)은 JavaScript 객체 표기법에서 파생된 경량 데이터 교환 형식으로, REST API의 표준 응답 형식이 되었습니다. YAML(2001)은 "YAML Ain't Markup Language"의 약어로 가독성을 극대화한 설정 언어입니다. TOML(2013)은 GitHub 공동창업자 Tom Preston-Werner가 만든 "명확하고 최소한의" 설정 언어로 특히 Rust 생태계에서 널리 사용됩니다.
REST API와 웹 서비스에는 JSON이 표준입니다. Docker Compose, GitHub Actions, Kubernetes 매니페스트에는 YAML이 선호됩니다. Rust 프로젝트(Cargo.toml), Python 패키징(pyproject.toml), Hugo 사이트(config.toml)에는 TOML이 쓰입니다. 프로젝트 생태계와 팀 컨벤션을 고려하여 적합한 형식을 선택하세요.
JSON에서 YAML로 변환할 때 모든 데이터 타입이 보존됩니다. TOML에서 변환 시 섹션 구조는 중첩 객체로 변환됩니다. 주석(#)은 YAML과 TOML에서 지원되지만 JSON으로 변환 시 제거됩니다. 날짜/시간 타입은 TOML에서 네이티브로 지원되지만 JSON에서는 문자열로 처리됩니다.