[swift] Swift KeychainAccess를 사용하여 사용자 인증 정보를 저장하는 방법

이 글에서는 Swift KeychainAccess 라이브러리를 사용하여 iOS 애플리케이션에서 사용자 인증 정보를 안전하게 저장하는 방법에 대해 알아보겠습니다.

Table of Contents

KeychainAccess 라이브러리 가져오기

먼저, KeychainAccess 라이브러리를 가져와야 합니다. 이를 위해 Cocoapods를 사용하여 프로젝트에 라이브러리를 추가합니다. Podfile에 아래 내용을 추가하고 pod install 명령을 실행하세요.

pod 'KeychainAccess'

인증 정보 저장하기

사용자 인증 정보를 Keychain에 저장하려면, 다음과 같은 단계를 따르세요:

import KeychainAccess

let keychain = Keychain(service: "com.example.app") // Keychain에 저장할 서비스 식별자 설정

keychain["username"] = "johndoe" // 사용자 이름 저장
keychain["password"] = "password123" // 비밀번호 저장

위의 예제에서는 KeychainAccess를 가져오고, Keychain 인스턴스를 생성한 후 keychain 변수를 사용하여 저장할 서비스 식별자를 설정합니다. 그런 다음, 사용자 이름과 비밀번호를 keychain 인스턴스에 저장합니다.

인증 정보 불러오기

저장한 인증 정보를 다시 불러오려면, 다음과 같이 코드를 작성하세요:

import KeychainAccess

let keychain = Keychain(service: "com.example.app") // Keychain에 저장한 서비스 식별자와 동일하게 설정

if let username = keychain["username"], let password = keychain["password"] {
    print("Username: \(username)")
    print("Password: \(password)")
} else {
    print("No authentication information found.")
}

위의 예제에서도 KeychainAccess를 가져오고, Keychain 인스턴스를 생성한 후 keychain 변수를 사용하여 저장한 서비스 식별자를 설정합니다. 그런 다음 keychain 인스턴스에서 사용자 이름과 비밀번호를 가져와 출력합니다. 만약 인증 정보가 없다면 해당 메시지를 출력합니다.

인증 정보 삭제하기

Keychain에서 인증 정보를 삭제하려면, 다음과 같이 코드를 작성하세요:

import KeychainAccess

let keychain = Keychain(service: "com.example.app") // Keychain에 저장한 서비스 식별자와 동일하게 설정

do {
    try keychain.remove("username")
    try keychain.remove("password")
} catch {
    print("Failed to remove authentication information: \(error)")
}

위의 예제에서도 KeychainAccess를 가져오고, Keychain 인스턴스를 생성한 후 keychain 변수를 사용하여 저장한 서비스 식별자를 설정합니다. 그런 다음 keychain 인스턴스에서 저장한 인증 정보를 삭제합니다. 만약 삭제에 실패하면 해당 에러를 출력합니다.

이제 Swift KeychainAccess를 사용하여 사용자 인증 정보를 안전하게 저장하는 방법에 대해 알아보았습니다. Keychain을 사용하면 애플리케이션의 인증 정보를 보호하고, 보안에 대한 문제를 피할 수 있습니다.