MYMONDAY.ai
서비스스튜디오도구데이터·포맷73CSS 생성기19색상·이미지10인코딩·보안10웹·SEO11개발·데브옵스10파일·내보내기18계산기6가이드

YAML TOML 변환기

YAML 설정을 테이블, 테이블 배열, 따옴표 키를 갖춘 TOML로 바꾸고, TOML이 담지 못하는 값마다 분명한 알림을 남깁니다.

  • 브라우저에서 처리
  • 가입 없음
  • 무료

도구 작업 공간

예제

옵션

문서

---로 구분된 여러 문서가 있는 파일을 배열로 만들지(자동), 항상 배열로 만들지, 첫 문서만 쓸지 정합니다.

YAML 1.1 병합 키: <<: *base는 앵커의 키를 복사하며, 옆에 직접 쓴 키가 우선합니다. 끄면 <<를 일반 키로 둡니다.

YAML 입력

21줄314byte

결과

⌘/Ctrl + Enter로 복사
결과 · config.toml
id = 4821
status = "shipped"
total = 87.9
shipped_at = "2026-03-14T09:30:00Z"

[customer]
id = 77
name = "Ada Lovelace"
email = "ada@example.com"
vip = true

[[items]]
sku = "KB-100"
name = "Keyboard"
qty = 1
price = 49.9

[[items]]
sku = "MS-220"
name = "Mouse"
qty = 2
price = 19
  • 참고TOML에는 null이 없습니다. null 1개를 뺐습니다: tracking.
키16
테이블3
크기282byte

YAML TOML 변환은 쿠버네티스, 컴포즈, CI 파일에 쓰는 형식의 설정을 카고, pyproject.toml처럼 작고 모호하지 않은 문법을 원하는 도구의 형식으로 옮겨 줍니다. 변환기는 yaml 라이브러리(YAML 1.2 코어 스키마)로 YAML을 읽고 앵커, 별칭, 병합 키를 평범한 복사본으로 펼친 뒤 TOML 1.0을 직접 씁니다. TOML에는 앵커도 null도 없고, 대부분의 라이브러리는 YAML이 허용하는 일부를 거부하기 때문입니다.

중첩 매핑은 [테이블] 구역이 되고, 매핑 목록은 [[테이블 배열]] 블록의 반복이 되며, 스칼라는 테이블보다 앞에 놓여 파일이 유효하게 유지됩니다. 단순한 단어가 아닌 키는 따옴표로 감쌉니다. 입력하는 동안 결과가 갱신되고, API 응답, 병합 키, 엣지 케이스 예제가 있으며 config.toml로 내려받을 수 있습니다.

모든 처리는 브라우저 탭 안에서 이루어지고 업로드되지 않습니다. 입력은 20MiB까지입니다. 이 변환기에는 고유 옵션이 없고, 이 사이트의 모든 YAML 변환기가 공유하는 문서와 병합 키 설정만 있습니다.

사용 방법

  1. YAML 매핑 붙여 넣기

    YAML을 붙여 넣거나 .yaml 파일을 편집기에 끌어다 놓고, 예제 칩을 고를 수도 있습니다. TOML은 최상위가 테이블이어야 하므로 YAML의 루트가 매핑이어야 합니다.

  2. 문서를 읽는 방식 정하기

    파일에 문서가 여러 개면 자동 모드는 이를 목록으로 만드는데, TOML은 루트에 목록을 둘 수 없습니다. 첫 문서만을 고르면 첫 문서를 변환하고 나머지에 대한 알림이 나옵니다.

  3. 병합 키 설정

    병합 키(<<) 펼치기는 기본으로 켜져 있어 <<: *defaults의 키가 테이블에 복사됩니다. TOML에는 병합 기능이 없으니, "<<" 하위 테이블을 보려는 경우가 아니면 켜 두세요.

  4. 알림 읽기

    알림은 빠진 null 값을 경로와 함께 나열하고, 2^53을 넘는 정수나 무한대를 텍스트로 썼을 때도 알려 줍니다. 파일을 쓰기 전에 확인하세요.

  5. 복사 또는 저장

    TOML을 복사하거나 config.toml로 내려받습니다. YAML 원본이 표현하지 못하는 TOML 고유의 날짜나 주석은 직접 추가하세요.

작동 원리

YAML이 TOML이 되는 방식

매핑의 스칼라가 key = value로 먼저 나오고, 그다음 중첩 매핑마다 [테이블], 매핑 목록마다 [[테이블]] 블록이 반복되며 헤더는 [app.db]처럼 점으로 이어집니다. 스칼라 목록과 섞인 목록은 [1, "two", true]처럼 한 줄로 쓰는데 TOML 1.0이 허용하는 형태이고, 빈 목록은 []입니다.

