Tip!✨

XML / JSon / YAML

hae02y 2023. 7. 21. 17:13
반응형

직렬화 형식 도구

타 시스템과 데이터를 주고받을때 연동을 위해 정해진 데이터 형식에 대한 약속이 필요하다. 각자 자기 서비스에서 사용하는 데이터포맷을 사용해서 만들게 되면 문제가 발생하기 때문이다.

 

이를 위해 필요한것이 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을 권장한다.

 

 

참고

[사용방법]

[Json vs Xml]

 

 

반응형