본문 바로가기

Dot ./개인 공부 기록용

데이터 포맷 설명 및 비교 (XML, JSON, CSV)

    각 포맷 장단점 및 비교

    데이터 크기 : XML > JSON > CSV

     

      XML JSON CSV
    장점 ‣  XML은 3가지 포맷중 가장 직관적이다.
    ‣ 메타 정보를 제공해서 정보 표현 이상의 효과를 가져올 수 있다.
    ‣  모양과 규칙 자체가 단순해서 타 언어에서도 구현하기가 쉽다.  ‣  용량이 가장 작다.
    ‣  csv는 용량이 작기 때문에 변하지 않는 많은 양의 데이터를 제공할 때 주로 이용이 가능하다.
    단점 ‣  실제 전송하는 정보보다 메타 데이터의 크기가 더 커질 수 있다. ‣  콤마가 누락되거나 중괄호가 잘못 닫히는 등 문법 오류에 취약하다. ‣  데이터가 많아지면 어떤 데이터가 항목을 나타내는지 가시화가 어렵다.
    주요 사용처 단순 게임 옵션, 직접 데이터 수정이 잦은 부분에 사용  서버 통신 REST API를 사용할 때 가장 많이 사용. 간단한 테이블 작성 또는 읽는 속도가 중요한 부분에서 사용

     

    XML

    XML은 데이터를 표현하기 위하여 많이 사용되어 온 방식으로 HTML과 흡사한 구조를 가지고 있다. XML이 가지는 고유한 문법이 있다는 점에서 소프트웨어 및 하드웨어에 대하여 독립적으로 데이터를 처리할 수 있다. 다목적 마크업 언어로 태그 등을 이용하여 데이터의 구조를 기술하는 언어이다.

     

    XML 특징

    • 꺽쇠(<>) 사용
    • 트리(Tree) 계층 구조
    • 루트(Root)요소부터 시작해 여러개의 자식을 계층적으로 포함

    또한 XML은 유효성 검증(Validation)을 통해서 올바르게 작성되었는지 확인할 수 있다. (링크)

    XML 예시

    <?xml version="1.0" encoding="UTF-8"?>
    <users>
      <user>
        <name>홍길동</name>
        <score>95</score>
        <hobby>
          <element>Soccer</element>
          <element>Ninza</element>
        </hobby>
      </user>
    
      <user>
        <name>이순신</name>
        <score>100</score>
        <hobby>
          <element>Sing</element>
          <element>Dancing</element>
        </hobby>
      </user>
    </users>

     

    JSON

    JSON 형식은 XML과 비슷하게 데이터를 처리하기 위한 형식으로, '속성- 값 쌍' 또는'키 -값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위한 인간이 읽을 수 있는 텍스트를 사용하는 개방형 포준 포맷이다. 서버 통신을 위해 넓게는 XML을 대체하는 주요 데이터 포맷이다.

     

    JSON 특징

    • 일반적으로 서버와의 통신 규약인 REST API를 사용할 때 가장 많이 사용
    • 최근에는 XML보다 더 많이 사용
    • 모든 프로그래밍 언어에서 JSON형식 지원

    그러나, 주석을 사용하지 못한다는 단점이 있다.

    JSON 예시

    {
    	"users": {
    		"1": {
    			"name": "홍길동",
    			"score": 95,
    			"hobby": ["Soccer", "Ninza"]
    		},
    
    		"2": {
    			"name": "이순신",
    			"score": 100,
    			"hobby": ["Sing", "Dancing"]
    		},
    	}
    }

     

    CSV

    CSV 형식은 쉼표를 기준으로 항목을 구분하여 저장한 데이터를 말한다. DB나 표 계산 소프트웨어 데이터를 보존하기 위해 이런 형식을 사용한다. 각 항목이나 판매 내용마다 쉼표(comma)로 구분하여 기록한다.

     

    CSV 특징

    • 각 항목이나 판매 내용마다 쉼표(,)로 구분하여 기록
    • 텍스트 파일로 보존하여 문서 처리기나 편집기에서 열람, 편집할 수 있음
    • 데이터 오염에 대단히 취약한 포맷을 가짐
    • 데이터 크기가 매우 작음 (JSON이 CSV에 비해 2~3배 더 크다)

    CSV 예시

    no, name, score, hobby
    1, 홍길동, 95, (Soccer,Ninza)
    2, 이순신, 100, (Sing,Dancing)