TOML 검증기
빌드가 실패하기 전에 Cargo.toml, pyproject.toml, Hugo 또는 Netlify 설정 파일 같은 TOML 파일을 검증하세요. 검증기는 입력을 TOML 사양에 따라 파싱하고 중복 키, 재정의된 테이블, 존재할 수 없는 날짜를 포함해 첫 번째 오류의 줄과 열, 파서 설명을 표시합니다. 유효한 파일에는 테이블과 키의 수 및 최상위 키가 표시되어 구조를 한눈에 확인할 수 있습니다.
자주 묻는 질문
TOML 검증기는 무엇을 확인하나요?
TOML 사양에 정의된 대로 키, 문자열, 숫자, 불리언, 날짜와 시간, 배열, 인라인 테이블, 테이블, 테이블 배열을 파싱합니다. 값 누락, 따옴표로 묶이지 않은 문자열, 잘못된 이스케이프 등 사양에서 벗어난 항목은 오류로 보고됩니다. 유효한 파일에는 구조에 대한 간단한 요약이 표시됩니다.
오류에는 어떤 정보가 포함되나요?
각 오류에는 파싱이 중단된 줄과 열, 그리고 파서가 제공한 상세 정보가 표시됩니다. 예를 들어 날짜가 유효하지 않거나 이미 정의된 테이블 또는 값을 다시 정의하려는 경우입니다. 줄과 열은 1부터 계산합니다. 이후 오류는 앞선 오류 때문에 발생하는 경우가 많으므로 첫 번째 오류만 표시됩니다.
키 또는 테이블이 재정의된 것으로 보고되는 이유는 무엇인가요?
TOML에서는 한 테이블에 같은 키를 두 번 사용할 수 없으며, [server] 같은 테이블 헤더도 한 번만 나타날 수 있습니다. 이미 port를 설정한 [server] 테이블 뒤에 server.port 같은 점 표기 키를 정의하는 것도 재정의로 간주됩니다. 항목을 한곳에 모으면 해결됩니다.
테이블과 키는 어떻게 계산하나요?
Tables는 인라인 테이블과 테이블 배열의 각 항목을 포함해 루트 아래의 모든 테이블을 계산합니다. Keys는 테이블이나 테이블 배열이 아닌 값을 가진 모든 키를 계산하므로 문자열 목록도 키 하나로 셉니다. Top-level keys에는 루트의 키 이름이 최대 50개까지 표시됩니다.
날짜와 시간도 확인하나요?
네. 오프셋이 있는 날짜·시간, 현지 날짜·시간, 현지 날짜, 현지 시간 모두 검증하며 월 13이나 시각 25처럼 불가능한 값도 확인합니다. 예를 들어 05/27/1979처럼 다른 형식으로 작성한 날짜는 TOML 날짜가 아니므로 문자열로 따옴표를 묶어야 합니다.
어떤 문자열과 이스케이프를 사용할 수 있나요?
큰따옴표로 묶는 기본 문자열에서는 \n, \t, \" 및 \uXXXX 같은 이스케이프를 사용할 수 있으며, 작은따옴표로 묶는 리터럴 문자열은 모든 문자를 입력된 그대로 취급합니다. 두 문자열 모두 따옴표 세 개를 사용해 여러 줄로 작성할 수 있습니다. 알 수 없는 이스케이프나 닫히지 않은 문자열은 위치와 함께 보고됩니다.
매우 큰 정수도 허용되나요?
네. TOML 사양의 64비트 한도까지의 정수(예: 9223372036854775807)는 허용됩니다. 이 범위를 넘는 정수, 앞에 0이 붙은 숫자, 숫자 사이에 있지 않은 밑줄은 오류입니다.
바이트 순서 표시(BOM) 또는 Windows 줄바꿈이 문제를 일으키나요?
아니요. 시작 부분의 UTF-8 바이트 순서 표시는 무시되며 LF와 CRLF 줄바꿈을 모두 허용합니다. 이스케이프되지 않은 제어 문자가 문자열 안에 있으면 오류로 보고됩니다.
Cargo나 Poetry처럼 키의 의미도 확인하나요?
아니요. 검증기는 TOML 구문과 구조만 확인합니다. 파일이 유효한 TOML이어도 Cargo나 Python 빌드 백엔드가 이해하지 못하는 키가 들어 있을 수 있습니다. 도구별 설정을 살펴보기 전에 구문 문제를 배제하는 데 이 도구를 사용하세요.
입력은 얼마나 클 수 있으며, 변환도 가능한가요?
입력은 최대 5 MiB까지 가능하며, 중첩 배열과 인라인 테이블은 최대 64단계까지 가능합니다. 유효한 TOML를 JSON, YAML 또는 다른 형식으로 변환하려면 Data Format Converter를 사용하세요.