JSON : JavaScript Object Notation
XML : EXtensible Markup Language

공통점

  • JSON과 XML은 애플리케이션 간 데이터 교환에 사용되는 데이터 표현.
  • JSON과 XML은 모두 데이터 직렬화 형식. 이들 형식을 사용하면 표준화된 방식으로 다양한 애플리케이션, 플랫폼 또는 시스템 간에 데이터를 교환할 수 있다.
  • 사람도 쉽게 읽을 수 있음
  • 계층적 데이터 구조를 가짐
  • 다양한 언어로 파싱가능
  • 둘 다 XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있음

전달과정

  1. Java 객체를 XML 또는 JSON으로 변환
  2. 네트워크를 통해 XML 또는 JSON 파일 전송
  3. XML 또는 JSON을 Python 딕셔너리로 다시 변환

차이점

XML

  • 트리구조
  • 배열 사용 불가능
  • XML DOM을 이용해서 문서에 접근
  • json데이터 유형, 부울, 날짜, 이미지, 네임스페이스 지원

JSON

  • key-value 형식
  • xml 보다 간결
  • 종료태그 사용안함
  • 구문이 xml보다 짧음
  • 데이터를 xml보다 더 빨리 읽고 쓸 수 있음
  • 배열사용가능
  • 숫자 객체 문자열 부울 배열 지원
  • 전송 속도 빠름

결론

JSON이 최신 기술이고 더 가볍고 빠르고 장점이 많다.
하지만? 데이터의 무결성을 사용자가 직접 검증해야한다는 단점이 있음.

JSON 스키마 검증

  1. 데이터의 타입이 정확한가?
  2. 필수로 받아와야 하는 데이터가 포함되어 있는가?
  3. 데이터가 원하는 범위 안에 있는가?
검증 키워드설명
type유효한 데이터의 타입을 명시함.
properties유효한 데이터 이름과 값의 쌍들을 명시함.
required명시한 배열의 모든 요소를 프로퍼티로 가지고 있어야만 유효함.
minimum최솟값 이상의 숫자만 유효함.
maximum최댓값 이하의 숫자만 유효함.
multipleOf명시한 숫자의 배수만 유효함.
maxLength명시한 최대 길이 이하의 문자열만 유효함.
minLength명시한 최소 길이 이상의 문자열만 유효함.
pattern명시한 정규 표현식에 해당하는 문자열만 유효함.
{

    "title": "강아지 스키마",

    "description": "이 스키마는 강아지에 관한 데이터를 검증하기 위해 작성된 스키마임.",
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "family": {"type": "string"},
        "age": {"type": "integer"},
        "weight": {"type": "number"},
        "owner": {
            "type": "object",
            "properties": {
                "ownerName": {"type": "string"},
                "phone": {"type": "string"}
            }
        }
    }
}

출처
AWS : http://www.tcpschool.com/json/json_schema_schema
TCP School : https://aws.amazon.com/ko/compare/the-difference-between-json-xml/

profile
welcome

0개의 댓글

Powered by GraphCDN, the GraphQL CDN