정의
- XML, JSON, YAML은 모두 데이터를 표현하는 형식입니다.
XML
- HTML과 흡사한 구조를 가지고 있습니다.
- XML이 가지는 고유한 문법이 있어 소프트웨어 및 하드웨어에 대해서 독립적으로 데이터를 처리할 수 있습니다.
- <>를 사용하는 것이 특징이며, 트리 계층 구조를 가지고 있습니다.
- <tag>내용</tag> 형식으로 표현하며, 시작 태그와 종료 태그는 대소문자까지 모두 동일해야 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<name>돌준이네 치킨</name>
<location>닭볶로 12번길</location>
<!-- 가게 주인 정보 -->
<owner>
<name>장돌준</name>
<age>44</age>
<major>컴퓨터공학</major>
<career>
<job>앱 개발자</job>
<job>풀스택 개발자</job>
<job>SI 개발자</job>
</career>
</owner>
<menus>
<menu>
<name>자바치킨</name>
<price>18000</price>
<ingredients>
<ingredient>닭</ingredient>
<ingredient>튀김가루</ingredient>
<ingredient>자바소스</ingredient>
</ingredients>
</menu>
<menu>
<name>깃윙</name>
<price>6500</price>
<ingredients>
<ingredient>닭날개</ingredient>
<ingredient>문어다리</ingredient>
</ingredients>
</menu>
<menu>
<name>스프링소다</name>
<price>2000</price>
<ingredients>
<ingredient>물</ingredient>
<ingredient>사카린</ingredient>
<ingredient>메탄가스</ingredient>
</ingredients>
</menu>
</menus>
<reviews>
<review>
<reviewer>
<name>배다른민족</name>
<level>Beginner</level>
</reviewer>
<rating>5</rating>
<comment>아니 음료수 뭐냐고</comment>
</review>
<review>
<reviewer>
<level>VIP</level>
<name>김밥순</name>
</reviewer>
<rating>5</rating>
<comment>개발팀장님 힘내세요. 많이 시켜먹을게요.</comment>
</review>
</reviews>
</shop>
선언
- <xml> 태그를 사용해 XML 문서임을 명시하고, 속성으로 다음과 같은 정보를 명시할 수 있습니다.
- version : XML 문서의 버전을 명시합니다.
- encoding : XML 문서의 문자 Set을 명시합니다.
- standalone : XML 문서 외부 소스 데이터에 의존하는지의 여부를 명시합니다.
JSON
- 일반적으로 서버와의 통신 규약인 REST API를 사용할 때 많이 사용합니다.
- 최근 XML 보다 JSON 형식을 많이 사용하는 추세입니다.
- 주석을 사용할 수 없다는 특징이 있습니다.
- 대괄호([])와 중괄호({}), 큰 따옴표("")를 이용해 계층형 구조를 형성하는 특징이 있습니다.
{
"name": "돌준이네 치킨",
"location": "닭볶로 12번길",
"owner": {
"name": "장돌준",
"age": 44,
"major": "컴퓨터공학",
"career": ["앱 개발자", "풀스택 개발자", "SI 개발자"]
},
"menus": [
{
"name": "자바치킨",
"price": 18000,
"ingredients": ["닭", "튀김가루", "자바소스"]
},
{
"name": "깃윙",
"price": 6500,
"ingredients": ["닭날개", "문어다리"]
},
{
"name": "스프링소다",
"price": 2000,
"ingredients": ["물", "설탕", "메탄가스"]
}
],
"reviews": [
{
"reviewer": {
"name": "배다른민족",
"level": "Beginner"
},
"rating": "1",
"comment": "아니 음료수 뭐냐고"
},
{
"reviewer": {
"name": "김밥순",
"level": "VIP"
},
"rating": "5",
"comment": "개발팀장님 힘내세요. 많이 시켜먹을게요."
}
]
}
YAML
- XML과 문법적으로 유사하지만, 태그를 사용하지 않고 공백 위주로 데이터를 구분하여 한 줄로 작성할 수 없다는 특징이 있습니다.
- 한글과 같은 유니코드를 그대로 사용할 수 있는 장점이 있습니다.
- YAML은 설정 파일을 작성할 때 가장 많이 사용되는 특징이 있으며, 상속과 같은 기능도 적용할 수 있어 효율적입니다.
- 직렬적으로 작성되어 "데이터 직렬화 형식"이라고도 부릅니다.
- 일반적으로 Swagger API, Sprint Boot, Docker, 등,, 의 다양한 환경에서 설정(conf) 파일 작성 목적으로 YAML을 사용합니다.
name: 돌준이네 치킨
location: 닭볶로 12번길
# 가게 주인 정보
owner:
name: 장돌준
age: 44
major: 컴퓨터공학
career:
- 앱 개발자
- 풀스택 개발자
- SI 개발자
menus:
- name: 자바치킨
price: 18000
ingredients:
- 닭
- 튀김가루
- 자바소스
- name: 깃윙
price: 6500
ingredients:
- 닭날개
- 문어다리
- name: 스프링소다
price: 2000
ingredients:
- 물
- 설탕
- 메탄가스
reviews:
- reviewer:
name: 배다른민족
level: Beginner
rating: '1'
comment: 아니 음료수 뭐냐고
- reviewer:
name: 김밥순
level: VIP
rating: '5'
comment: 개발팀장님 힘내세요. 많이 시켜먹을게요.
내용 출처
https://ndb796.tistory.com/251
https://www.yalco.kr/39_xml_json_yaml/
https://hyg4196.tistory.com/27
'iOS > App' 카테고리의 다른 글
박스오피스 앱 만들기(2) (0) | 2022.05.06 |
---|---|
박스오피스 앱 만들기(1) (0) | 2022.05.05 |
Collection View (0) | 2022.04.16 |
Realm이란? (이론) (0) | 2022.04.02 |
APNs (0) | 2022.03.31 |
댓글