TOML 빠른 참조
테이블, 문자열, 숫자, 날짜, 배열
구문
기본 규칙
| key = value | 키-값 쌍 (한 줄에 하나) |
| # | 주석 (줄 끝까지) |
| Case sensitive | 키와 값은 대소문자 구분 |
| UTF-8 | 파일은 유효한 UTF-8이어야 함 |
| No null | TOML에는 null 타입 없음 |
최소 예제
title = "My App"
debug = true
port = 8080
문자열
문자열 타입
| "basic" | 기본 문자열 (이스케이프 지원) |
| 'literal' | 리터럴 문자열 (이스케이프 없음) |
| """multi""" | 여러 줄 기본 문자열 |
| '''multi''' | 여러 줄 리터럴 문자열 |
예제
basic = "Hello\nWorld"
literal = 'C:\Users\path'
multi = """
Line one
Line two"""
이스케이프 시퀀스
| \n \t \r | 개행, 탭, 캐리지 리턴 |
| \\ | 백슬래시 |
| \uXXXX | 유니코드 (4자리 16진수) |
| \UXXXXXXXX | 유니코드 (8자리 16진수) |
숫자 및 불리언
숫자 타입
| 42 | 정수 |
| 1_000_000 | 밑줄 구분 정수 |
| 0xff / 0o77 / 0b11 | 16진수, 8진수, 2진수 |
| 3.14 | 부동소수점 |
| 5e+22 / 1e-2 | 지수 표기법 |
| inf / nan | 특수 부동소수점 값 |
| true / false | 불리언 (소문자만) |
예제
count = 42
price = 19.99
hex_color = 0xFF5733
enabled = true
날짜
날짜 및 시간 타입
| 2026-03-26T10:30:00Z | 오프셋 날짜-시간 (UTC) |
| 2026-03-26T10:30:00-05:00 | 오프셋 날짜-시간 (EST) |
| 2026-03-26T10:30:00 | 로컬 날짜-시간 (시간대 없음) |
| 2026-03-26 | 로컬 날짜 |
| 10:30:00 | 로컬 시간 |
예제
created = 2026-03-26T10:30:00Z
birthday = 1990-05-15
alarm = 07:00:00
테이블
테이블 구문
[server]
host = "localhost"
port = 8080
[server.ssl]
enabled = true
cert = "/path/to/cert.pem"
테이블 배열
[[users]]
name = "Alice"
role = "admin"
[[users]]
name = "Bob"
role = "user"
규칙
| [name] | 표준 테이블 헤더 |
| [a.b.c] | 점 표기법 — 중첩 테이블 |
| [[name]] | 테이블 배열 |
| No redefine | 같은 테이블을 두 번 정의 불가 |
배열
배열 구문
colors = ["red", "green", "blue"]
numbers = [1, 2, 3]
여러 줄 배열
hosts = [
"alpha.example.com",
"beta.example.com",
]
TOML 배열에서 후행 쉼표 허용
규칙
| Same type | 모든 요소는 같은 타입이어야 함 |
| Trailing comma | 마지막 요소 다음에 허용 |
| Newlines | 배열은 여러 줄에 걸칠 수 있음 |
인라인 테이블
인라인 테이블 구문
point = { x = 1, y = 2 }
user = { name = "Alice", admin = true }
규칙
| Single line | 한 줄에 작성해야 함 |
| No trailing comma | 후행 쉼표 불가 |
| No newlines | 여러 줄에 걸칠 수 없음 |
| No adding keys | 나중에 인라인 테이블에 키 추가 불가 |
인라인 vs 표준
# Inline — compact, one-liners
db = { host = "localhost", port = 5432 }
# Standard — readable, extendable
[db]
host = "localhost"
port = 5432
자주 쓰는 패턴
pyproject.toml
[project]
name = "myapp"
version = "1.0.0"
dependencies = ["flask>=3.0"]
Cargo.toml
[package]
name = "myapp"
version = "0.1.0"
edition = "2021"
팁
| taplo | TOML 툴킷 — 포매터와 린터 |
| No null | null 설정 대신 키 생략 |
| No anchors | YAML과 달리 참조/별칭 시스템 없음 |
| Strict | 중복 키 없음, 혼합 타입 배열 없음 |