TOML
1. 개요
TOML은 설정 파일을 만들기 위한 파일 형식이다. 주로 `키 = 값` 쌍, `[섹션 이름]`, `#`(주석)으로 구성된 문법을 가지며, 문자열, 정수, 부동 소수점 숫자, 부울, 날짜 및 시간, 배열, 테이블 등 다양한 데이터 형식을 지원한다. 정적 사이트 생성기, 프로그래밍 언어, 블렌더 애드온 매니페스트 등 다양한 환경에서 활용된다. 하지만 장황하고 DRY 원칙을 따르지 않으며, 계층 구조의 모호성, 과도한 복잡성, 구문 타이핑 방식 등으로 비판받기도 한다.
| 언어 | 영어 |
|---|---|
| TOML | Tom's Obvious, Minimal Language (톰의 명확하고 최소한의 언어) |
| 종류 | 구성 파일 포맷 |
|---|---|
| 개발자 | 톰 프레스턴-워너 및 커뮤니티 |
| 발표일 | 2013년 2월 23일 |
| 공개 여부 | 예 |
| URL | TOML 공식 웹사이트 |
| 최신 버전 | 1.0.0 |
| 최신 버전 발표일 | 2021년 1월 11일 |
| 장르 | 데이터 교환 |
| 파일 확장자 | .toml |
| MIME 형식 | application/toml (비공식) |
-
설정 파일 -
MSDOS.SYS
-
설정 파일 -
AUTOEXEC.BAT
AUTOEXEC.BAT는 도스 및 초기 윈도우 운영 체제에서 컴퓨터 시동 시 실행되어 환경 변수 설정, 시스템 유틸리티 실행 등에 사용되는 배치 파일이다. -
마크업 언어 -
HTML
HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다. -
마크업 언어 -
XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다. -
파일 포맷 -
바로 가기
바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다. -
파일 포맷 -
EXE
EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
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에서 구문은 데이터 유형을 결정한다("구문 타이핑").