YAML은 사람이 읽기 쉬운 데이터 직렬화 포맷 중 하나이다. YAML은 주로 구성 파일을 작성하거나 시스템 간 데이터를 전송할 때 사용되며, JSON이나 XML과 같은 다른 데이터 직렬화 포맷과 비슷한 목적을 가지고 있다. YAML은 특히 간결한 문법과 높은 가독성을 특징으로 하여, 복잡한 데이터 구조를 쉽게 표현할 수 있다.
데이터 직렬화는 데이터를 특정 포맷으로 변환하여 저장하거나 전송하는 과정이다. 예를 들어, 애플리케이션 간에 데이터를 주고받을 때, 데이터를 직렬화된 형태로 변환하여 전송하고, 수신 측에서 다시 역직렬화하여 원래의 데이터 구조로 복원한다. 이 과정은 네트워크 통신이나 파일 저장 등에서 중요한 역할을 한다.
데이터 전송을 목적으로 하는 다른 포맷인 JSON이나 XML에 비해 사람이 더욱 읽기 쉬운 형태를 가진다
(비교 사진)
YAML 파일은 recursive한 key와 value의 쌍으로 구성된다.
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: busybox
image: busybox:1.25
metadata라는 key 내부에는 name이 있으며, 이 부분은 또 name을 key로 하는 value인 example이 있다.
YAML 파일에서는 space를 사용하여 들여쓰기를 나타내어야 한다. tab을 사용하면 들여쓰기가 인식되지 않는다.
같은 계층에 존재하는 key와 value라면 당연히 같은 횟수만큼 들여쓰기를 수행해야 한다.
#를 각 줄의 맨 앞에 작성하면 주석으로 처리된다.
string은 문자열을 나타내는 자료형이다.
일반적인 문자열은 그냥 작성해도 되고, 따옴표로 감싸도 된다.
다만 숫자를 문자열로 지정하는 경우, y, yes, true 등의 YAML 예약어와 동일한 경우, 각종 특수 문자를 포함하는 경우에는 반드시 따옴표로 감싸야 한다.
integer는 정수를 나타내는 자료형이다.
float는 실수를 나타내는 자료형이다.
boolean은 true 또는 false를 나타내는 자료형이다.
-를 사용하면 list를 명시할 수 있다.
[ ]를 사용해도 된다.
list의 원소에는 어떤 자료형이든 들어올 수 있다.
--- 라는 구분선을 이용하면 하나의 yaml 파일에 여러 개의 yaml 문서를 작성할 수 있다.