프로그래밍/IT 이것저것

XML, JSON, YAML이 뭔가요?

이자다 2023. 7. 30. 11:46
반응형

https://www.youtube.com/watch?v=55FrHTNjTCc 

 

아직 웹개발 등을 제대로 배우지 못해 이 개념들에 대해 서툴렀는데 이를 바로잡아주는 영상이었다.

 

클라이언트가 지도에서 어떤 가게를 클릭하면 이 요청을 서버에 보내고, 서버는 해당 가게의 정보를 보내게 되는데 그때 사용하는 파일의 형식이 xml과 json이다.

 

이 형식들로 작성된 파일은 전송할 때 minifier 과정을 거쳐서 엔터와 탭(여백)을 전부 제거해 한줄의 코드로 만들어 보낸다. 사람과 다르게 컴퓨터는 이런 형식을 읽어들이는데 전혀 불편함이 없다.

 

xml은 사람이 보기엔 가독성이 떨어지고 태그를 일일이 열고닫는 등 작성에 굉장한 불편함이 있는 반면 json은 훨씬 간략하다. xml에 비해서 간결하고 작성하기가 쉽다. 그래서 요즘 많은 분야에서 점점 xml이 쓰이던 곳을 json이 대체하고 있다.

 

하지만 json은 콤마 하나, 괄호 하나 틀리게 작성하면 오류로 파일을 읽을 수 없다.

 

반면 xml은 열고닫는 태그 하나를 잘못 작성해도 그 부분만 읽을 수 없어서 오타 등이 있어도 꽤나 잘 동작하게 된다. 그리고 xsd 파일에 xml에 요구되는 구조와 형태를 작성하면 xml을 작성할 때 이를 검증할 수 있게 된다. 

 

특히 json과 다르게 주석을 달 수 있는 것 또한 xml이 가진 강점이다.

 

이와 같은 장단점을 고려해서 안정성이 요구되는 곳에는 xml, 가벼움을 중시하는 곳에는 json이 활용된다.

 

 

 

yaml은 xml과 json과 다르게 데이터를 한줄로 실어보내지 않고 사람이 읽기 편하게 작성하는 것에 목적을 둔다.

 

줄바꿈고 태그가 python처럼 필수이기 때문에 xml과 json 처럼 Minifier를 하지 않는다.

 

주석도 사용 가능하고 상속을 사용해서 여러 데이터를 효율적으로 표현 가능하다.

 

쓰고 있는 사람의 편의를 최우선시 하기 때문에 docker compose나 spring 등의 설정 파일에 사용된다.

 

 

반응형