[swift] Reachability를 사용해 특정 도메인의 연결 상태를 감지하는 방법

앱에서 네트워크 연결 상태를 감지하고 특정 도메인의 연결 상태를 확인해야 할 때가 있습니다. Reachability를 사용하면 쉽게 네트워크 상태를 감지할 수 있습니다. 이번 글에서는 Swift에서 Reachability를 사용하여 특정 도메인의 연결 상태를 감지하는 방법을 알아보겠습니다.

Reachability 라이브러리 설치

Reachability는 네트워크 상태를 감지하기 위한 라이브러리입니다. CocoaPods를 사용하여 Reachability를 설치할 수 있습니다. Podfile에 다음과 같이 추가해주세요.

pod 'ReachabilitySwift'

Terminal에서 pod install 명령어를 실행하여 Reachability를 설치합니다.

Reachability 클래스 활용하기

Reachability 클래스는 실제 네트워크 연결 상태를 감지하는 기능을 제공합니다. 먼저, Reachability 객체를 생성하고 원하는 도메인을 감지하도록 설정해야 합니다.

import Reachability

class ViewController: UIViewController {

    let reachability = try! Reachability()

    override func viewDidLoad() {
        super.viewDidLoad()

        reachability.whenReachable = { reachability in
            if reachability.connection == .wifi {
                print("WiFi 연결")
            } else {
                print("데이터 연결")
            }
        }
        
        reachability.whenUnreachable = { _ in
            print("인터넷 연결 끊김")
        }

        do {
            try reachability.startNotifier()
        } catch {
            print("Reachability 시작 실패")
        }
    }

    // ...

}

위의 예시 코드에서는 Reachability 클래스를 임포트하고, ViewController에서 reachability 인스턴스를 생성합니다. whenReachable 클로저는 해당 도메인에 연결 가능한 상태일 때 실행되는 블록이고, whenUnreachable 클로저는 해당 도메인에 연결이 끊긴 경우 실행되는 블록입니다. 원하는 도메인의 연결 상태를 확인하는 로직을 각 블록 안에 작성하면 됩니다.

마지막으로, viewDidLoad에서 reachability.startNotifier()를 호출하여 실제로 네트워크 상태 변경을 감지하도록 설정합니다.

결론

Reachability를 사용하여 특정 도메인의 연결 상태를 감지하는 방법을 알아보았습니다. 이를 활용하면 앱에서 네트워크 상태를 실시간으로 감지하여 적절한 처리를 할 수 있습니다. Reachability는 네트워킹 기능을 다룰 때 매우 유용한 도구이므로, 많이 활용하는 것을 추천합니다.


참고: Reachability Swift