글자, 숫자, _, -로만 된 키는 따옴표 없이 쓰고, my key나 a.b 같은 다른 키는 이스케이프를 갖춘 큰따옴표로 감쌉니다. 문자열은 항상 큰따옴표의 기본 문자열이며 줄바꿈은 \n으로 쓰므로, 리터럴 블록은 "line1\nline2\n"이 됩니다.

YAMLTOML비고
title: Demotitle = "Demo"문자열은 큰따옴표
port: 8080, cpu: 0.5port = 8080, cpu = 0.5
ratio: 1.0ratio = 1TOML은 평범한 숫자를 받아 실수 표기가 사라짐
enabled: yesenabled = "yes"YAML 1.2에서 문자열이라 텍스트로 남음
when: 2026-10-01when = "2026-10-01"TOML 날짜가 아니라 문자열로 씀
a: ~(빠짐)TOML에는 null이 없어 경로를 알림으로 알려 줌
owner: {name: Ada}[owner]와 name = "Ada"중첩 매핑은 테이블
servers: [{name: a}, {name: b}][[servers]] 두 번매핑 목록은 테이블 배열
id: 9007199254740993id = "9007199254740993"2^53을 넘으면 정확한 텍스트와 알림
big: 1e21big = 1e+212^63 이상 정수는 실수로 씀

앵커, 별칭, 병합 키

TOML은 다른 값을 가리킬 수 없으므로 별칭은 모두 전체 복사본이 되고, <<: *base는 그 자리에서 펼쳐집니다. << 옆에 직접 쓴 키가 우선하고 소스 목록에서는 앞쪽 소스가 이깁니다. 앵커가 붙은 매핑 자체는 정의된 자리에 그대로 쓰이므로, 공유 defaults 블록은 테이블로 한 번 나오고 그것을 병합한 각 테이블 안에 또 나옵니다.

병합 키 펼치기를 끄면 <<는 값이 매핑인 일반 키가 되어 출력에 [dev."<<"] 테이블이 생깁니다. 엄격한 YAML 1.2 로더가 무엇을 보는지 확인할 때만 쓸모가 있습니다.

TOML이 표현하지 못하는 것

TOML에는 null이 없습니다. 목록 안의 것까지 모든 null 값은 빠지고, 알림이 개수를 세어 주며 app.mixed[2] 같은 경로를 최대 다섯 개까지 나열합니다. 비어 있어도 키가 의미 있다면 변환하기 전에 YAML에서 빈 문자열이나 [] 같은 값을 주세요.

루트는 테이블이어야 합니다. 최상위 YAML 목록, 스칼라 하나, 그리고 자동 모드에서 목록이 되는 여러 문서 파일은 루트가 매핑이어야 한다는 메시지와 함께 거부됩니다. 무한대와 숫자 아님은 이 변환기에서 유효한 TOML 정수나 실수가 아니므로 .inf, -.inf, .nan은 알림과 함께 문자열로 쓰입니다.

실제 예시

테이블, 한 줄 배열, 한 줄 매핑
입력
title: Demo
owner:
  name: Ada
ports: [8000, 8001]
limits: {cpu: 0.5, mem: 123456}
출력
title = "Demo"
ports = [8000, 8001]

[owner]
name = "Ada"

[limits]
cpu = 0.5
mem = 123456

스칼라와 스칼라 목록이 먼저 나오고, 중첩 매핑은 나온 순서대로 테이블이 됩니다. 숫자는 자릿수 구분 없이 씁니다.

null, 날짜, 실수, 큰 정수
입력
a: ~
when: 2026-10-01
ratio: 1.0
big: 1e21
name: x
id: 9007199254740993
mixed: [1, two, true]
출력
when = "2026-10-01"
ratio = 1
big = 1e+21
name = "x"
id = "9007199254740993"
mixed = [1, "two", true]

알림이 두 개 나옵니다. a는 null이라 빠졌고, 2^53보다 큰 정수 하나는 텍스트로 유지했습니다. 날짜는 문자열로 남고 1.0은 1이 되며 섞인 목록도 허용됩니다.

테이블 배열과 중첩 테이블
입력
app:
  name: demo
  db:
    host: localhost
    replicas:
      - {host: a, port: 1}
      - {host: b, port: 2}
  empty: []
  none: {}
  mixed: [1, {k: v}, null]
출력
[app]
name = "demo"
empty = []
mixed = [1, { k = "v" }]

[app.db]
host = "localhost"

[[app.db.replicas]]
host = "a"
port = 1

[[app.db.replicas]]
host = "b"
port = 2

[app.none]

매핑 목록은 [[app.db.replicas]] 두 번이 되고, 섞인 목록 안의 매핑은 한 줄 테이블이 되며, 그 목록의 null은 app.mixed[2]를 알리는 알림과 함께 빠집니다.

병합 키가 각 테이블에 복사됨
입력
base: &b {host: db, port: 5432}
dev:
  <<: *b
  port: 6543
