구조화 된 정보를 주는 쪽과 받는 쪽이 의도에 맞게 잘 주고받기 위해서는 정보를 구조화 하기 위한 합의된 방식이 필요
XML, JSON, YAML 은 모두 데이터를 표현하는 방식
형태와 문법에 차이가 있고 이에 따라 생기는 특징으로 인해 쓰임새에 차이가 있다
XML
HTML과 흡사한 구조 -> 데이터를 표현하기 위해서 태그를 사용
단 데이터를 보여주려는 목적이 아닌 데이터를 저장하고 전달하는데 목적
정보를 서버와 클라이언트 사이에서 주고 받을 때 사용
트리계층 구조를 가지고 있으며 루트 요소부터 여러개의 지식을 계층적으로 포함
순수 데이터 값이 들어갈 수도 있고, 그 안에 다른 태그들이 중첩으로 들어갈 수도 있다
minify를 통해 한줄로 표현가능
XML은 주석 삽입이 가능
부분적으로 문법적인 오류가 발생하더라도 정보들이 전부 태그로 구분되어 있기 때문에 해당 태그를 제외한 다른 태그들은 읽을 수 있는 상태
-> 안정성을 요구하는 곳에서 사용하기 좋음
단 같은 태그를 두 번 입력해야 하고 indentation 형태 또한 가독성이 떨어진다
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<name>홍길동</name>
<score>95</score>
<hobby>
<element>Soccer</element>
<element>Ninza</element>
</hobby>
</user>
<user>
<name>이순신</name>
<score>100</score>
<hobby>
<element>Sing</element>
<element>Dancing</element>
</hobby>
</user>
</users>
JSON
데이터를 처리하기 위한 형식
자바스크립트 객체 형태로 정보 표현
간결하고 작성하기 쉬운데다가 적은 메모리 공간을 사용하기 때문에 최근에 자주 사용된다
주석 삽입이 불가능
문법적인 오류가 하나라도 발생하면 문서 전체가 해석 불가능
-> 속도를 중시하는 곳에서 사용 (빠른 응답이 필요한 웹 환경?)
{
"users": {
"1": {
"name": "홍길동",
"score": 95,
"hobby": ["Soccer", "Ninza"]
},
"2": {
"name": "이순신",
"score": 100,
"hobby": ["Sing", "Dancing"]
}
}
}
YAML
사람이 읽기 쉬운 형태의 데이터 표현방식
주석 사용 가능
개행과 공백을 이용하여 블록을 인식하기 때문에 minify가 불가능하다
-> 데이터를 한줄로 보내는 것이 아닌 사람이 보고 작성하는데 목적
상속을 사용하여 여러 데이터를 효율적으로 작성할 수 있다
users:
1:
name: 홍길동
score:95
hobby:
- Soccer
- Ninza
2:
name: 이순신
score: 100
hobby:
- Sing
- Dancing
Minify 줄바꿈이나 띄어쓰기 없이 한줄로 된 데이터로 만드는 과정
Indentation 줄바꿈과 들여쓰기를 통해 보기좋게 구분된 상태
Parsing 웹페이지에서 원하는 데이터를 추출하여 구문을 분석하고 가공하기 쉬운 상태로 바꾸는 것
'FE Study' 카테고리의 다른 글
| Github Workflow (0) | 2023.11.26 |
|---|---|
| Git/GitHub (1) | 2023.11.26 |
| API (0) | 2023.11.26 |
| Front-end vs Back-end (0) | 2023.11.19 |
| SPA/MPA (0) | 2023.11.19 |