본문 바로가기
프로그래밍/기타

YAML

by hustle-ing 2023. 6. 4.

YAML

Yet Another Markup Language의 약자로 사람이 읽을 수 있는 데이터 직렬화 언어를 의미한다. 파일로 작성 시 확장자는 .yaml 혹은 .yml 확장자를 가진다. YAML은 사람이 읽을 수 있고 이해하기 쉬워 프로그래밍 언어 중에서도 인기가 높다. 또한 다른 프로그래밍 언어와 함께 사용할 수도 있다. YAML은 그 유연성과 접근성으로 인해 자동화 프로세스를 생성하는 데에도 사용된다.

 

 

JSON vs YAML

JSON

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": [
        "Radiation resistance",
        "Turning tiny",
        "Radiation blast"
      ]
    }
  ]
}

YAML

name: Bare Minimum Requirements
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Bare Minimum Requirements
        uses: actions/setup-node@v1
        with:
          node-version: '16'
      - run: npm install
      - run: npm test

 

JSON 파일과 YAML 파일 모두 key-value 형태로 작성된 파일이며, 계층 구조를 가지는 것은 동일하다. { }와 " " 없이 문자열 작성이 가능하고, 주석을 작성할 수도 있다는 점 때문에 YAML이 JSON의 상위 호환 격이다. 기존 JSON 문서를 그대로 YAML파일로 사용하거나 원하는 부분만 손볼 수도 있으며, 반대로 YAML을 JSON으로 변환해 사용할 수도 있다는 점이 장점이다.

 

 

YAML 문법

YAML도 일종의 프로그래밍 언어이기 때문에 문법이 있다. 해당 문법을 지켜 작성하지 않으면 YAML 파일로 읽지 못하기 때문에, 문법을 잘 지켜줘야 한다.

 

주석, 문서의 시작과 끝

# : 주석

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

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

들여쓰기 : 들여쓰기는 기본적으로 2칸 또는 4칸을 지원한다. 보통 2칸씩 들여쓰는 것을 추천한다. 탭키가 아닌 스페이스키를 이용한다.

#이런 식으로 주석을 작성할 수 있습니다.

--- #문서 시작

#이 사이에 내용이 들어갑니다.

... #문서 끝

 

기본표현

key: value이며, : 다음에 무조건 공백 문자가 와야한다.

 

자료형

int, string, blooean, 리스트, 매핑을 지원한다.

여기서 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를 작성 후 중괄호로 한 번 묶고 key-value 형태로 작성한다.

key: 
  key: value
  key: value

#또는 이렇게도 작성합니다. 가독성을 위해 사용합니다.
key: {
  key: value,
  key: value
}

 

Text

줄바꿈 표현( | )과 줄바꿈 무시 표현( > )이 있다.

# |는 줄바꿈 표현입니다.
# JSON 형식의 "comment_line_break": "Hello codestates.\nIm kimcoding.\n"과 같습니다.
comment_line_break: |
  Hello codestates.
  Im kimcoding.

# >는 줄바꿈 무시 표현입니다.
# JSON 형식의 "comment_single_line": "Hello world my first coding."과 같습니다.
comment_single_line: >
  Hello world
  my first coding.

 

문자열 따옴표

key-value 쌍에서 value에 : 가 들어간 경우에는 반드시 따옴표가 필요하다.

# error가 납니다.
windows_drive: c:

# 이렇게 써야 합니다.
windows_drive: "c:"
windows_drive: 'c:'

'프로그래밍 > 기타' 카테고리의 다른 글

git 명령어 모음  (0) 2023.06.12
Github action으로 CI/CD 구축하기  (0) 2023.06.05
CI / CD  (0) 2023.06.03
WAI-ARIA  (0) 2023.04.27
웹 접근성  (0) 2023.04.27

댓글