[ETC] YAML 문법 정리

2024. 5. 21. 13:32·ETC/ETC
728x90

 

YAML

사람이 읽기 쉬운 데이터 직렬화 형식
주로 설정 파일과 데이터 저장에 사용됨.

 

 

개요

 

  • YAML은 데이터 직렬화 포맷(data serialization formats)이다.
  • YAML은 원래 "Yet Another Markup Language"의 약어로 시작되었으나 YAML의 주된 목적이 단순 마크업(MarkUp)이 아닌 데이터를 직렬화하는 것이 강조되면서 "YAML Ain't Markup Language"라는 재귀적 약어로 변경되었다.
  • 확장자는 .yaml 을 사용한다.

 

 

문법

 

 

1. 들여쓰기(Indent)

  • YAML에서 들여쓰기는 기본적으로 2칸 또는 4칸을 지원함. (space Indent)
  • Space Indent 기준으로 2칸을 표준적으로 가장 많이 씀.
# 2칸 인덴트
metadata:
  name: python-sample-deployment
  namespace: default
  
# 4칸 인덴트
metadata:
    name: python-sample-deployment
    namespace: default

 

 

 

2. 데이터 정의(map)

  • 데이터는 Key:value 형식으로 정의함
  • ':'으로 구분 후 1칸을 띄운 후 value를 기입한다.
# <Key>: <value>
name: python-sample-deployment

 

 

3. 배열 정의(array)

  • 배열은 '-'으로 개별 줄에 나열 할 수 있고 '[]'으로 한줄로 표현할 수 있다.
# 여러 줄로 표현
lang: 
  - python
  - java
  - php
  
# 한줄로 표현
lang: [python,java,php]

 


4. 주석(comment)

  • #을 사용함.
# 이건 주석이다.
name: python-sample-deployment

 

 

5. 참/거짓, 숫자 표현

  • true, false(대소문자 구분 X) 이외에도 yes, no도 지원함.
# true, false, yes, no 모두 사용 가능하다.
chk: true
chk: false
chk: yes
chk: no

 

  • 숫자는 따옴표(")로 감싸면 문자열(string)으로 인식한다.
version: 1.2 # Number Type
version: “1.2” # String Type

 

 

6. 줄바꿈(newline)

  • 리터럴 스타일 (Literal Style) : “|” 지시어는 마지막 줄바꿈이 포함된다.
  • 폴디드 스타일 (Folded Style) :  ”>” 지시어는 중간에 들어간 빈줄이 제외된다. 
  • 리터럴 스타일 (Literal Style)  - 블록 스칼라: “|-” 지시어는 마지막 줄바꿈을 제외된다.

 

 

주의사항

  • key와 value 사이에는 반드시 빈칸이 필요하다. (1. 들여쓰기(Indent) 내용 참고)
  • 콜론(:)이 들어간 문자열을 포함하려면 반드시 따옴표로 감싼다.
name:python-sample-deployment # (X) 잘못된 문법: key/value 사이에는 간격이 필요하다.
name: python-sample-deployment # (O) 옳은 문법

score: 6:2 # (X) 잘못된 문법: 콜론(:)을 문자열로 사용하려면 따옴표로 감싸야 한다.
score: "6:2" # (O) 옳은 문법

 

 

Tip !

 

 

  • json2yaml : json 포맷을 YAML으로 변환하는 사이트
 

JSON to YAML Online Converter

Convert JSON to YAML and slim down your data with the json2yaml online editor

www.bairesdev.com

 

  • yaml Lint: yaml 문법 점검 사이트 
 

YAMLlint - The YAML Validator

 

www.yamllint.com

 

 

 

참고 사이트

 

  • 인프런 - 초보를 위한 쿠버네티스 안내서(subicura) 강의 내용

 

 

 

 

※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.

 

 

* CopyRight 2024. Jay Park All rights reserved.

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'ETC > ETC' 카테고리의 다른 글

[Tech] AI가 해주는 코드리뷰 - CodeRabbit  (0) 2025.05.08
[Tech] 순수 프로그래밍 시간 측정(wakatime)  (0) 2025.05.07
[CI/CD] Jenkins Build 결과 발송 [Slack]  (0) 2024.01.17
[CI/CD] Jenkins Build 결과 발송 [Email]  (0) 2024.01.13
[CI/CD] Jenkins Job을 수행하는 유저 변경  (0) 2024.01.13
'ETC/ETC' 카테고리의 다른 글
  • [Tech] AI가 해주는 코드리뷰 - CodeRabbit
  • [Tech] 순수 프로그래밍 시간 측정(wakatime)
  • [CI/CD] Jenkins Build 결과 발송 [Slack]
  • [CI/CD] Jenkins Build 결과 발송 [Email]
dev.parkjh
dev.parkjh
Jay Blog. Github: https://github.com/GreatPark96
  • dev.parkjh
    0과 1을 공부하다.
    dev.parkjh
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • Profile (2)
      • Paper (6)
      • Column (3)
      • Project (8)
        • Smart Home (3)
        • 3D Printing (5)
      • Front-End (0)
        • Web (3)
      • Back-End (8)
        • API (1)
        • DB (1)
        • Laravel (4)
      • Language (16)
        • Kotlin (11)
        • C, C++ (3)
        • JAVA (0)
        • python (2)
      • System (28)
        • Server (15)
        • Security (1)
        • Network (1)
        • Linux (8)
        • Cloud (3)
      • ETC (34)
        • Book Recommend (Computer) (3)
        • IoT (7)
        • BlockChain (7)
        • ETC (17)
      • My YOLO (1)
      • Note (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    NAS HDD교체
    Kotlin
    docker
    git
    nas
    3d프린터 초보
    ci/cd
    3D프린터
    github
    3D
    ncp container registry
    work hour
    네이버클라우드
    3D프린터 입문
    데이터 직렬화 포맷
    C언어
    Database
    data serialization formats
    코틀린개발환경
    리눅스 파일동기화
    Notification
    docker private register
    ai code review
    coderabbit
    docker container
    Jenkins
    linux job
    3D모델링
    kubernetes
    gitlab
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.parkjh
[ETC] YAML 문법 정리
상단으로

티스토리툴바