IaC/Terraform

YAML 이란

chanstory 2023. 1. 4. 15:04
반응형

YAML 이란

- 구조를 가진 데이터 표현 양식의 한 종류

- 사람이 읽고 이해하기 쉬운 형태를 가지고 있다.

- 파일 확장자 : .yaml 또는 .yml

 

YAML 문법

- key: value 형태로 데이터 정의

- key: (콜론) 뒤에 공백문자가 있어야 한다.

- 사용 가능 데이터 타입 : Number, String, Boolean

- 문자열에 특수문자가 포함된 경우 "" 따옴표를 사용한다.

- Boolean 값은 True/False, On/Off, Yes/No 로 작성 가능하다.

- 주석의 경우 앞에 #을 붙힌다.

#주석 입니다.
Key: Value
City: Busan
Fruits: Apple

 

1. Array/Lists

- 배열이나 리스트 구조 데이터 표현 시 - 사용

- 각 요소들의 순서가 다르다면 서로 다른 YAML 파일이다.

- [ ]도 같은 의미로 사용됨

- 대괄호 내 요소가 문자열일 경우 "" 사용

 

City:
  - Busan
  - Seoul
  - Incheon

 

2. Dictionary/Map

- 계층구조 표현 시 들여쓰기를 사용한다. (보통 2칸~4칸정도 사용함)

- 같은 수의 공백 문자를 사용하여 들여쓰기를 해야함

- 요소의 순서는 중요하지 않음

Book:
  Name: First Travel
  Quantity: 10
  Price: 20,000

 

3. Advanced

- 데이터 구조 섞어서 사용 가능

#YAML

Fruits:
	- Banana:
			Calories: 105
			Fat: 0.4g
			Carbs: 27g

	- Grape:
			Calories: 62
			Fat: 0.3g
			Carbs: 15g
#JSON 

{
  "Fruits": [
    {
      "Banana": {
        "Calories": 105,
        "Fat": "0.4g",
        "Carbs": "27g"
      }
    },
    {
      "Grape": {
        "Caloreis": 62,
        "Fat": "0.3g",
        "Carbs": "15g"
      }
    }
  ]
}

 

4. Multi-lines

- > 과 | 특수문자를 사용하여 줄바꿈을 할 수 있다.

- > : 이 문자는 한 줄을 모두 비웠을 때만 줄바꿈으로 인식을 하고, 그냥 줄바꿈을 할 때에는 공백문자로 인식한다.

 

#YAML

example1: >
  this is multiline string 
  and this is nextline 
  and nextline

example2: >
  this is multiline string 

  and this is nextline 
  and nextline
  
 #JSON 
{
  "example1": "this is multiline string  and this is nextline  and nextline\n"
}

{
  "example2": "this is multiline string \nand this is nextline  and nextline\n"
}

 

- | : 이 문자는 모든 줄바꿈을 인식하며, 마지막 문장의 끝도 마찬가지로 줄바꿈으로 인식한다.

#YAML

example1: |
  this is multiline string 
  and this is nextline 
  and nextline
  
#JSON 
{
  "example1": "this is multiline string \nand this is nextline \nand nextline\n"
}
반응형