[swift] Reachability를 사용해 네트워크 연결이 가능한지 확인하기

앱 개발을 진행하면서 가끔 네트워크 연결 상태를 확인해야 할 때가 있습니다. 사용자에게 네트워크 연결이 없을 경우 적절한 알림을 제공하거나 네트워크가 연결된 상태에서만 특정 기능을 사용하기 위해서 이러한 점이 필요합니다. Swift에서는 Reachability라는 라이브러리를 사용하여 간단하게 네트워크 연결 상태를 확인할 수 있습니다.

이 블로그에서는 Swift에서 Reachability를 사용하여 네트워크 연결 가능 여부를 확인하는 방법에 대해 알아보겠습니다.

Reachability 라이브러리 가져오기

Reachability를 사용하기 위해서는 먼저 Reachability 라이브러리를 가져와야 합니다. Reachability는 Cocoapods를 통해 쉽게 설치할 수 있습니다. Podfile에 다음과 같은 코드를 추가하고, pod install 명령어를 실행하세요.

pod 'ReachabilitySwift'

Reachability 클래스 사용하기

Reachability를 사용하기 위해서는 import ReachabilitySwift로 Reachability 라이브러리를 불러와야 합니다. 다음으로, Reachability 객체를 생성하고 해당 객체를 통해 네트워크 연결 상태를 확인할 수 있습니다.

import ReachabilitySwift

let reachability = Reachability()!

if reachability.isReachable {
    print("네트워크에 연결되었습니다.")
} else {
    print("네트워크에 연결되어 있지 않습니다.")
}

위의 코드에서는 Reachability 객체를 생성한 후 isReachable 속성을 통해 현재의 네트워크 연결 상태를 확인하고 있습니다. 만약 연결되어 있다면 “네트워크에 연결되었습니다.”를 출력하고, 연결되어 있지 않다면 “네트워크에 연결되어 있지 않습니다.”를 출력합니다.

Reachability 상태 변화 감지하기

때로는 네트워크 연결 상태가 변경될 때마다 알림을 받아야 하는 경우가 있습니다. 이를 위해 Reachability는 whenReachablewhenUnreachable 클로저를 제공합니다.

reachability.whenReachable = { reachability in
    print("네트워크에 연결되었습니다.")
}

reachability.whenUnreachable = { reachability in
    print("네트워크에 연결되어 있지 않습니다.")
}

위의 코드에서는 네트워크 연결 상태가 변경될 때마다 해당하는 클로저를 실행하여 알림을 받을 수 있습니다. whenReachable 클로저는 네트워크에 연결되었을 때 실행되고, whenUnreachable 클로저는 네트워크에 연결되어 있지 않을 때 실행됩니다.

참고 자료

이제 Swift에서 Reachability를 사용하여 네트워크 연결이 가능한지 확인하는 방법을 알게 되었습니다. 앱 개발 중에 네트워크 상태를 확인해야 하는 경우 Reachability를 사용하여 적절한 대응을 할 수 있습니다.