일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- transaction
- 자바 버전
- axios
- git push
- PathVariable
- 백엔드
- fetch
- 도커
- VUE
- vue life cycle
- 개발자
- GIT
- aop
- Spring AOP
- 빌드
- Java
- 트랜잭션
- java version
- RequestParam
- docker
- maven
- 비동기통신
- 프론트엔드
- github
- Vue.js
- RequestBody
- gradle
- Today
- Total
미소의 세상
Xml, Json, Yaml 차이 본문
XML, JSON, YAML 은 모두 데이터를 표현하는 형식입니다. 각각의 쓰임새가 모두 다르기 때문에 상황에 맞는 것을 쓰면 된다.
1. XML
XML의 경우 데이터를 표현하기 위하여 많이 사용되어 온 방식으로 태그로 표현되며 이는 HTML과 흡사한 구조를 가지고 있다. 그러나 XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌습니다. XML은 트리계층 구조를 가지고 있고 루트 요소부터 시작해 여러 개의 자식을 계층적으로 포함하게 됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<name>홍길동</name>
<score>100</score>
<subject>
<element>Software</element>
<element>Math</element>
</subject>
</user>
<user>
<name>이순신</user>
<score>97</score>
<subject>
<element>Korean</element>
<element>History</element>
</subject>
</user>
</users>
-XML문법
XML문서는 규칙적인 형태를 가지고 있습니다. 태그와 태그 사이에 요소를 적어 넣는 방식으로 구성됩니다. 이때, 시작 태그와 종료 태그는 대소문자까지 모두 동일해야 합니다. 또한 태그 안에 속성을 명시할 때는 따옴표를 넣어주어야 합니다.
XML은 문법적인 오류가 발생해도 각각 태그로 구분되어 있기 때문에 다른 태그들은 컴퓨터가 읽을 수 있습니다. 따라서 안정성을 요구하는 곳에서 XML을 사용하면 좋습니다.
2. JSON
JSON 또한 XML과 비슷하게 데이터를 처리하기 위한 형식입니다. 일반적으로 서버와의 통신 규악인 REST API를 사용할 때 가장 많이 사용되어, 최근에는 XML보다 JSON 형식이 채택되고 있습니다.
{
"student": [
{
"name": "홍길동",
"lastName": "홍"
},
{
"name": "이순신",
"lastName": "이"
},
{
"name": "이화림",
"lastName": "이"
}
]
}
-JSON은 XML, YAML과 다르게 주석 사용이 불가능하다.
JSON 문법
JSON은 파이썬의 딕셔너리 형식과 비슷하다고 생각하면 됩니다.
JSON은 문법적인 오류에 취약하기 때문에 문법적인 오류가 하나라도 발생하면 문서 전체가 해석 불가능한 상태가 된다. 따라서 가벼움을 중시하는 곳에서는 JSON을 사용하면 좋습니다.
3. YAML
YAML 또한 JSON과 비슷하게 사람이 읽기 쉬운 형태의 데이터 표현 형식입니다. YAML은 XML과 문법적으로 유사합니다. YAML에서도 주석이 사용 가능하고 개행, 공백으로 블록을 인식합니다. 쓰고 있는 사람의 편의를 우선시하기 때문에 docker compose나 spring의 설정 파일에 자주 사용하게 됩니다.
users:
1:
name: 홍길동
score: 100
subject:
- Software
- Math
2:
name: 이순신
score: 97
hobby:
- Korean
- History
YAML 문법
YAML은 개행, 공백으로 불록을 인식합니다. 다만, 태그를 사용하지 않고 공백 위주로 데이터를 구분하므로 한 줄로 작성할 수 없다.
'Web' 카테고리의 다른 글
Vue v-for 간단예제 (0) | 2022.04.06 |
---|---|
jqgrid autowidth로 가로 꽉차게 안될때 (0) | 2022.03.30 |
Web 이동방식 foward vs redirect 차이 (0) | 2022.03.11 |
JPA 기본 어노테이션 (0) | 2022.03.08 |
Vue 문법 정리 (0) | 2022.03.06 |