컴공생의 다이어리
데이터 포맷(XML, JSON, CSV) 본문
데이터 포맷(XML, JSON, CSV)
데이터 크기 : XML > JSON > CSV
XML | JSON | CSV | |
장점 | ‣ XML은 3가지 포맷중 가장 직관적 ‣ 메타 정보를 제공해서 정보 표현 이상의 효과를 가져올 수 있음 |
모양과 규칙 자체가 단순해서 타 언어에서도 구현하기가 쉬움 | ‣ 용량이 가장 작음 ‣ csv는 용량이 작기 때문에 변하지 않는 많은 양의 데이터를 제공할 때 주로 이용이 가능 |
단점 | 실제 전송하는 정보보다 메타 데이터의 크기가 더 커질 수 있음 | 콤마가 누락되거나 중괄호가 잘못 닫히는 등 문법 오류에 취약하다. | 데이터가 많아지면 어떤 데이터가 항목을 나타내는지 가시화가 어려움 |
주요 사용처 |
단순 게임 옵션, 직접 데이터 수정이 잦은 부분에 사용 | 서버 통신 REST API를 사용할 때 가장 많이 사용 | 간단한 테이블 작성 또는 읽는 속도가 중요한 부분에서 사용 |
XML(eXtensible Markup Language)
XML은 데이터를 표현하기 위해 많이 사용되는 방식으로 HTML과 유사한 구조를 가지고 있다. 다목적 마크업 언어로 태그 등을 이용하여 데이터의 구조를 기술하는 언어이다. HTML의 태그와 같이 꺽쇠(<>)를 사용하고 트리 계층 구조를 사용하여 루트 요소부터 시작해 여러개의 자식을 계층적으로 포함한다. XML의 예시는 아래와 같다.
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<name>강호동</name>
<score>89</score>
<hobby>
<element>Soccer</element>
<element>Ninza</element>
</hobby>
</user>
<user>
<name>유재석</name>
<score>19</score>
<hobby>
<element>Sing</element>
<element>Dancing</element>
</hobby>
</user>
</users>
JSON(JavaScript Object Notation)
JSON은 XML과 비슷하게 데이터를 처리하기 위한 형식으로, '속성- 값 쌍' 또는'키 -값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위한 인간이 읽을 수 있는 텍스트를 사용하는 개방형 포준 포맷이다. 일반적으로 서버와의 통신 규약인 REST API를 사용할 때 가장 많이 사용된다. 모든 프로그래밍 언어에서 JSON 형식을 지원해서 최근에는 XML을 대체해서 많이 사용된다.
{
"users": {
"user": [
{
"name": "강호동",
"score": 89,
"hobby": ["Soccer", "Ninza"]
},
{
"name": "유재석",
"score": 19,
"hobby": ["Sing", "Dancing"]
}
]
}
}
CSV
csv 형식은 쉼표를 기준으로 항목을 구분하여 저장한 데이터를 말한다. DB나 표 계산 소프트웨어 데이터를 보존하기 위해 이런 형식을 사용한다. 각 항목이나 판매 내용마다 쉼표(comma)로 구분하여 기록한다.
name, score, hobby
강호동, 89, (Soccer,Ninza)
유재석, 19, (Sing,Dancing)
https://loosie.tistory.com/197
728x90
반응형
'Development > 기타' 카테고리의 다른 글
Web server failed to start. Port 8080 was already in use 에러 발생 (0) | 2022.02.14 |
---|---|
Maven과 Gradle (0) | 2022.01.11 |
JSON이란? (0) | 2022.01.01 |
[리액트, react] 화면 크기에 맞게 height 조절하기 (0) | 2021.12.23 |
[맥, Mac] error Failed to install the app. Please accept all necessary Android SDK licenses using Android SDK Manager: "$ANDROID_HOME/tools/bin/sdkmanager --licenses" 오류 (0) | 2021.12.03 |
Comments