본 포스팅은 유튜브
https://www.youtube.com/watch?v=55FrHTNjTCc
기반으로 작성되었습니다.
윈도우 메모장 그리고 Enter키가 없는 키보드가 있는 상태에서
데이터를 보내는 상황을 가정해봅시다.
신문기사라면 단순히 길어지고, 장보기 목록 등은 쉼표로 구분할 수 있습니다.
하지만, 이런 표는 어떻게 보내지게 될까요
이와같이 어떠한 구조를 가진 정보에서 어려움이 시작됩니다.
이를 어떻게 한줄로 이어지는 텍스트로 만들 수 있을지 생각해봅시다.
여기서 가장 널리 사용되는 형식이
XML과 JSON 입니다.
서비스를 구성하는 소프트웨어 사이에는 수많은 정보들이 주고받아 집니다.
사람에게는 표와같은 구조로 데이터를 보내는것이 이해하기 쉽지만
컴퓨터에게는 한줄로 쭉이어진 텍스트로 받아지기 때문에
텍스트 안에 이 구조화된 데이터를 나타낼 수 있어야 합니다.
이러한 복합적인 정보를 지닌 정보를
두 컴퓨터 즉 서버와 클라이언트 간에 주고받기 적합한
한줄의 데이터로 표현하는 방법에 XML이 사용됩니다.
대표적인 예로 HTML이 있습니다.
HTML은 XM형식으로 웹을 표현할 수 있게 만든것입니다.
문법과 용도에 다소 차이가 있지만 XML도 마찬가지 입니다.
<shop>처럼 단일로 있거나
<shop></shop> 처럼 시작과 종료 태그가 있습니다.
이 태그명이 각 데이터의 항목명이 되고 그사이에 들어가는 값이
데이터가 됩니다.
<shop>
순수데이터
</shop>
순수 데이터가 들어갈 수 도있고
또 다른 태그들이 몇겹이고 중첩으로 들어갈 수 있습니다.
이렇게 XML은 좋아보이지만 태그들이 많아져 번거롭고
한눈에 알아보기에는 그다지 가독성이 뛰어나지 않습니다.
이러한면에서 또 다른 강점을 가지는 JSON을 사용합니다.
JSON은 배열또한 표현이 가능합니다.
자바스크립트의 객체 표기법인 JSON은
보다 간결한 형태로 구조화된 정보를 표시합니다.
아래 그림은 같은 정보를 JSON으로 표현한 문서입니다.
이처럼 간결하고 작성하기 쉽기때문에
JSON이 XML을 대신해가고 있습니다.
하지만, JSON도 단점이 있습니다.
콤마 하나를 못찍거나 '['를 하나 빼먹어도 전체가 인식이 불가능해집니다.
하지만 xml는 태그가 있기 때문에 일부 오타가 있어도 컴퓨터가 읽을 수 있습니다.
xml은 또한 주석을 가질 수 있습니다.
그리고 xml은 요구되는 구조화 형태를 잘 갖췄는지 스키마를 통해
확인이 가능합니다.
엄격한 형식의 xml이 필요한 곳에서 문서를 미리 검증할 때 이용할 수 있습니다.
XML XSD를 검색하면 나옵니다.
JSON은 자체적으로 이런 기능이 없기 때문에 직접 프로그래밍 해서 만들어야 합니다.
이와같은 각각의 장단점을 비교하여
안전성이 요구되는 곳에는 XML을 (설정 파일을 작성할 때)
가격을 중시하는 곳에는 JSON이 활용됩니다.(데이터를 주고받을 때)
그렇다면 YAML이 무엇일까요?
YAML은 데이터를 한줄로 실어보내는것이 아니라
사람이 보기좋게 작성하는데 목적을 두었습니다.
파이썬과 같이 줄바꿈과 태그가 필수요소 입니다.
이를 어기면 정보가 파괴됩니다.
YAML은 주석도 사용이 가능하고
특히 상속을 사용할 수 있기 때문에 여러 데이터를 효율적으로 작성할 수 있습니다.
사용하는 사람의 편의를 우선시하는 YAML 이기 때문에 DOKER 컴포즈나 Spring 등에 많이 사용됩니다.
여기서 정리된 내용을 잘 기억하여 각각 상황에 맞는 설정파일을 선택하면 됩니다.
'프로그래밍 공부 > 컴퓨터공학 기초' 카테고리의 다른 글
쿠키(Cookie), 세션(Session), 토큰(Token) (0) | 2022.01.18 |
---|---|
인증(Authentication)과 인가(Authorization)란 무엇인가? (0) | 2022.01.17 |
TCP/IP, 3, 4Way HandShaking (0) | 2022.01.06 |
Process와 Thread (0) | 2022.01.05 |
OSI 7 Layer (계층) (0) | 2021.12.19 |