일개미 : 일상과 개발의 미학

데이터 포맷(Data Format) : XML / JSON / CSV 의 특징 및 비교 본문

Developments/CS

데이터 포맷(Data Format) : XML / JSON / CSV 의 특징 및 비교

9low_28 2022. 12. 3. 20:51
😮 데이터 포맷 ? 

시스템이 자료(데이터)를 입출력하거나 저장할 때의 데이터 구조,형식 또는 크기를 의미한다.
데이터 포맷 중에 XML / JSON / CSV 이 세가지를 비교해보자. 데이터의 종류가 단지 이 세개는 아니지만 주로 프로그래밍시 사용하는 형식들을 살펴보자.

출처 : Wise XML

 


  XML

eXtensible Markup Language 의 약자, 다목적 마크업 언어이다. 태그 등을 사용하여 데이터의 구조를 기술하는 언어이다. (우리가 보통 쉽게 접할 수 있는 마크업 언어는 HTML이다.) 고유한 문법이 있어 소프트웨어/하드웨어에 대하여 독립적으로 데이터를 처리할 수 있다. 트리 계층구조를 가지고 있으며 3가지 포맷 중에 가장 직관적이다.

 

예시 구조
<student>
 <id="1">
    <name>김철수</name>
    <age>18</age>
    <hobby>농구</hobby>
 </id>
 <id="2">
    <name>박영희</name>
    <age>17</age>
    <hobby>십자수</hobby>
 </id>
</student>

 데이터에 의미를 부여하는 메타데이터를 선언할 수 있어 정보 표현에 매우 효과적이지만, 실제 전송하는 데이터보다 메타데이터의 크기가 더 커질 수 있다는 단점이 있고, JSON이 등장한 이후로는 자주 사용되지는 않는다. 주로 단순한 게임의 옵션이나, 데이터 수정이 잦은 곳에서 사용된다.

 

*메타데이터 : 일반적으로 데이터에 관한 구조화된 데이터, 대량의 정보 가운데에서 확인하고자 하는 정보를 효율적으로 검색하기 위해 원시데이터(Raw data)를 일정한 규칙에 따라 구조화 혹은 표준화한 정보

 

 

 

 

 

 

  JSON

 JavaScript Object Notation의 약자, '(혹은 속성)-값' 형태의 쌍으로 이루어진 데이터 객체를 전달하기 위해 인간이 읽기 쉬운 텍스트 형태를 사용하는 개방형 표준 포맷이다. 서버-클라이언트 간 통신을 위해 현재 주목받고 있는 XML을 대체하는 주요 데이터 포맷이다.

 

예시 구조
{
  "student": [
 	 {
     	"id":1,
    	"name":"김철수",
    	"age":18,
    	"hobby":"농구"
 	 },
 	 {
        "id":2,
    	"name":"박영희",
    	"age":17,
    	"hobby":"십자수"
 	 }
   ]
}​

 자료 종류에 따른 큰 제한이 없어 프로그래밍시 변수의 값을 표현하는데 적합하게 사용되고 있다. 보통은 순서를 나타내는 인덱스 값을 기준으로 데이터를 찾는 형태로 구성 및 사용된다. 콤마나 쌍따옴표 등의 누락, 잘못된 중괄호의 위치 등 문법 오류에 취약하다는 단점이 있지만, 모양과 규칙이 단순하여 타 언어에서도 구현하기가 쉽다는 장점으로 요즘은 REST API에서 가장 많이 사용된다.

 

 

 

 

 

 

  CSV

 Comma Deparated Value의 약자, 쉼표를 기준으로 항목을 구분하여 저장하는 데이터이다. 용량이 가장 작고, 데이터베이스나 보통 표 계산 소프트웨어의 데이터를 보존하기 위해 사용되는 형식이다. 각 항목이나 내용마다 쉼표(comma)로 구분하여 기록하며, 이 형식은 텍스트 파일로 추출하여 문서 처리기 혹은 편집기에서 열람하고 편집할 수 있다. 예시로는 엑셀에서도 CSV 파일로 저장이 가능한 것을 들 수 있겠다.

 

예시 구조
id, name, age, hobby
1, 김철수, 18, 농구
2, 박영희, 17, 십자수​

위 구조는 변하지 않는 많은 양의 데이터를 제공할 때 주로 사용된다. 특히 연락처(전화번호부) 정보를 파일로 내보낼 때 많이 보이는 형식이다. 데이터 오염에 있어 굉장히 취약한 포맷이지만, 용량이 가장 작다는 장점이 있다. 또한 데이터가 많아지면 데이터에 대한 항목을 구별하기가 어렵다. 간단한 테이블 작성 또는 읽기 속도가 중요한 부분에서 사용된다.

 

 

 

 

 

 

🔖  요점 정리

구분 / 언어 XML JSON CSV
장점 • 3가지 포맷 중 가장 직관적
 메타데이터의 선언으로 정보 표현에서  효과적
 모양과 규칙이 단순
 타 언어에서도 쉽게 구현 가능 
 용량이 가장 낮음
 변하지 않는 많은 양에 데이터 제공시 활용
단점  실 데이터보다 메타데이터의 크기가 더 커질 가능성
 콤마나 중괄호에 따른 문법 오류에 취약  데이터 양에 따른 가시화의 반비례성
주 사용처 단순 게임 옵션, 직접적인 데이터 수정이 잦은 부분에서 사용 서버-클라이언트 간 통신시 REST API에주로 사용 간단한 테이블 작성, 읽기 속도가 중요한 부분에서 사용

 

 

 

 

 

 


 

* 참고 문헌

 

JSON이란 무엇인가?

JSON을 이용하는 프로그래머, 개발자, IT 전문가들은 어떤 언어에서든 데이터 구조와 실제 데이터를 다른 언어 및 플랫폼에서 해석 가능한 형식으로 전송할 수 있습니다.

www.oracle.com

 

[팁] XML, JSON, CSV

안녕하세요. 딩딩입니다. 게임을 만들거나 업무를 함에 있어서 자주 보는 데이터 포맷 세 가지입니다. 어떤...

blog.naver.com

 

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

각 포맷 장단점 및 비교 데이터 크기 : XML > JSON > CSV XML JSON CSV 장점 ‣ XML은 3가지 포맷중 가장 직관적이다. ‣ 메타 정보를 제공해서 정보 표현 이상의 효과를 가져올 수 있다. ‣ 모양과 규칙 자

loosie.tistory.com