안녕하세요, 서서씨입니다!

오늘은 당연을 개발하며 제가 겪얶던 어려움에 대해 공유해 보고자 합니다.

 

우선, 저는 Swift를 학습하며 API 통신을 통해 받아 온 데이터의 형식이 모두 JSON 형식이었습니다.

이러한 경우에, URLSession과 Alamofire등을 사용을 하여 어렵지 않게 데이터에 대한 처리가 가능했습니다.

 

그런데... 제가 사용한 API에서는 데이터를 XML 타입으로 제공을 하고, 별도의 파싱 과정을 통해 데이터 사용이 가능했습니다.

그나저나 파싱은 무엇을 의미할까요?

 

Parsing

구글에 검색해 보았는데요... 그렇다고 합니다. 와닿지가 않으니 구체적으로 무슨 의미인지 더 깊게 알아보도록 하겠습니다.

파싱은 데이터를 특정 패턴이나, 순서로 추출하여 정보로 가공하는 것을 말한다고 해요.

그렇다면 예시를 함께 알아보도록 해요.

 

예시의 XML 파일을 모델로 분리하여 사용하기 위햐서는 XML 데이터를 별도로 Parsing을 하는 과정이 요구됩니다.

이때, 저는 데이터의 Parsing을 위해 오픈 소스 라이브러리인 SWXMLHASH를 사용해 주었습니다.

SWXMLHASH

https://github.com/drmohundro/SWXMLHash

 

GitHub - drmohundro/SWXMLHash: Simple XML parsing in Swift

Simple XML parsing in Swift. Contribute to drmohundro/SWXMLHash development by creating an account on GitHub.

github.com

공식문서에서는 SWXMLHash는 Swift에서 XML을 구문 분석하는 비교적 간단한 방법이라고 소개를 하고 있습니다.

Alamofire를 통해서 통신을 진행합니다. 이때, 성공적인 통신이 이루어질 경우 데이터를 Pasre를 진행하도록 했습니다.

코드의 가독성을 위해 저는 별도의 함수로 로직을 분리해 둔 상태입니다.

데이터를 parse하는 함수의 내부입니다.

XML 데이터를 인자로 전달을 받습니다. 전달받은 Xml 데이터의 boxofs, boxof 접근을 합니다.  즉, 상위의 태그에 접근을 하는 것입니다.

이렇게 요소에 접근을 , 요소 내부의 하위 항목들을 바인딩하여 값을 저장한 , 해당 데이터드를 구조체에 저장해 주는 과정을 거쳐 주어 데이터를 parse 가능합니다.

 

더욱 다양한 방법에 대해 댓글 남겨 주시면 학습 후 업로드 진행해 보도록 하겠습니다!

🤓

'iOS' 카테고리의 다른 글

Observable vs Operator  (0) 2024.03.25

+ Recent posts