XML, JSON은 무엇인가? 공통점과 차이점

이동준·2023년 8월 2일
0

자바스크립트

목록 보기
26/28

서버에서 클라이언트로 데이터를 보낼 때 사용되는 파일 언어 두가지, XML과 JSON. 요즘은 JSON을 더 많이 사용하는 추세이다. 과거의 XML은 헤더와 태그 등 여러 요소들의 가독성이 떨어지고, 용량도 효율적이지 못하다는 평가를 받았는데, 이를 보완하고 문제점을 해결 해줄 수 있는 것이 JSON이다. 아직까지 W3C에서 표준이 XML이라 XML은 다방면에서 많이 사용되고 있지만, ECMAScript5에서 기본으로 JSON이 내장되게 되면서 JSON을 사용하는 쪽으로 많이 기울게 되었다.

XML(EXtensible Markup Language)

XML(EXtensible Markup Language)은 HTML 형식과 같은 태그로 데이터를 표현하는 방식의 마크업 언어이다. HTML 태그처럼 미리 지정되어있지 않고, 사용자가 직접 정의할 수 있고, 대부분의 정보 사이트에서 RSS로 데이터를 제공할 때 사용한다. 데이터가 어떤 것을 의미하는지 직관적으로 알 수 있지만, 여는 태그와 닫는 태그로 이루어져 용량을 많이 차지한다는 단점이 존재한다.

<?xml version="1.0" encoding="utf-8"?>
<idols>
    <idol>
        <name></name>
        <group>방탄소년단</group>
        <birth>1992</birth>
        <age>31</age>
        <debut>2013</debut>
    </idol>
    <idol>
        <name>RM</name>
        <group>방탄소년단</group>
        <birth>1994</birth>
        <age>29</age>
        <debut>2013</debut>
    </idol>
</idols>

XML의 코드 예시

JSON(JavaScript Object Notation)

JSON(JavaScript Object Notation)은 자바스크립트 객체 표기법으로 데이터를 전달할 때 사용하는 표준 형식으로, 현재는 ECMAScript5부터 기본으로 JSON이 내장되고 있기 때문에 XML보다 JSON을 더 많이 사용하는 추세이다. 자바스크립트뿐만 아니라 C , C++ , Java , Python 등 여러 프로그래밍 언어에서 많이 사용되고 있는 데이터 형식이라고 할 수 있다.

[
	{
            "name" : "진",
            "group" : "방탄소년단",
            "birth" : 1992,
            "age" : 31,
            "debut" : 2013
        },
        {
            "name" : "RM",
            "group" : "방탄소년단",
            "birth" : 1994,
            "age" : 29,
            "debut" : 2013
        }
]

JSON의 코드 예시

XML과 JSON의 공통점

  • 데이터를 저장하고 전달하기 위해 고안되었다.
  • 기계뿐만 아니라 사람도 쉽게 읽을 수 있다.
  • 계층적인 데이터 구조를 가졌다.
  • 다양한 프로그래밍 언어에 의해 파싱될 수 있다.
  • XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송 받을 수 있다.

XML과 JSON의 차이점

  • 데이터를 표현하는 방식이 다르다.
  • JSON은 타입을 가지고 있지만, XML은 그렇지 않다.
  • JSON은 네임 스페이스를 지원하지 않지만, XML은 네임 스페이스를 지원한다.
  • XML에 비해 JSON은 보안에 취약한 편이다.
  • JSON은 UTF-8 인코딩만 지원하지만, XML은 여러 인코딩을 지원한다.

참고 문서 : https://www.guru99.com/json-vs-xml-difference.html,
http://www.tcpschool.com/json/json_intro_xml

0개의 댓글