TOML 포맷터 & 검증기 - TOML 정리/변환 온라인
TOML 설정 파일을 포맷, 검증, 변환합니다. 구문 강조와 트리 뷰를 지원하며, TOML과 JSON 간 변환이 가능합니다. 100% 클라이언트 사이드 처리.
자주 묻는 질문
TOML 포맷터란 무엇인가요?
TOML 포맷터는 TOML(Tom's Obvious, Minimal Language) 설정 파일을 일관된 구조와 간격으로 재포맷하는 도구입니다. TOML은 읽기 쉽도록 설계된 설정 파일 형식으로, Rust(Cargo.toml), Python(pyproject.toml), Go 등 다양한 생태계에서 널리 사용됩니다. 포맷터는 TOML 파일이 일관된 스타일 규칙을 따르도록 하여 읽기, 유지보수, 버전 관리 diff 검토를 쉽게 만듭니다.
이 TOML 포맷터는 어떻게 사용하나요?
모드 옵션에서 원하는 작업을 선택하세요: 포맷(TOML 재포맷), TOML → JSON(JSON으로 변환), 또는 JSON → TOML(TOML로 변환). 입력 영역에 내용을 붙여넣거나 파일을 업로드하세요. 도구가 자동으로 입력을 실시간으로 검증하고 처리합니다. 오른쪽 패널에서 출력을 확인하고, 트리 뷰로 전환하여 계층적 시각화를 보고, 복사 또는 다운로드 버튼으로 결과를 저장하세요.
데이터는 안전한가요? 서버로 전송되나요?
데이터는 100% 안전하며 브라우저를 벗어나지 않습니다. 이 TOML 포맷터는 클라이언트 사이드 JavaScript에서 완전히 실행되는 smol-toml 라이브러리를 사용합니다. 어떤 서버로도 데이터가 전송되거나, 데이터베이스에 저장되거나, 어디에도 기록되지 않습니다. 모든 파싱, 검증, 포맷팅, 변환이 사용자의 기기에서 로컬로 수행됩니다. 인터넷 연결을 끊어도 초기 페이지 로드 후에는 완전히 오프라인으로 작동합니다.
어떤 TOML 기능을 지원하나요?
이 도구는 TOML v1.0.0 사양을 완전히 지원합니다: 기본 및 리터럴 문자열(한 줄 및 여러 줄), 정수(10진수, 16진수, 8진수, 2진수), 실수(inf, nan 포함), 불리언, 오프셋 날짜시간, 로컬 날짜시간, 로컬 날짜, 로컬 시간, 배열, 표준 테이블([table]), 인라인 테이블({ key = value }), 테이블 배열([[array]]), 점 표기 키(a.b.c = value), 주석(# comment)을 지원합니다.
TOML 파싱이 실패하는 이유는 무엇인가요?
TOML 파싱 오류의 일반적인 원인: 같은 테이블 내 중복 키, 배열 내 혼합 타입(TOML v1.0.0에서 배열은 같은 타입의 요소만 포함해야 함), 잘못된 날짜/시간 형식(RFC 3339 준수 필요), 닫히지 않은 문자열이나 따옴표 누락, 인라인 테이블로 정의된 테이블 재정의, 잘못된 문자를 포함한 베어 키(영숫자, 대시, 밑줄만 허용). 오류 메시지에 문제가 감지된 정확한 행과 열이 표시됩니다.
TOML, YAML, JSON의 차이점은 무엇인가요?
TOML, YAML, JSON은 모두 설정에 사용되는 데이터 직렬화 형식입니다. JSON은 중괄호와 대괄호를 사용하며, 큰따옴표로 키를 감싸야 하고, 주석을 지원하지 않습니다. YAML은 들여쓰기 기반 구조를 사용하며 주석을 지원하지만, 들여쓰기 민감성과 암묵적 타입 변환(예: 'no'가 false가 됨) 때문에 오류가 발생하기 쉽습니다. TOML은 명시적 테이블 헤더([section])와 키-값 쌍을 사용하고, #으로 주석을 지원하며, 명확한 타입 처리를 제공합니다.
코드 예제
// TOML parsing and formatting using smol-toml
// Install: npm install smol-toml
import { parse, stringify } from 'smol-toml';
// Parse and validate TOML
function validateToml(input) {
try {
const parsed = parse(input);
return { valid: true, data: parsed };
} catch (error) {
return { valid: false, error: error.message };
}
}
// Format TOML (parse then re-serialize)
function formatToml(input) {
const parsed = parse(input);
return stringify(parsed);
}
// Convert TOML to JSON
function tomlToJson(tomlString, indent = 2) {
const parsed = parse(tomlString);
return JSON.stringify(parsed, null, indent);
}
// Convert JSON to TOML
function jsonToToml(jsonString) {
const parsed = JSON.parse(jsonString);
return stringify(parsed);
}
// Example usage
const toml = `
[package]
name = "my-project"
version = "0.1.0"
[dependencies]
serde = "1.0"
`;
const result = validateToml(toml);
if (result.valid) {
console.log('Package:', result.data.package.name);
console.log('JSON:', tomlToJson(toml));
}
JSON으로 변환할 때 TOML 주석은 어떻게 되나요?
TOML 주석(#으로 시작하는 줄)은 JSON으로 변환할 때 사라집니다. JSON은 주석을 지원하지 않기 때문입니다. 이것은 JSON 형식의 근본적인 제한이며 이 도구의 제한이 아닙니다. TOML을 JSON으로 변환한 후 다시 TOML로 변환하면 주석이 보존되지 않습니다. 중요한 주석이 포함된 원본 TOML 파일의 백업을 유지하는 것을 권장합니다.