BackEnd/Spring
[Spring] YAML 이란? (Feat. JSON, XML)
ryuneng
2025. 1. 17. 12:22
반응형
📍 YAML 이란?
- 데이터 직렬화 언어
- 설정파일(구성파일) 작성에 자주 사용
- 쉽게 읽고 이해할 수 있도록 설계됨
데이터 직렬화 란?
- 객체를 네트워크 통신에 사용하기 적합한 형식으로 변환하는 것.
- 읽고 작성하기 쉬운 텍스트 형식과 컴퓨터가 쉽게 처리할 수 있는 이진형식으로 데이터를 변환하는 것
- 텍스트 기반 데이터 형식
- CSV
- JSON
- XML
- YAML (데이터 직렬화가 가능하긴 하지만, 주로 설정파일 작성을 위해서 개발됨)
📌 XML, JSON, YAML로 데이터 표현하기
1. XML로 설정정보 표현하기
- 태그를 사용해서 데이터 표현
- key : 태그이름 / value : 태그의 컨텐츠(값)
- 태그 안에 태그를 포함시켜서 부모-자식 관계를 나타냄
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<apiVersion>v1</apiVersion>
<kind>Pod</kind>
<metadata>
<name>hello-pod</name>
<labels>
<app>hello</app>
</labels>
</metadata>
<spec>
<containers>
<name>hello-container</name>
<image>sample/hello</image>
</containers>
</spec>
</root>
2. JSON으로 설정정보 표현하기
- XML에 비해 단순
- JSON은 객체 표현법과 배열 표현법을 제공하기 때문에
key-value 쌍의 데이터는 객체 표현법으로 작성하고,
value, value, value 값의 목록은 배열 표현법으로 구분해서 작성할 수 있음 - XML
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "hello-pod",
"labels": [
{"app": "hello"},
]
},
"spec": {
"containers": [
{
"name": "hello-container",
"image": "sample/hello"
}
]
}
}
3. YAML로 설정정보 표현하기
- XML이나 JSON에 비해서 더 단순하고, 가독성이 높음
- 2칸 들여쓰기를 이용해서 부모-자식 관계를 표현
tab 사용 불가
- "-"를 사용해서 배열임을 나타냄
- 콜론 뒤에는 반드시 공백 하나가 있어야 함
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container
image: sample/hello
💡 참고
- resources는 자동으로 인식해서 webapp 밑에 resources 폴더를 만들면 따로 설정하지 않아도 되지만,
resources 폴더를 만들지 않을 경우 따로 설정을 해줘야 함

< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-YAML-JSON-XML