BOID
[iOS] 데이터 포맷(XML방식) 1 / 2 - HoonIOS 본문
안녕하세요 HoonIOS입니다.
API나 네트워크 통신을 이용해서 데이터를 주고받을 때 사용하는 데이터 포맷에 대해 포스팅을 해보려고 합니다.
데이터 포맷 방식에는 크게 3가지 정도 있습니다.
- XML 방식
- JSON 객체
- JSON 배열
3가지 정도가 있는데요 이번 포스티에는 XML방식에 대해 먼저 포스팅을 하려고 합니다.
XML 방식
XML 방식은 요청에 대한 응답 데이터를 XML 포맷으로 제공을 하는 것입니다.
단순하게 응답 데이터의 형태가 숫자열로만 되어 있거나 문자열로만 되어있어 반환하는 거면 굳이 포맷을 필요하나?라는 의문점을 가질 수 있지만 반환하는 데이터들은 그렇게 착하게 구성되어 있지 않기 때문에 원활하게 구분하기 위해서는 포맷을 통해 구성하는 것이 좋습니다.
그럼 XML이란 무엇일까요?
특수 목적의 마크업 언어를 만드는데 권하는 다목적 마크업 언어입니다.
※ 마크업 언어란?
마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다.
XML의 구성은 태그라고 불리는 마크업과 내용(데이터)으로 구성이 됩니다.
* XML 태그의 종류는 어떻게 될까요?
- 시작 태그: <element>
- 끝 태크: </element>
- 빈 요소 태그: <element/>
XML태그는 시작 태그와 끝 태그 둘이 짝으로 되어 있어 시작 태그로 시작을 해서 끝 태그로 끝날 수도 있고 빈 요소 태그만으로도 이루어지기도 합니다.
시작 태그, 끝 태그 사이에 문자열로 내용이 작성될 수도 있고 하위 계층을 이루는 태그 쌍이 포함되어 있을 수도 있습니다.
아래 예시를 통해 쌍으로 되어있는지 한번 확인해보겠습니다.
※ XML 예시
</xml version = "1.0", encoding = "UTF-8"?>
<BaseBallTeam>
<list_total_count>2</list_total_count>
<row>
<teamCode>1</teamCode>
<teamName>Doosan</teamName>
<rank>1</rank>
<Regional_connection>seoul</Regional connection>
</row>
<row>
<teamCode>2</teamCode>
<teamName>LG</teamName>
<rank>2</rank>
<Regional_connection>seoul</Regional connection>
</row>
</BseBallTeam>
XML 형식 마크업으로 데이터를 전달받았으면 그것을 그대로 사용하는 것이 아니라 데이터를 형식에 맞게 파싱을 해야 됩니다.
파싱을 처리하는 모듈을 파서라고 하는데 iOS에서는 파운데이션 프레임워크를 통해 XMLParser모듈을 제공해 이를 이용하여 분석할 수 있습니다.
XMLParser로 분석해준 값을. parse() 메서드를 통하여 XML을 파싱 해주게 됩니다.
XMLPaser의 예시를 한번 살펴보겠습니다.
var parser: XMLParser = XMLPaser(contentsof: URL )
parser.parse()
이렇게 데이터 포맷 중의 하나인 XML을 알아보았는데 이 데이터 포맷의 장. 단점은 무엇일까요?
- 장점
- XML태그로 구성된 마크업 형식을 기본 규격으로 사용을 하고있어 플랫폼에 의존적이지 않은 표준데이터를 제공할수 있습니다.
- JSON객체와는 다르게 한 XML은 한 XML은 한 데이터 안에 여러 타입의 데이터를 넣어줄수 있습니다. - 단점
- 마크업 태그를 일일이 다 사용해서 구분하기 때문에 마크업 태그가 많아 질수록 전체 데이터 용량은 증가할수 밖에 없습니다.
'IOS 시작기' 카테고리의 다른 글
[iOS] 컬렉션 뷰란 - HoonIOS (0) | 2021.05.04 |
---|---|
[iOS] 데이터 포맷(JSON방식) 2 / 2 - HoonIOS (0) | 2021.05.03 |
[iOS] 비연결 지향 통신(SOAP, RESTful 프로토콜 방식) - HoonIOS (0) | 2021.04.30 |
[iOS] 연결 지향 통신이란? (0) | 2021.04.30 |
[iOS] 커스텀 프로토타입 셀에 대해 알아보자~! - HoonIOS (0) | 2021.04.28 |