yml / yaml 기초 및 작성법
yml / yaml
: Yami Ain't Markup Language (YAML은 마크업 언어가 아니다)
: Yet Another Markup Language
: 마크업이 아니라 데이터가 중심이라는 의미의 포맷
: 인간이 보기에 매우 이해하기 쉬운 형태로 이루어짐
yaml의 사용
: 쿠버네티스
: 도커 컴포즈
: 그외 yml을 지원하는 플랫폼
Properties vs yaml
ㆍProperties
example.jdbc.url=127.0.0.1
example.jdbc.port=3306
example.jdbc.user=user
example.jdbc.password=password
ㆍyaml
example:
jdbc:
url: 127.0.0.1
port: 3306
user: user
password: password
Yaml과 다른 포맷의 비교
: yaml의 경우 세팅에 필요한 스펙과 프로퍼티 값이 한 눈에 들어옴
: 다른 양식에 비해 파일 작성이 간편함
: map 뿐만 아니라 list 형태의 값 입력 가능
: text의 경우 자유롭게 데이터 삽입 가능
Yaml의 특징
: Key-Value 형태
: Json과 상위호환 되어 Json 시퀀스와 맵 사용 가능
ㆍ자료형
: 스칼라 (Scalar) = String 혹은 숫자
: 시퀀스 (Sequence) = 배열 혹은 리스트
: 매핑 (Mapping) = Hash 혹은 Dictionary, key-value 쌍
ㆍ문법
: block sequence는 각각의 엔트리마다 dash + space로 구성 (-과 공백)
: Key-Value의 매핑은 : 으로 구분
: 문서의 시작 = ... / 문서의 끝 = '' <선택사항>
: tab이 아닌 space bar 공백 하나로 들여쓰기
: key와 value 사이에 공백이 존재해야함
: 주석은 # 으로 구분
: 중복되는 노드의 시작 & / 끝 *
: ? + 공백 = 조건이 포함된 매핑키 선언
# 주석
hr: # 1998 hr ranking
- Mark McGwire
- Sammy Sosa
rbi:
# 1998 rbi ranking
- Sammy Sosa
- Ken Griffey
ktt:
# SS라는 라벨을 붙혀 중복되는 노드임을 선언
- &SS killing_verse
- Musinsa
nos:
# &SS로 표시한 중복 노드의 끝
- *SS Black_nut
- 69cm
# between sequence
? - MU
- TOT
:
- 2021-09-19
? [Bar, PS]
: [2021-09-18, 2019-09-16, 2018-03-04]
Refference