CSV & XML & json
데이터 형태
CSV
comma separated value
용량이 작지만 구조적이지 못하다.
XML
Extensible markup language
태그를 통해 데이터 형식 정의
구조적, 정확한 문법이 필요, 큰 용량
json
JSON(JavaScript Object Notation)을 통해 데이터 형식 정의
구조를 가지며 객체로 다른 언어와 호환
XML
Extensible Markup Language
Markup Language, 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
필요에 따라서 태그를 확장해서 사용 가능
정확한 문법을 지켜야 동작 : Well formed
문서의 시작은 <?xml version="1.0" encoding="UTF-8"?>
반드시 root element 가 존재해야 한다.
나머지 태그들은 Tree 형태로 구성
시작 태그와 종료 태그는 일치해야 한다.
시작 태그는 key-value 구조의 속성을 가질 수 있다.
속성 값은 " " 또는 ' '로 묶어서 표현
태그는 대소문자를 구분
xml 태그는 자유롭게 생성하기 때문에 최초 작성자의 의도대로 작성되었는지 확인 필요
문서 구조와 적절한 요소, 속성 개수, 순서의 적합 여부
DTD 또는 Schema 를 통해 문서의 규칙 작성
DTD, Schema를 잘 따른 문서, valid 하다.
DTD
문법 : XML과 유사한 문법
DOM 지원 : DOM 기술을 지원하지 않음
컨텐츠 모델 : 순차, 선택 리스트만 제공
데이터 타입 : 문자열, 토큰, ID와 그 외에 한정된 타입 지원
Namespace : 전역 이름만 사용
상속성 : 제공하지 않음
확장성 : 한계가 있음
기본 제약 조건 : 있음
동적 스키마 : 불가능, 읽기만 가능
Schema
문법 : XML 1.0 표준에 만족
DOM 지원 : DOM 을 통한 조작 가능
컨텐츠 모델 : 순차, 리스트스 복합적으로 사용 가능
데이터 타입 : 문자열, 숫자, 날짜 / 시간 및 새로운 형식 정의를 할 수 있음
Namespace : 전역 / 로컬 이름 모두 사용 가능
상속성 : 제공
확장성 : 제한 없음
기본 제약 조건 : 없음
동적 스키마 : 가능, 런타임에 상호작용으로 변경 가능
JSON
Javascript Object Notation
자바스크립트에서의 객체 표현법
간결한 문법, 단순한 텍스트, 적은 용량
대부분의 언어, 플랫폼에서 사용 가능
다른 기종 간의 데이터 교환에 광범위하게 사용
객체를 key-value 쌍으로 관리
다양한 라이브러리를 이용해 간편하게 관리 가능