YAML 에 대해 알아보자

쿠버네티스를 배우면서 본격적으로 사용하는 환경이 YAML이기에 간단하게 정리해보는 YAML 문법이다.

기본문법

문서의 시작과 끝

문서의 시작은 - - - 를 적으면 되며, 선택 사항이다. 문서의 끝은 . . . 를 적으면 되며, 선택 사항이다.

들여쓰기(indent)

들여쓰기는 2, 4칸을 지원한다.

# 2칸버전
data:
  name: Paul
  age: 31
  job: Backend Developper
  skills:
    - JAVA
    - docker
# 4칸버전
data:
    name: Paul
    age: 31
    job: Backend Developper
    skills:
        - JAVA
        - docker

데이터 정의(map)

데이터는 키와 값의 형식을 띄고 있다.

# 2칸버전
data:
  name: Paul
  age: 31
  job: Backend Developper
  skills:
    - JAVA
    - docker

객체 표현

기본적으로 특정 키 아래에 새로운 키와 값으로 구성된다.

key: 
  subKey1: value
  subKey2: value

# 객체 처럼 감싸기도 가능
key2: {
  subKey1: value, 
  subKey2: value  
}

배열 정의(array)

배열은 하이픈을 활용해서 작성이 가능하다. 또한 리스트 식으로 대괄호로 묶는 방법도 있다.

# 2칸버전
data:
  name: Paul
  age: 31
  job: Backend Developper
  skills:
    - JAVA
    - docker
  skills2: [
    item1, item2  
]

주석(comment)

# 주석은 샵을 활용한다. 

표현 방식

  1. 참 거짓 표현이 가능하고, true, false, 외에 yes, no 를 지원한다.
study_hard: yes
give_up: no
hello: True
world: TRUE
manual: false
  1. 숫자 : 정수 또는 실수로, 따옴표 없이 사용하면 인식 한다.
# number 
version: 2.0

# 문자열 표현
version: "2.0"

개행

여러줄 적어야 할 경우가 있는데 이럴때 사용한다.

new_line_test: |
			first line 
			
			second line
			
			third line
			

위의 내용을 json으로 변환하면 다음과 같다.

{
  "new_line_test": "first line \n\nsecond line\n\nthird line\n"
}

이때 바리에이션이 있다.

마지막 개행 삭제

# 마지막 줄바꿈 제외
new_line_test: | -
			first line 
			
			second line
			
			third line
			
{
  "new_line_test": "first line \n\nsecond line\n\nthird line"
}

중간 개행 삭제

# 중간에 들어간 빈줄은 삭제
new_line_test: >
			first line 
			
			second line
			
			third line
			
{
  "new_line_test": "first line \nsecond line\nthird line\n"
}

주의사항

띄워쓰기

key 와 value 사이에는 반드시 빈칸이 필요하다.

# error (not key-value, string)
key:value

# ok
key: value

문자열 따옴표 사용

일반적으로 따옴표 없이 문자열 작성하면 자동으로 인식이 되나, : 가 들어가는 값은 반드시 따옴표로 감싸줄 것

# error
windows_drive: c:

# ok
windows_drive: "c:"
windows_drive: 'c:'

참고 사항

JSON to YAML

링크 말 그대로 변환해주는 사이트. 내용 체크용으로 훌륭해 보임

YAML Lint

링크 문법적으로 문제가 있는지 확인이 가능한 사이트