[swift] Alamofire를 활용하여 전국 도서관 도서 검색하기

알라모파이어(Alamofire)는 스위프트를 위한 강력한 HTTP 통신 라이브러리로, 네트워크 요청과 응답을 처리하는 데 사용됩니다. 이번 포스트에서는 알라모파이어를 사용하여 전국 도서관에서 도서를 검색하는 예제를 살펴보겠습니다.

1. 알라모파이어 설치하기

먼저 알라모파이어를 설치해야 합니다. 코코아팟을 사용하여 알라모파이어를 프로젝트에 추가할 수 있습니다. 프로젝트의 Podfile에 다음과 같이 추가해주세요:

pod 'Alamofire', '~> 5.2.2'

그리고 터미널에서 다음 명령을 실행하여 알라모파이어를 설치합니다:

$ pod install

2. 네트워크 요청 보내기

알라모파이어를 사용하여 전국 도서관에서 도서를 검색하기 위해 네트워크 요청을 보내야 합니다. 이를 위해 서울 열린데이터광장에서 제공하는 전국 도서관 현황 데이터를 사용하겠습니다.

먼저 알라모파이어를 import 합니다:

import Alamofire

그리고 다음과 같이 GET 요청을 보냅니다:

let url = "http://data.seoul.go.kr/dataList/datasetView.do?infId=OA-12051&srvType=S&serviceKind=1"

Alamofire.request(url).responseJSON { response in
    if let result = response.value {
        // 응답 데이터 처리
        print(result)
    }
}

위의 코드는 GET 요청을 보내고, 응답이 오면 JSON 형태로 응답 데이터를 출력합니다. 응답 데이터를 원하는 형식으로 파싱하여 사용할 수 있습니다.

3. 전국 도서관 도서 검색하기

위의 코드의 응답 데이터를 파싱하여 전국 도서관에서 원하는 도서를 검색하는 방법을 알아보겠습니다. 전국 도서관 현황 데이터는 JSON 형식으로 제공되므로, 파싱하기 쉽습니다.

Alamofire.request(url).responseJSON { response in
    if let result = response.value as? [String: Any],
       let libraries = result["DATA"] as? [[String: Any]] {
        for library in libraries {
            let libraryName = library["LBRRY_NAME"] as? String ?? ""
            let books = library["BOOKS"] as? String ?? ""
            
            // 도서 검색 로직 추가
            if books.contains("스위프트") {
                print("도서관 이름: \(libraryName)")
            }
        }
    }
}

위의 코드는 응답 데이터에서 도서관 이름(LBRRY_NAME)과 도서 수(BOOKS)를 가져옵니다. 도서 수에서 “스위프트”를 포함하는 도서관의 이름을 출력하는 간단한 예제입니다. 실제로는 원하는 검색 조건에 따라서 로직을 추가하면 됩니다.

결론

이번 포스트에서는 알라모파이어를 사용하여 전국 도서관에서 도서를 검색하는 예제를 알아보았습니다. 알라모파이어를 활용하면 간편하게 서버와 통신할 수 있으며, 응답 데이터를 원하는 형식으로 가공하여 사용할 수 있습니다. 알라모파이어의 공식 문서를 참고하여 다양한 기능을 활용해보세요.

참고 자료