[swift] Reachability를 사용해 네트워크 상태가 변화하는 시점에 특정 동작 수행하기

이번 포스트에서는 Swift에서 Reachability를 사용하여 네트워크 상태가 변화하는 시점을 감지하고, 이를 통해 특정 동작을 수행하는 방법에 대해 알아보겠습니다.

Reachability란?

Reachability는 iOS 애플리케이션에서 현재의 네트워크 상태를 감지하기 위한 라이브러리입니다. 이를 사용하면 사용자가 현재 인터넷 연결 가능 여부를 확인하고, 네트워크 상태 변화에 따른 적절한 동작을 수행할 수 있습니다.

Reachability 라이브러리 설치

첫째로, Reachability 라이브러리를 프로젝트에 설치해야 합니다. Swift Package Manager를 사용하거나 CocoaPods 등을 활용하여 라이브러리를 추가할 수 있습니다.

Reachability를 통한 네트워크 상태 감지

Reachability를 사용하여 네트워크 상태를 감지하기 위해서는 다음과 같은 단계를 따라야 합니다.

  1. Reachability 라이브러리를 import 합니다.
import Reachability
  1. Reachability 인스턴스를 생성합니다.
let reachability = try! Reachability()
  1. NotificationCenter를 사용하여 네트워크 상태 변화에 대한 알림을 받습니다.
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged), 
                                       name: .reachabilityChanged, object: reachability)
  1. 알림을 받을 함수를 작성합니다.
@objc func reachabilityChanged(notification: Notification) {
    let reachability = notification.object as! Reachability
    
    if reachability.connection != .unavailable {
        // 네트워크에 연결되었을 때 수행할 동작
        print("네트워크에 연결되었습니다.")
    } else {
        // 네트워크에 연결되지 않았을 때 수행할 동작
        print("네트워크에 연결되지 않았습니다.")
    }
}
  1. Reachability 인스턴스를 시작합니다.
try! reachability.startNotifier()
  1. 필요에 따라 Reachability 인스턴스를 종료합니다.
reachability.stopNotifier()

위와 같이 Reachability를 사용하면 앱 내에서 네트워크 상태의 변화를 감지하고, 이에 따라 적절한 동작을 수행할 수 있습니다.

결론

이번 포스트에서는 Swift에서 Reachability를 사용하여 네트워크 상태 변화를 감지하고, 이를 통해 특정 동작을 수행하는 방법에 대해 알아보았습니다. Reachability를 활용하면 앱의 네트워크 관련 기능을 보다 유연하게 처리할 수 있습니다.

참고: Reachability 라이브러리의 자세한 사용 방법은 공식 문서를 참고하시기 바랍니다. (Reachability GitHub)