Post

XML vs JSON

XML과 JSON에 대해 설명하는 페이지입니다.

XML vs JSON

Tags
XML, JSON

개요

이번 글에서는 XML과 JSON에 대해 설명하겠습니다.

XML이란?

XML은 eXtensible Markup Language의 약자로 데이터를 구조화하고 저장 및 전송하기 위한 마크업 언어입니다.

XML의 특징

XML의 특징은 다음과 같습니다.

  • 태그 기반의 계층적 구조를 형성합니다.
  • 트리 구조를 가지며, 반드시 루트 요소 하나로 시작합니다.
  • 사람이 읽기 쉬우며 확장이 가능합니다.
  • 다양한 시스템 간의 데이터 교환에 사용됩니다.
  • 속성(Attribute)과 요소(Element)를 구분하여 사용합니다.

XML의 장점

XML의 장점은 다음과 같습니다.

  • 데이터 무결성 유지

    데이터 설명과 함께 데이터를 전송하므로 데이터 무결성을 유지할 수 있습니다.

  • 검색 효율성 향상

    검색 엔진의 경우 다른 형식의 문서보다 효율적으로 XML 파일을 정렬하고 분류할 수 있으므로 XML을 사용하면 검색 효율성을 향상시킬 수 있습니다.

  • 유연한 애플리케이션 설계

    사용자 정의 태그로 복잡한 데이터 구조를 표현할 수 있습니다.

XML의 용도

XML은 다목적 마크업 언어로 다양한 목적을 위해 사용할 수 있습니다. XML의 주요 용례는 다음과 같습니다.

  • 데이터 전송

    XML을 사용하면 동일한 데이터를 서로 다른 형식으로 저장하는 두 시스템 간에 데이터를 전송할 수 있습니다.

  • 웹 애플리케이션

    웹 애플리케이션을 개발할 때 프로그램 설정 파일 용도로 사용할 수 있습니다.

  • 설명서

    XML을 사용하여 기술 문서의 구조 정보를 지정할 수 있습니다.

  • 데이터 유형

    여러 프로그래밍 언어에서 XML을 데이터 유형으로 지원하므로 XML 파일과 직접 작동하는 프로그래밍 언어를 통해 프로그램을 작성하는 것이 가능합니다.

XML 문법

주요 XML 문법은 다음과 같습니다.

  • 모든 XML 요소는 반드시 종료 태그를 가져야 합니다. HTML에서는 다음과 같이 종료 태그를 생략할 수 있습니다.

    1
    
    <h1>HTML
    

    이와 달리 XML에서는 종료 태그가 없으면 오류가 발생합니다. XML 요소는 종료 태그가 반드시 있어야 하며, 빈 태그의 경우 슬래시(/)를 사용한 self-closing을 해야 합니다.

    1
    
    <h1>XML</h1>
    
  • XML 태그는 대소문자를 구분합니다.
  • XML 태그를 사용할 때 시작 태그종료 태그의 대소문자가 모두 같아야 합니다.
  • 속성 값은 반드시 따옴표로 감싸야 합니다.
  • XML은 띄어쓰기를 인식합니다.

JSON이란?

JSON이란 JavaScript Object Notation의 약자로 일반적으로 클라이언트와 서버 사이에서 데이터를 주고 받을 때 사용하는 양식입니다. JSON은 데이터를 키-값 쌍의 형태로 표현하는 경량 데이터 형식입니다.

JSON의 특징

JSON의 특징은 다음과 같습니다.

  • 가독성이 높고 구조가 단순합니다.
  • 자바스크립트와 호환성이 뛰어납니다.
  • 대부분의 프로그래밍 언어에서 쉽게 파싱할 수 있습니다.
  • XML보다 데이터 크기가 작아 전송 속도가 빠릅니다.
  • 배열과 객체 구조를 쉽게 표현할 수 있습니다.

JSON의 용도

JSON의 용도는 다음과 같습니다.

  • 데이터 전송

    RESTful API에서 데이터를 주고받을 때 JSON 형식으로 주고받을 수 있습니다.

  • 웹/모바일 애플리케이션

    브라우저 및 모바일 애플리케이션과의 통신이 필요한 경우 JavaScript와의 호환성을 중시할 때 JSON을 활용할 수 있습니다.

JSON 구조

JSON 구조는 다음과 같이 이루어집니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "키": "값",
  "types": "사용할 수 있는 자료형은 string, number, boolean, null, object, array 6개가 존재합니다.",
  "string": "문자열 값",
  "number": 20240717,
  "boolean": true,
  "null": null,
  "object": {
    "key1": 3.14159265358979323846264338,
    "key2": false,
    "key3": {
      "key4": "value",
      "key": "value2"
    }
  },
  "array": [
    "12351",
    {
      "key1": 1,
      "key2": "value"
    },
    ["1", "2", "3"]
  ]
}

JSON 구조의 특징은 다음과 같습니다.

  • JSON 구조는 위와 같이 키-값 쌍으로 이루어져 있습니다.
  • 키와 값은 :으로 구분합니다.
  • 값으로 사용할 수 있는 자료형은 string, number, boolean, null, object, array의 6가지가 존재합니다.
  • 날짜 및 시간 데이터를 지원하지 않습니다.
  • 주석을 사용할 수 없습니다.
  • 객체 내에 또 다른 객체나 배열을 사용할 수 있습니다. 마찬가지로 배열 내에 또 다른 배열을 사용할 수 있습니다.

결론

XML과 JSON을 표로 비교하면 다음과 같습니다.

비교 항목XMLJSON
데이터 구조트리(Tree) 구조키-값(Key-Value) 쌍
가독성복잡할 수 있음단순하고 직관적
파싱 속도상대적으로 느림빠름
데이터 크기상대적으로 큼경량화됨
데이터 타입텍스트 중심, 타입 명시 불가능number, boolean, null 등 지원
사용 분야웹 서비스, 문서 저장REST API, 웹 애플리케이션, 모바일 앱

참고 자료

This post is licensed under CC BY 4.0 by the author.