[swift] Swift Moya에서 네트워크 에러 핸들링하기

개요

Moya는 iOS 앱에서 네트워크 작업을 처리하기 위한 강력한 라이브러리입니다. 그러나 실제로 네트워크 작업을 수행하는 동안, 시스템 에러나 서버에서 반환된 에러와 같은 네트워크 에러를 다루는 것은 중요한 부분입니다. 이러한 에러를 적절하게 처리하는 방법에 대해 알아보겠습니다.

Moya 에러 핸들링

Moya는 네트워크 작업 중에 발생하는 여러 가지 에러를 처리하는 방법을 제공합니다. 주로 Moya에서 발생하는 에러는 MoyaError 타입으로 표현됩니다.

일반적으로 네트워크 에러를 핸들링하기 위해서는 Moya의 Response를 이용하여 응답을 확인해야 합니다. 예를 들어, HTTP 상태 코드가 200 이외의 값이면 에러로 처리할 수 있습니다.

아래는 Moya에서 네트워크 에러를 핸들링하는 코드 예시입니다.

provider.request(.getSampleData) { result in
    switch result {
    case .success(let response):
        if response.statusCode != 200 {
            // 에러 처리
            break
        }
        // 성공 처리
    case .failure(let error):
        // 에러 처리
        break
    }
}

에러 핸들링 확장

Moya의 에러 핸들링 기능을 더욱 편리하게 사용할 수 있도록, 에러를 처리하는 코드를 확장하여 구현할 수 있습니다. 아래는 Moya에서 에러 핸들링을 위한 확장 코드의 예시입니다.

extension MoyaError {
    var localizedDescription: String {
        if let response = self.response, let json = try? response.mapJSON() {
            // JSON 파싱 에러 핸들링
            return "JSON 파싱 에러"
        }
        return "네트워크 에러"
    }
}

위의 확장 코드를 사용하면, localizedDescription 속성을 통해 네트워크 에러의 상세 내용을 쉽게 확인할 수 있습니다.

결론

Swift Moya는 네트워크 작업을 편리하게 처리할 수 있는 강력한 도구입니다. 네트워크 에러를 적절하게 핸들링하는 것은 안정적인 앱을 개발하는 데 중요한 요소입니다. Moya의 에러 핸들링 기능을 활용하여 원활한 앱 개발에 도움이 되길 바랍니다.

참고 자료