[YALM] YALM은 무엇인가

LMH·2023년 2월 4일
0

이번 포스팅에서는 프로그래밍 언어인 YAML에 대해서 정리하겠습니다.

YAML이란?

YAML은 Yet Another Markup Language의 약자로, 사람이 읽은 수 있는 데이터 직렬화 언어입니다. 혹자는 YAML ain't markup language라 이야기하는 사람도 있습니다. 즉 YAML은 문서가 아닌 데이터를 위한 언어라는 의미입니다. YAML은 .yaml 또는 .yml 확장자를 가집니다.

데이터를 주고 받을 때 사용하는 언어는 XML, JSON 등 이 있습니다. YAML은 어떤 필요에 의해서 탄생하게 되었을까요? 우선 YAML의 특징을 살펴보면 그 이유를 알 수 있습니다. YAML은 JSON 처럼 데이터를 key-value 형태로 작성합니다. 그러나 ""와 {} 등이 없이 작성할 수 있기 때문에 한눈에 데이터를 확인할 수 있습니다.

또한, 개인적으로 YAML의 가장 큰 장점은 주석을 달 수 있어 데이터를 주고 받을 때 부가적인 설명을 덧붙일 수 있다는 것 입니다. 이것은 데이터를 주고 받는 개발자의 의사소통에 큰 영향을 줄 수 있습니다. 그렇기에 YAML은 JSON보다 기능이 확장된 언어라 할 수 있습니다.

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

YAML 문법

문장 시작, 끝, 주석

문장의 시작과 끝을 나타낼 수 있으며 이는 선택사항입니다. 그리고 들여쓰기를 할 경우 2칸 또는 4칸을 지원하며 스페이스키를 사용해야합니다. 그리고 '#'을 이용하여 석을 달 수 있습니다.

--- : 문서의 시작 (선택사항)
... : 문서의 끝 (선택사항)
# : 주석

--- # 문서 시작
작성 내용
... # 문서 끝

기본 표현

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

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를 작성 후 중괄호({})로 한 번 묶고 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

문자열 따옴표

# 잘못된 표현
windows_drive: c:

# 올바른 표현
windows_drive: "c:"
windows_drive: 'c:'
profile
새로운 것을 기록하고 복습하는 공간입니다.

0개의 댓글