본문 바로가기

블로그/기타

[YAML] 기본 문법

들여쓰기(indent)

들여쓰기는 기본적으로 2칸 또는 4칸이다. 2칸을 일반적으로 사용한다.

person:
  name: SEONGSU KIM
  job: Data Scientist
  skills:
    - docker

 

데이터 정의 (Map)

데이터는 Key: value 형식으로 정의한다. 여기서 중요한 것은 key: 다음에 한 칸을 띄워줘야 한다는 것이다.

person:
  name: Chungsub Kim
  job: Developer
  skills: 
    - docker
    - kubernetes

 

아래 Skills에 "-"이 배열로 표시되고 있다. 이는 json 구조에서 , "Skills" :["docker", "kubernetes"]에 해당하는 구조이다.

개인적으로 YAML 구조가 json보다 직관적인것 같다.

 

주의해야 할 점은 "-" 다음에 띄워쓰기를 넣어 줘야 한다는 점이다.  쿠버네티스의 오류의 대부분은 YAML 문법의 오류니 띄워쓰기를 주의하자.

study_hard: yes
give_up: no
hello: True
world: TRUE
manual: false

 

또한, YAML은 yes/no 또한 TRUE/FALSE로 지원을 하며 대소문자에 상관없이 지원한다. 따옴표로 감싸지 않고, yes no를 입력하면 TRUE/FALSE가 된다. 그래서 아래 처럼 string으로 표시하고 싶다면 따옴표로 감싸주자.

 

# number
version: 1.2

# string
version: "1.2"

 

줄바꿈은 일반적으로 \n으로 입력되는데, YAML에서는 "|" 나 ">"를 활용한다. 

newlines_sample: |
            number one line

            second line

            last line

 

or ">"는 중간에 들어간 빈줄은 제외시킨다.

 

newlines_sample: >
            number one line

            second line

            last line

 

예제:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-mysql
  Labels:
    app: wordpress
spec:
  selector:
    ..
    ..
    ..
    ..
    ..
      spec:
        containers:
          - image: mysql:5.6
            name: mysql
            env:
              - name: NYSQL_ROOT_PASSWORD
                value: passwword
             ports:
               - containerPort: 3306
                 name: mysql
               - containerPort: 3307
                 name: mysql
 ---
 
 
 
 
 ---

 

 

주의 사항

1) Key와 value 사이에는 빈칸이 필요함

2) ":"을 들어가면 다르게 인식함 따라서, 문자열으로 표현하고 싶으면 " " 따옴표를 활용함.

 

YAML이 어색하고, json이 편한 경우, json to YAML 컨버터(json2yaml)와 문법을 체크해주는 YAML Lint가 있다.

https://www.json2yaml.com/

http://www.yamllint.com/

'블로그 > 기타' 카테고리의 다른 글

[Git] 3 way merge  (1) 2024.01.10
[Git] git stage area + log + diff + reset  (2) 2024.01.08
[Git] init - add - commit - log  (1) 2024.01.08