-
JSON, XML, YAML?CS 2023. 11. 26. 17:53
JSON과 XML, YAML은 모두 데이터를 구조화하고 표현하는 데 만이 사용되는 데이터 교환 형식이다.
JSON(JavaScript Object Notation)?
자바스크립트 개체 표기법이라는 뜻으로 가볍고 읽기 쉬운 데이터 교환 방식
간단한 텍스트 형식을 사용하여 데이터를 키: 값 쌍으로 표현하게 된다. 다음은 JSON 형태 예시이다.
{ "name": "John Doe", "age": 30, "city": "New York", "isStudent": false, "hobbies": ["reading", "coding", "traveling"] }
데이터 유형에는 문자열과 숫자, 객체, 배열, 부울, null이 포함되고
객체는 중괄호 { }로 묶이고, 배열은 대괄호 [ ]로 표시된다.
JSON은 보통 웹 개발 및 데이터 교환(ex AJAX 요청)용 API에서 가장 유용하게 사용되고 있으며,
많은 프로그래밍 언어에서 지원되므로 구조화된 데이터를 표현하는 데 널리 사용된다.
API 표현식이여서 RESTfull API는 종종 JSON 형식으로 데이터 반환한다.
XML(eXtensible Markup Language)?
태그 기반의 마크업 언어를 사용하여 데이터 구조화한 방식
태그를 사용하여 요소와 정보를 제공하는 속성 및 계층 구조를 정의한다. 다음은 XML의 예시이다.
<person> <name>John Doe</name> <age>30</age> <city>New York</city> <isStudent>false</isStudent> <hobbies> <hobby>reading</hobby> <hobby>coding</hobby> <hobby>traveling</hobby> </hobbies> </person>
요소는 꺾쇠괄호 <>로 묶이고 속성은 여는 태그 내에 지정이 된다.
일반적인 HTML과 비슷한 방법이라고 생각하면 된다.
XML 같은 경우에는 형식적인 구조가 필요한 웹 서비스(SOAP)에서 널리 사용되고,
데이터 저장소를 비롯한 다양한 도메인에서 널리 사용된다.
표준화된 방식으로 데이터 구조를 구성하고 설명하기에
잘 정의된 스키마 구조가 필요할 때 자주 사용하는 방법이다.
XML vs HTML
비슷한 형식을 가진 두 Markup Language를 비교해보자면,
- XML은 데이터 전달에 포커스를 맞추고, HTML은 데이터 표현하는데 포커스를 둔다.
- HTML의 태그는 이미 약속된(ex <div></div>) 태그들만 사용한다면, XML은 사용자가 임의로 태그를 만들어서 사용이 가능하다.
특징
이러한 XML의 가장 큰 특징은 분리성과 확장성, 정보검색의 정확성을 특징으로 들 수 있는데,
요소와 속성을 완전히 분리하여 데이터 구조와 내용을 기술하고 있기에 스타일 시트를 사용하여 다양한 방식으로 데이터 표현이 가능하고, 확장성 있는 태그 사용으로 정확한 데이터 기술이 가능하다. 또한 의미있는 태그 사용으로 원하는 데이터 쉽게 찾을 수 있다.
YAML?
들여쓰기를 사용하여 계층 구조를 나타내는 사람이 읽을 수 있는 데이터를 직렬화한 방식
YAML의 경우 사람이 읽을 수 있는 데이터 직렬화 형식이기에 무엇보다도 가독성을 중요 시한다. 다음은 YAML의 예시이다.
name: John Doe age: 30 city: New York isStudent: false hobbies: - reading - coding - traveling
들여쓰기를 사용하여 계층 구조를 나타내는데 이때 공백이 매우 중요하다.
사람들이 읽을 수 있는 데이터를 직렬화한 방식이기에, JSON과 XML보다 더 간결하고 읽기 쉬운 경우가 많다.
주요 차이점
가독성 JSON과 YAML은 간결하고 들여쓰기 기반 구문으로 인해 사람이 더 쉬운 것으로 간주
XML 같은 경우는 공식적인 구조가 중요한 상황에서 더 선호사용 사례 JSON은 웹 개발 및 API에 일반적으로 사용
XML은 공식적인 데이터 교환 및 저장에 자주 사용
YAML은 사람이 읽을 수 있는 형식의 파일, 데이터 직렬화에 자주 사용작성 스타일 JSON은 객체는 중괄호 { }, 배열은 대괄호 [ ] 사용
XML은 태그와 속성, 닫는 태그를 사용
YAML은 들여쓰기와 콜론을 사용'CS' 카테고리의 다른 글
GitHub workflow (2) 2023.11.26 Git과 Github? (0) 2023.11.26 API(Application Programming Interface) (1) 2023.11.26 FE(Frontend)와 BE(Backend) (0) 2023.11.19 MPA(Multi Page Application) vs SPA(Single Page Application) (0) 2023.11.19