[swift] Reachability를 사용해 서버와의 통신 상태를 감지하는 방법

앱이 서버와 통신을 수행하는 상황에서 인터넷 연결 상태를 확인하는 것은 매우 중요합니다. iOS 앱에서 인터넷 연결 상태를 감지하기 위해서는 Reachability 라이브러리를 사용할 수 있습니다. Reachability를 사용하면 앱이 온라인 또는 오프라인 상태인지 쉽게 확인할 수 있습니다.

이 튜토리얼에서는 Swift에서 Reachability를 사용하는 방법을 알아보겠습니다.

Reachability 라이브러리 설치

먼저 프로젝트에 Reachability 라이브러리를 설치해야 합니다. Reachability 라이브러리는 CocoaPods를 통해 설치할 수 있습니다.

  1. 프로젝트 폴더로 이동한 후, pod init 명령어를 실행하여 Podfile을 생성합니다.
  2. 생성된 Podfile을 열고 아래와 같이 Reachability를 추가합니다.
target 'YourProjectName' do
  use_frameworks!
  pod 'ReachabilitySwift'
end
  1. 터미널에서 pod install 명령어를 실행하여 Reachability를 설치합니다.

Reachability 클래스 사용하기

  1. Reachability 라이브러리를 import 합니다.
import Reachability
  1. Reachability 인스턴스를 생성합니다.
let reachability = try! Reachability()
  1. Reachability를 시작하여 인터넷 연결 상태를 감지합니다.
reachability.whenReachable = { reachability in
    if reachability.connection == .wifi {
        print("WiFi로 연결되었습니다.")
    } else {
        print("모바일 데이터로 연결되었습니다.")
    }
}

reachability.whenUnreachable = { _ in
    print("인터넷 연결이 끊어졌습니다.")
}

do {
    try reachability.startNotifier()
} catch {
    print("Reachability 시작 중 오류 발생")
}
  1. Reachability를 중지시키고 앱이 종료될 때 알림을 받을 수 있도록 설정합니다.
NotificationCenter.default.addObserver(self, selector: #selector(handleReachabilityChanged), name: .reachabilityChanged, object: reachability)

@objc func handleReachabilityChanged(notification: Notification) {
    let reachability = notification.object as! Reachability

    if reachability.connection != .none {
        print("인터넷 연결이 복구되었습니다.")
    } else {
        print("인터넷 연결이 끊어졌습니다.")
    }
}

위와 같이 Reachability를 사용하면 앱에서 서버와의 통신 상태를 쉽게 감지할 수 있습니다. Reachability를 사용하여 앱의 사용자에게 인터넷 연결 상태를 표시하거나 네트워크 연결이 끊겼을 때 예외 처리를 수행할 수 있습니다.

결론

Reachability를 사용하면 Swift로 개발된 앱에서 서버와의 통신 상태를 쉽게 감지할 수 있습니다. Reachability를 사용하여 인터넷 연결 상태를 모니터링하고, 앱에 적합한 예외 처리를 구현할 수 있습니다.

References