반응형
직렬화 형식 도구
타 시스템과 데이터를 주고받을때 연동을 위해 정해진 데이터 형식에 대한 약속이 필요하다. 각자 자기 서비스에서 사용하는 데이터포맷을 사용해서 만들게 되면 문제가 발생하기 때문이다.
이를 위해 필요한것이 XML , JSon 등의 데이터 직렬화 형식이다.
XML / JSon / YAML
XML
<guests>
<guest>
<firstName>John</firstName> <lastName>Doe</lastName>
</guest>
<guest>
<firstName>María</firstName> <lastName>García</lastName>
</guest>
<guest>
<firstName>Nikki</firstName> <lastName>Wolf</lastName>
</guest>
</guests>
1998년에 초기버전을 릴리스한 데이터 직렬화 도구로, Extensible Markup Language의 약자이다. SGML에서 파생되었다.
위에서 보이듯이 태그 구조로 작성되어있으며 트리구조로 데이터를 저장한다. 태그를 통해서 Key를 작성하고 Value를 넣어주는 형식이고 Obect와 Array의 구분이 잘 안된다.
JSon
{"guests":[
{ "firstName":"John", "lastName":"Doe" },
{ "firstName":"María", "lastName":"García" },
{ "firstName":"Nikki", "lastName":"Wolf" }
]}
2001년에 릴리스한 데이터 직렬화 도구이다. JSon은 JavaScript Object Notation의 약자로 XML에 비해 간단하게 작성이 가능하다. key-value 가 쌍을 일루는 맵과 유사한 구조로 이루어져있다.
Object일 경우 { } 로 감싸고, Array일 경우 [ ]로 감싸준다.
YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
사람이 가장 보기 좋은 데이터 형식인것 같다. 줄바꿈과 탭이 필수로 들어가야한다.
일반적인 key-value형식이 들어가고 Object의 자식은 " " 공백으로 구분하고, Array의 경우 - 를 통해 구분한다.
개발시스템 설정파일 등을 세팅할때 Config.properties 에서 yaml로 바꿔서 사용하는 경우도 많다. 쿠버네티스에서도 yaml을 권장한다.
참고
반응형