Yet Another Markup Language. 사람이 읽을 수 있는 데이터 직렬화 언어

.yaml 혹은 .yml 확장자


JSON vs YAML

JSON 파일과 YAML 파일은 key-value 형태로 작성된 파일, 계층 구조를 가짐

  • YAML
    • "" 없이 문자열 작성 가능
    • {} 형태로 감싸줄 필요 없음
    • 주석 작성 가능
    • yaml을 json으로 변환해 사용 가능

YAML 문법


# - 주석

--- - 문서의 시작 (선택사항)

... - 문서의 끝 (선택사항)

key: value - 기본표현, : 다음 부조건 공백

자료형


int, string, boolean, 리스트, 매핑 지원

int와 string 타입은 스칼라(Scalar), 배열 혹은 리스트는 시퀀스(Sequence)

매핑은 기본 표현인 key-value 쌍 및 hash, dictionary 포함

#int(숫자)
int_type: 1

#string(문자열)
string_type: "1"

#blooean(참/거짓)
boolean_true_type: true
boolean_false_type: false

#이외에 yes, no로 작성하기도 합니다.
yaml_easy: yes
yaml_difficult: no

#리스트(배열 형태)
person:
  name: Chungsub Kim
  job: Developer
  skills: 
    - docker
    - kubernetes
  # JSON 형식의 "skill" : [docker, kubernetes]와 같습니다.

객체


key: 
  key: value
  key: value

# 혹은

key: {
  key: value,
  key: value
}

Text


# | - 줄바꿈 

comment_line_break: |
  Hello 
  Im dK

# JSON - "comment_line_break": "Hello \nIm dK\n"

# > - 줄바꿈 무시

comment_single_line: >
  Hello 
  Im dK

# JSON - "comment_single_line": "Hello Im dK"

문자열 따옴표


windows_drive: d:
# 에러남

# 이렇게 쓰렴
windows_drive: "d:"
windows_drive: 'd:'

YAML 사용법 및 실제 사용 사례

설정 파일(configure file 등)에 사용

spring boot, github action 등 다양한 CI/CD 툴이나 프레임워크에서 사용

댓글남기기