# [데이터 포멧] Xml, Json, Yaml, Csv 정리

# **데이터 포멧이란**

> 시스템이 자료를 입출력하거나 기억할 때의 데이터 크기 또는 구조

## **데이터의 형태**

* 테이블 형태의 데이터
    
    * 도표 형태로 되어있는 데이터로 엑셀 시트를 생각하면 편하다
        
* 재귀적 형태의 데이터
    
    * 동일한 데이터 구조의 더 작거나 단순한 인스턴스로 부분적으로 구성된 데이터 구조이다. JSON 포멧을 떠올리면 편하다.
        
    * 데이터 직렬화가 이루어지는 포맷이 많다
        

# **데이터 포맷의 종류**

### **XML (Extensible Markup Language)**

|  | 내용 |
| --- | --- |
| 정의 | 데이터를 정의하는 규칙을 제공하는 마크업 언어로 구조적 데이터 관리를 위해 모든 프로그래밍 언어 또는 소프트웨어를 구현할 수 있다. |
| 특징 | \- 코드가 tag 형태로 되어있어 HTML과 비슷하다. (다만 HTML처럼 예약어는 없다) |

### **JSON (JavaScript Object Notation)**

|  | 내용 |
| --- | --- |
| 정의 | JavaScript 객체 리터럴, 배열, 스칼라 데이터를 표현하는 텍스트 기반의 방식의 데이터 포멧이다. |
| 특징 | \- 자바스크립트 객체 형태로 되어있으며, undefined 외의 타입을 담을 수 있다. |

### **YAML (Yet Another Markup Language)**

|  | 내용 |
| --- | --- |
| 정의 | 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어이다. |
| 특징 | \- 사람이 읽기 편한 형태에 집중한 데이터 포멧(또는 언어)이다. |

### **CSV(Comma Separated Values)**

|  | 내용 |
| --- | --- |
| 정의 | 몇가지 필드를 쉼표로 구분한 텍스트 데이터이다. |
| 특징 | \- 콤마로 구분 짓는다. |
