[swift] Reachability를 사용해 인터넷 연결 상태를 감지하는 방법

iOS 앱을 개발할 때, 사용자의 인터넷 연결 상태를 감지하는 것은 매우 중요한 부분 중 하나입니다. Reachability 라이브러리를 사용하면 간단하게 인터넷 연결 상태를 체크할 수 있습니다. 이번 블로그 포스트에서는 Swift에서 Reachability를 사용하여 인터넷 연결 상태를 감지하는 방법에 대해 알아보겠습니다.

Reachability 라이브러리 설치

먼저, Reachability 라이브러리를 프로젝트에 추가해야 합니다. Reachability 라이브러리를 사용하려면 CocoaPods을 사용하여 설치할 수 있습니다. 프로젝트의 Podfile에 다음 줄을 추가합니다:

pod 'ReachabilitySwift'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다:

$ pod install

Reachability 클래스 사용하기

Reachability를 사용하기 위해 우선 ReachabilitySwift 라이브러리를 import 해주세요.

import Reachability

Reachability 객체를 생성하고 원하는 동작을 수행하는 예제 코드는 다음과 같습니다.

let reachability = try! Reachability()

// 인터넷 연결 상태 체크
if reachability.connection != .unavailable {
    print("인터넷에 연결되었습니다.")
} else {
    print("인터넷에 연결되어있지 않습니다.")
}

// 인터넷 연결 감지 이벤트 처리
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(note:)), name: .reachabilityChanged, object: reachability)

reachability.startNotifier()

인터넷 연결 상태를 체크하기 위해 reachability.connection 속성을 사용합니다. .unavailable이 아닐 경우 인터넷에 연결되어 있다고 간주할 수 있습니다.

또한, Reachability 객체를 사용하여 인터넷 연결의 변경 사항을 감지할 수도 있습니다. NotificationCenter를 사용해 .reachabilityChanged 알림을 수신하고, 이에 대한 이벤트 처리 메서드를 구현해야 합니다.

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

    if reachability.connection != .unavailable {
        print("인터넷 연결이 변경되어 다시 연결되었습니다.")
    } else {
        print("인터넷 연결이 변경되어 끊어졌습니다.")
    }
}

마무리

이번 포스트에서는 Swift에서 Reachability를 사용하여 인터넷 연결 상태를 감지하는 방법에 대해 알아보았습니다. Reachability를 사용하면 앱의 사용자가 어떻게 인터넷에 연결되어 있는지 감지하고, 연결 상태 변경에 따른 동작을 수행할 수 있습니다.

더 많은 정보와 옵션에 대해서는 ReachabilitySwift 라이브러리의 공식 문서를 참고해주세요.