[swift] Swift PromiseKit와 웹 서버 연동 방법

이번 글에서는 Swift에서 PromiseKit를 사용하여 웹 서버와의 연동 방법에 대해 알아보겠습니다.

PromiseKit란?

PromiseKit은 Swift에서 비동기 작업을 보다 간편하게 다룰 수 있도록 도와주는 라이브러리입니다. 비동기 작업은 일반적으로 웹 서버와의 통신, 파일 다운로드 등에서 많이 사용되며, PromiseKit는 콜백 지옥(callback hell)을 피하고 코드의 가독성을 높여줍니다.

웹 서버와의 연동 방법

아래는 PromiseKit를 사용하여 웹 서버와의 연동을 위해 필요한 단계들입니다.

1. Alamofire 설치

PromiseKit를 사용하기 위해 우선 Alamofire를 설치해야 합니다. 아래 명령어로 Alamofire를 설치할 수 있습니다.

pod 'Alamofire', '~> 5.0'

2. PromiseKit 설치

PromiseKit을 설치하려면 아래 명령어를 사용하세요.

pod 'PromiseKit', '~> 6.0'

3. 네트워크 요청 함수 작성

PromiseKit을 사용하여 네트워크 요청 함수를 작성해야 합니다. 아래는 예시 코드입니다.

import Alamofire
import PromiseKit

func request(url: String) -> Promise<Data> {
    return Promise<Data> { seal in
        AF.request(url)
            .validate()
            .responseJSON { response in
                switch response.result {
                case .success(let value):
                    if let data = try? JSONSerialization.data(withJSONObject: value) {
                        seal.fulfill(data)
                    } else {
                        let error = NSError(domain: "Invalid data format", code: -1, userInfo: nil)
                        seal.reject(error)
                    }
                case .failure(let error):
                    seal.reject(error)
                }
            }
    }
}

위 함수는 Alamofire를 사용하여 웹 서버에 GET 요청을 보내고, 응답을 Promise 형태로 반환합니다.

4. 웹 서버와의 연동

이제 PromiseKit를 사용하여 웹 서버와의 연동을 할 수 있습니다. 아래는 예시 코드입니다.

let apiUrl = "https://example.com/api/data"

request(url: apiUrl)
    .done { data in
        // 성공적으로 데이터를 받아온 경우 처리할 로직
        // ex) 데이터 파싱 및 UI 업데이트 등
    }
    .catch { error in
        // 데이터 요청에 실패한 경우 처리할 로직
        // ex) 에러 메시지 표시 등
    }

위 코드에서 request(url:) 함수를 호출하여 웹 서버로부터 데이터를 비동기로 요청하고, done 블록에서는 성공 시 처리할 로직을 작성합니다. catch 블록에서는 데이터 요청에 실패한 경우 처리할 로직을 작성합니다.

마무리

이번 글에서는 Swift PromiseKit을 사용하여 웹 서버와의 연동 방법을 알아보았습니다. PromiseKit를 사용하면 비동기 작업을 보다 간편하게 다룰 수 있으며, 코드의 가독성을 높일 수 있습니다.

앞으로 PromiseKit을 활용하여 더욱 효율적인 웹 서버 연동 작업을 할 수 있을 것입니다.

참고 자료