[swift] Swift에서 키체인을 사용하여 디바이스 고유 토큰 저장하기

iOS 애플리케이션 개발 중에는 디바이스 고유 토큰을 유지 및 저장하는 경우가 많습니다. 이 토큰은 푸시 알림 등과 같은 서비스에서 사용되며, 애플리케이션이 재설치되거나 업데이트되어도 동일한 토큰을 유지해야 합니다. 이를 위해 Swift에서는 키체인(Keychain)을 사용하여 토큰을 안전하게 저장할 수 있습니다.

1. KeychainWrapper 라이브러리 설치

KeychainWrapper는 iOS에서 키체인을 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. Cocoapods를 사용하고 있다면 Podfile에 다음과 같이 추가합니다.

pod 'SwiftKeychainWrapper'

그리고 터미널에서 pod install을 실행하여 라이브러리를 설치합니다.

2. 토큰 저장하기

다음은 디바이스 고유 토큰을 키체인에 저장하는 예제 코드입니다.

import SwiftKeychainWrapper

let deviceToken: String = "ABCDEF1234567890"

let keychain = KeychainWrapper.standard
keychain.set(deviceToken, forKey: "deviceToken")

KeychainWrapper.standard을 사용하여 키체인 인스턴스를 생성하고, set(_:forKey:) 메서드를 사용하여 토큰을 저장합니다. "deviceToken"은 토큰에 대한 고유한 식별자이므로, 다른 키를 사용할 수도 있습니다.

3. 저장된 토큰 불러오기

다음은 키체인에 저장된 토큰을 불러오는 예제 코드입니다.

import SwiftKeychainWrapper

let keychain = KeychainWrapper.standard
if let deviceToken = keychain.string(forKey: "deviceToken") {
    print("디바이스 고유 토큰: \(deviceToken)")
} else {
    print("토큰이 저장되어 있지 않습니다.")
}

string(forKey:) 메서드를 사용하여 "deviceToken" 키로 저장된 값을 가져올 수 있습니다. 값이 존재하는 경우에는 값을 출력하고, 값이 존재하지 않는 경우에는 메시지를 출력합니다.

4. 토큰 삭제하기

토큰을 삭제해야하는 경우에는 다음과 같이 코드를 작성할 수 있습니다.

import SwiftKeychainWrapper

let keychain = KeychainWrapper.standard
keychain.removeObject(forKey: "deviceToken")

removeObject(forKey:) 메서드를 사용하여 "deviceToken" 키로 저장된 값을 삭제할 수 있습니다.

이렇게 Swift에서 Keychain을 사용하여 디바이스 고유 토큰을 안전하고 일관적으로 저장하고 불러올 수 있습니다.

참고