본문 바로가기
iOS/App

XML, JSON, YAML

by 황민우 2022. 3. 26.

정의

- 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

 

XML, JSON, YAML 형식 내용 정리 및 비교 분석

JSON, YAML, XML은 모두 데이터(Data)를 표현하는 형식입니다. 다만 그 형태와 문법은 조금씩 다르다는 점에서 그 차이점을 바르게 인지하고 있는 것이 중요합니다. 따라서 이번 시간에는 XML, JSON, YAML

ndb796.tistory.com

https://www.yalco.kr/39_xml_json_yaml/

 

XML, JSON, YAML이 뭔가요?

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

https://hyg4196.tistory.com/27

 

XML, JSON, YAML 이 뭔가요?

줄바꿈 없이 상대방에게 어떤 정보들을 보내야 할 때... 표와 같이 구조를 가진 정보는 한 줄로 어떻게 보내야 할까? 정보를 주는 쪽과 받는 쪽 사이에 합의된 형식이 있어야 한다 XML   XML은 데

hyg4196.tistory.com

 

'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

댓글