맨위로가기

TOML

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

1. 개요

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

더 읽어볼만한 페이지

  • 설정 파일 - MSDOS.SYS
    MSDOS.SYS는 MS-DOS 운영 체제의 핵심 시스템 파일로, 부팅 과정에서 시스템 초기화 및 하드웨어 설정을 관리하며, 윈도우 9x 시리즈 등장 이후에는 윈도우 부팅 옵션을 설정하는 텍스트 파일로 기능이 변화되었다.
  • 설정 파일 - 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+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
TOML - [IT 관련 정보]에 관한 문서
기본 정보
종류구성 파일 포맷
개발자톰 프레스턴-워너 및 커뮤니티
발표일2013년 2월 23일
공개 여부
URLTOML 공식 웹사이트
최신 버전1.0.0
최신 버전 발표일2021년 1월 11일
장르데이터 교환
파일 확장자.toml
MIME 형식application/toml (비공식)

2. 문법

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

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

2. 1. 기본 구조

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

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

2. 2. 데이터 유형

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

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. 활용 사례

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

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은 데이터 유형이 값 자체가 아닌 구문에 의해 결정된다는 점("구문 타이핑")에서 비판을 받는다.

참조

[1] 웹사이트 Initial commit · toml-lang/toml@84db252 https://github.com/t[...] 2024-06-15
[2] 웹사이트 TOML: English v1.0.0 https://toml.io/en/v[...] 2024-01-27
[3] 웹사이트 My wish-list for the next YAML https://drewdevault.[...] 2021-07-28
[4] 웹사이트 TOML: Tom's Obvious Minimal Language https://toml.io/en/ 2022-08-08
[5] 웹사이트 toml-lang/toml https://github.com/t[...] 2016-12-16
[6] 웹사이트 tomllib — Parse TOML files https://docs.python.[...] 2023-07-08
[7] 웹사이트 The Manifest Format - The Cargo Book https://doc.rust-lan[...] 2023-07-08
[8] 웹사이트 10. Project.toml and Manifest.toml · Pkg.jl https://pkgdocs.juli[...] 2023-07-08
[9] 웹사이트 Filename Extension https://toml.io/en/v[...] 2020-06-30
[10] 웹사이트 MIME Type https://toml.io/en/v[...] 2020-06-30
[11] 웹사이트 Releases https://github.com/t[...] GitHub 2021-01-18
[12] 간행물 Tom's Obvious, Minimal Language. Contribute to toml-lang/toml development by creating an account on GitHub https://github.com/t[...] toml-lang 2019-01-28
[13] 웹사이트 projects using toml https://github.com/t[...] 2018-09-30
[14] 웹사이트 toml implementations https://github.com/t[...] 2018-09-30
[15] 웹사이트 cargo config https://doc.rust-lan[...] 2018-09-30
[16] 웹사이트 TOML, Tom's Own Markup Language https://news.ycombin[...] Y Combinator 2017-05-10
[17] 웹인용 The Manifest Format - The Cargo Book https://doc.rust-lan[...]
[18] 웹인용 My wish-list for the next YAML https://drewdevault.[...] 2021-07-28
[19] 웹인용 TOML: Tom's Obvious Minimal Language https://toml.io/en/ 2022-08-08
[20] 웹인용 toml-lang/toml https://github.com/t[...] 2022-05-23
[21] 웹인용 Learn toml in Y Minutes https://learnxinymin[...] 2022-08-08



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com