개발자들의 용어 정리 15 [XML, JSON]
XML
프론트엔드와 백엔드 사이엔 "한 줄로 된 텍스트" 로 작성되어 Data를 주고 받는다.
Ex 1> 프로테크시, 코딩구, 열공길
ㄴ 이런 식의 한줄 Source라면 큰 무리가 없다.
그러나 아래와 같이 분량이 많은 표 형식으로 데이터를 꾸밀 경우 컴퓨터는 이런 데이터를 구분할 수 없다.
Ex 2>
상호 | 프로테크 |
주소 | 프로테크시 코딩구 열공길 |
소유주 | 이름 : 김강파 아이디 : protech 전화번호 : 010-1234-56788 |
ㄴ 이런 건 컴퓨터가 알 수 없어...
위 표와 같이 복잡하고 다층적인 구조로 이뤄진 데이터는 컴퓨터가 이해할 수 없다.
따라서 계층과 구조를 가진 정보를 텍스트로 표현해줄 수 있는 일종의 형식이 필요하다.
그래서 나온게 XML과 JSON 이다.
XML source는 아래와 같다.
Ex 3> XML 코드
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<name>프로테크</name>
<location>프로테크시 코딩구 열공길
<owner>
<name>김강파</name>
<id>protech</id>
<phone>010-1234-56788</phone>
</owner>
</shop>
HTML 작성 방식과 비슷하지 않는가?
그렇다 이 놈 XML도 HTML과 마찬가지로 마크업 언어이다.
고로 같은 원리이며, 동일한 태그가 사용된다.(Ex 3> <shop> 같은 게 태그다.)
태그 사이에 정보가 들어가 있는 형태로 구성되며
태그 안에 또 다른 태그를 넣음으로서 다층 구조를 표현할 수 있다.
즉, 태그를 사용하여 컴퓨터에 다소 복잡한 정보를 정확하게 전달 가능한 구조라 보면 이해가 빠를 것이다.
HTML은 웹 페이지 구조를 개발한다면
XML은 플랫폼간 데이터를 주고 받을 때 데이터의 구조를 개발한다 보면 된다.
JSON
XML은 시작과 끝이 명확하다.
따라서 데이터의 구조를 확실히 보여주지만 단점이 있다.
일단 텍스트가 많아 코드의 길이가 길어지며, 중복되는 구분 덕분에 가독성이 떨어진다.,
또한 이로 인해 컴퓨터의 Load가 생각보다 많이 걸린다.
이런 단점을 보완한 형식이 JSON이다.
Ex 1> JSON 코드
{
"name" : "프로테크",
"location" : "프로테크시 코딩구 열공길",
"owner" : {
"name" : "김강파",
"id" : "protech",
"phone" : "010-1234-56788"
}
이처럼 JSON 형식은 XML 보다 더 간단하고 높은 가독성을 가지고 있다.
각 항목마다
"" 따옴표 로 구분하고
[] 대괄호 로 배열과
{} 중괄호 로 또 다른 객체가 오는 식으로
정보가 작성된다.
JSON의 단점으론
문법 오류에 취약해서 "" 따옴표나 [] 혹은 {} 같은 괄호가 하나만 빠져도 문서 전체를 읽을 수 없다.
반면 XML은 오탈자 포함시 해당 구분만 넘긴 채 읽는 게 가능하다.
또한 주석을 달 수 없다.
※ XML과 JSON 코드는 가독성을 위해 들여쓰기와 줄바꿈을 쓴 것이다.
실제 컴퓨터는 그저 한줄을 길게 나열한 형식으로 이해하고 자료를 표현한다.