Yaml 언어 개요
/ 5 min read
Updated:
목차
Collection, 콜렉션
Block 스타일, Flow 스타일
- Block
- 들여쓰기로 스코프를 구분, Collection
- sequence는
-
로 스코프를 시작
- mapping는
:
로 키, 값 쌍을 만듬
#
로 주석을 시작함
- Flow
- 들여쓰기 대신 명시적인 구분자를 사용됨
- sequence는
[, ]
, 대괄호로 감싸고 ,
, 쉼표로 구분함
Structures
---
, 노드 재활용, complex(복합?) mapping
- Document 시작, 끝 구분자
---
, Document 콘텐츠를 구분하는 지시자
- 다른 지시자가 없으면 Document의 시작을 알림
...
, Document의 끝을 표시 함
---
을 쓰는 경우, 새로운 Document의 시작을 알리지 않고도 Document의 끝을 알림
- 노드 재활용
&
을 앞에 붙인 식별자를 anchor
*
을 앞에 붙인 식별자를 alias, 별칭
- node를 anchor로 수식하면 anchor와 대응하는 alias로 해당 노드를 재사용할 수 있다.
- complex mapping
?
, complex mapping key, 복합 키를 맵핑할 때 쓰는 지시자
Scalars
yaml에서 scalar를 0 이상 길이의 유니코드 문자열로 말함.
작성할 때 |
, >
두 가지 기호를 사용할 수 있음.
|
, 리터럴 스타일, 작성된 줄바꿈이 줄바꿈으로 반영됨.
>
, folded 접힌 스타일, 작성된 줄바꿈이 공백으로 반영되다가 마지막에 줄바꿈 추가됨.
플로우 스타일 사용할 때
- 모든 줄바꿈은 반영됨
- 쌍따옴표를 사용한 경우 이스케이프 문자를 사용 가능
- 이스케이프 문자를 사용하지 않는다면 따옴표를 사용하는 방법을 권장
태그가 없는, 타입이 명시되지 않은 노드들은 프로그램, 읽는 환경에 따라 타입이 정해짐.
예시들에선 주로 fail safe schema에 있는 seq
, map
, str
사용하고
아니면 JSON schema에 있는 int
, float
, null
타입도 사용함.
!
를 사용한 태그로 타입을 명시할 수 있음.
URI나 핸들을 사용한 태그 단축 표기로 태그를 정의할 수 있음.
처리 환경에서 정의한 태그도 사용 가능함.
전체 예시