TOML

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

TOML은 설정 파일을 만들기 위한 파일 형식이다. 주로 `키 = 값` 쌍, `[섹션 이름]`, `#`(주석)으로 구성된 문법을 가지며, 문자열, 정수, 부동 소수점 숫자, 부울, 날짜 및 시간, 배열, 테이블 등 다양한 데이터 형식을 지원한다. 정적 사이트 생성기, 프로그래밍 언어, 블렌더 애드온 매니페스트 등 다양한 환경에서 활용된다. 하지만 장황하고 DRY 원칙을 따르지 않으며, 계층 구조의 모호성, 과도한 복잡성, 구문 타이핑 방식 등으로 비판받기도 한다.

TOML - [IT 관련 정보]에 관한 문서
기본 정보
언어영어
TOMLTom's Obvious, Minimal Language (톰의 명확하고 최소한의 언어)
종류구성 파일 포맷
개발자톰 프레스턴-워너 및 커뮤니티
발표일2013년 2월 23일
공개 여부
URLTOML 공식 웹사이트
최신 버전1.0.0
최신 버전 발표일2021년 1월 11일
장르데이터 교환
파일 확장자.toml
MIME 형식application/toml (비공식)
📚 더 읽어볼만한 페이지
  • 설정 파일 - MSDOS.SYS
  • 설정 파일 - AUTOEXEC.BAT
    AUTOEXEC.BAT는 도스 및 초기 윈도우 운영 체제에서 컴퓨터 시동 시 실행되어 환경 변수 설정, 시스템 유틸리티 실행 등에 사용되는 배치 파일이다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
  • 마크업 언어 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • 마크업 언어 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.

2. 문법

TOML은 `키 = 값` 쌍, `[섹션 이름]`, `#`(주석)으로 구성된다. INI 파일과 유사하지만, TOML은 형식적인 사양을 포함한다.

TOML 명세는 문자열, 정수, 부동 소수점 숫자, 부울, 날짜 및 시간, 배열, 테이블 등의 데이터 유형을 지원한다.

2.1. 기본 구조

TOML의 문법은 주로 `키 = 값` 쌍, `[섹션 이름]`, `#`(주석)으로 이루어져 있다. TOML은 INI 파일과 유사하지만 형식적인 사양을 포함하고 있다는 점에서 차이가 있다.

TOML 명세는 문자열, 정수, 부동 소수점 숫자, 부울, 날짜 및 시간, 배열, 테이블 등 지원되는 데이터 유형 목록을 포함한다.

2.2. 데이터 유형

TOML 명세는 문자열, 정수, 부동 소수점 숫자, 부울, 날짜 및 시간, 배열, 테이블 등 지원되는 데이터 유형 목록을 포함한다. 지원하는 형식은 문자열형, 정수형, 부동 소수점형, 불리언형, 날짜형, 배열형, 테이블형이다.

2.3. 예시

toml
# TOML 문서 예시입니다.

title = "한국중앙은행"

[owner]
name = "한국은행"
establishment = ""

[database]
server = "192.168.1.1"
ports = [ 8000, 8001, 8002 ]
connection_max = 5000
enabled = true

[servers]

# 들여쓰기(탭 또는 공백)는 허용되지만 필수는 아닙니다.
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"

[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"

[clients]
data = [ ["gamma", "delta"], [1, 2] ]

# 배열 안에서는 줄 바꿈이 허용됩니다.
hosts = [
"alpha",
"omega"
]

3. 활용 사례

정적 사이트 생성기인 지킬 및 휴고에서 사용된다. 파이썬, 러스트 패키지 매니페스트, 줄리아 프로젝트 설정 및 패키지 매니페스트, 블렌더 애드온 매니페스트 등 다양한 환경에서 사용된다.

4. 비판

TOML은 여러 가지 측면에서 비판을 받아왔다.

* TOML은 장황하며, DRY를 따르지 않고 구문이 복잡하다.
* TOML의 계층 구조는 구문만으로는 파악하기 어려울 수 있다.
* 과도한 복잡성: TOML은 너무 많은 기능을 가지고 있다.
* TOML에서 구문은 데이터 유형을 결정한다("구문 타이핑").

4.1. 장황함 및 반복

TOML은 여러 가지 측면에서 비판을 받아왔다.

* TOML은 장황하며, DRY를 따르지 않고 구문이 복잡하다.
* TOML의 계층 구조는 구문만으로는 파악하기 어려울 수 있다.
* 과도한 복잡성: TOML은 너무 많은 기능을 가지고 있다.
* TOML에서 구문은 데이터 유형을 결정한다("구문 타이핑").

4.2. 계층 구조의 모호성

TOML은 여러 가지 측면에서 비판을 받아왔다.

복잡한 설정을 표현할 때 TOML의 계층 구조는 구문만으로는 직관적이지 않을 수 있다.

4.3. 과도한 복잡성

TOML은 여러 가지 측면에서 비판을 받아왔다.

* TOML은 장황하며, DRY를 따르지 않고 구문적으로 시끄럽다.
* TOML의 계층 구조는 구문만으로는 추론하기 어려울 수 있다.
* 과도한 복잡성: TOML은 너무 많은 기능을 가지고 있다.
* TOML에서 구문은 데이터 유형을 결정한다("구문 타이핑").

4.4. 구문 타이핑

TOML은 데이터 유형이 값 자체가 아닌 구문에 의해 결정된다는 점("구문 타이핑")에서 비판을 받는다.