출력
[base]
host = "db"
port = 5432

[dev]
host = "db"
port = 6543

dev는 앵커의 host를 받고 자기 port를 유지합니다. 병합 키 펼치기를 끄면 dev에는 port만 남고, host가 든 별도의 [dev."<<"] 테이블이 생깁니다.

따옴표가 붙는 키
입력
my key: 1
"a.b": 2
nested:
  x-y: 3
  "q\"uote": 4
출력
"my key" = 1
"a.b" = 2

[nested]
x-y = 3
"q\"uote" = 4

하이픈이 든 단어는 그대로 쓰고, 공백, 점, 따옴표가 있으면 따옴표 키가 됩니다. 점이 든 키를 그냥 쓰면 TOML에서 중첩 테이블을 뜻하므로 a.b는 따옴표로 감쌉니다.

루트가 목록이면 거부됨
입력
- a
- b
출력
루트가 매핑(key: value 쌍)이어야 합니다. 목록이나 여러 문서는 쓸 수 없습니다.

TOML은 최상위가 테이블이어야 합니다. YAML에서 목록을 items: 같은 키 아래로 옮기세요. 여러 문서 파일도 첫 문서만을 고르지 않으면 같은 이유로 거부됩니다.

자주 하는 실수

  • null이 출력에서 사라짐

    ~나 null은 모두 빠지므로, null이던 키가 TOML에는 없고 읽는 쪽에서는 설정되지 않은 것으로 볼 수 있습니다. 결과 아래 알림에 경로가 나오니, 키가 꼭 있어야 하면 빈 문자열 같은 다른 값으로 바꾸세요.

  • 날짜가 TOML 날짜가 아님

    YAML 날짜와 타임스탬프는 문자열로 읽혀 "2026-10-01"로 쓰입니다. 받는 쪽이 TOML 날짜 타입을 기대하면 따옴표를 직접 지우세요.

  • 주석과 앵커는 사라짐

    TOML은 데이터에서 만들어지므로 YAML 주석이 넘어가지 않고, 앵커와 별칭은 반복된 복사본이 됩니다. 주석이 중요하면 YAML을 원본으로 보관하세요.

  • 최상위 목록이나 여러 문서

    TOML은 루트에 목록을 둘 수 없어 변환이 오류로 멈춥니다. 목록을 키 아래로 옮기거나, 여러 문서 입력에서는 첫 문서만을 고르세요.

  • 정수 값 실수는 소수점이 사라짐

    ratio: 1.0은 정수 ratio = 1로 쓰입니다. 받는 쪽이 꼭 실수를 요구하면 변환 뒤에 1.0으로 고치세요.

  • 키 순서는 자바스크립트 객체를 따름

    1처럼 정수 모양인 키는 맨 앞에 쓰입니다. 나머지 키는 YAML 순서를 유지하지만 스칼라는 항상 하위 테이블보다 앞에 옵니다.

자주 묻는 질문

YAML TOML 변환기는 병합 키와 별칭을 펼치나요?

네. TOML에는 다른 테이블을 가리키는 방법이 없어서 별칭은 전체 복사본이 되고 << 병합 키는 기본으로 펼칩니다. 병합 키 펼치기는 원본 "<<" 키를 보고 싶을 때만 끄세요.

null 값은 어떻게 되나요?

TOML에는 null이 없어 빠집니다. 알림이 제거된 개수와 최대 다섯 개의 경로를 알려 주며, 빈 문자열 같은 값으로 몰래 바꾸지는 않습니다.

매핑 목록이 왜 [[이름]]으로 쓰이나요?

TOML에서 테이블 배열은 이중 대괄호로 쓰고 항목마다 블록 하나입니다. 스칼라 목록은 [1, 2]처럼 한 줄로 남습니다.

입력이 목록이거나 문서가 여러 개여도 되나요?

루트에서는 안 됩니다. TOML은 최상위가 테이블이어야 해서 목록은 거부됩니다. 여러 문서 파일은 첫 문서만을 고르거나 문서를 먼저 하나의 매핑으로 합치세요.

YAML 날짜가 TOML 날짜로 바뀌나요?

아니요. 2026-10-01은 YAML 1.2 코어 스키마에서 문자열이므로 TOML에서도 따옴표 문자열로 쓰입니다.

아주 큰 숫자는 어떻게 처리되나요?

2^53을 넘는 정수는 알림과 함께 정확한 따옴표 문자열로 유지하고, 2^63 이상의 정수는 1e+21 같은 지수 형태로 씁니다.

YAML이 업로드되나요?

아니요. YAML을 읽고 TOML을 쓰는 일이 모두 브라우저 탭 안에서 이루어지며 서버로 전송되지 않습니다. 입력은 20MiB까지입니다.

마지막 업데이트: