[swift] SwiftyUserDefaults로 사용자 로그 관리하기

로그인 정보와 같은 사용자 관리는 애플리케이션의 핵심 기능 중 하나입니다. 이 글에서는 SwiftyUserDefaults를 사용하여 간편하게 사용자 로그 관리를 구현하는 방법을 알아보겠습니다.

SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 더 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. UserDefaults는 사용자의 기본 설정, 애플리케이션 상태 및 기타 중요한 데이터를 저장하는 데 사용됩니다. SwiftyUserDefaults를 사용하면 다음과 같은 장점을 얻을 수 있습니다.

SwiftyUserDefaults 설치

SwiftyUserDefaults는 Swift Package Manager로 설치할 수 있습니다. Package.swift 파일에 다음 코드를 추가해 SwiftyUserDefaults를 프로젝트에 추가합니다.

dependencies: [
    .package(url: "https://github.com/sunshinejr/SwiftyUserDefaults.git", from: "5.0.0")
]

그리고나서 프로젝트를 빌드하면 SwiftyUserDefaults 라이브러리가 자동으로 다운로드되고 프로젝트에 추가됩니다.

사용자 로그 관리 기능 구현하기

먼저, SwiftyUserDefaults를 사용하여 사용자 로그인 정보를 저장하는 방법을 알아보겠습니다.

import SwiftyUserDefaults

// 사용자 로그인 정보 모델
struct User: Codable, DefaultsSerializable {
    var username: String
    var password: String
}

extension DefaultsKeys {
    static let loggedInUser = DefaultsKey<User?>("loggedInUser")
}

// 로그인 기능
func login(username: String, password: String) {
    let user = User(username: username, password: password)
    Defaults[.loggedInUser] = user
}

// 로그아웃 기능
func logout() {
    Defaults[.loggedInUser] = nil
}

// 로그인 상태 확인
func isLoggedIn() -> Bool {
    return Defaults[.loggedInUser] != nil
}

// 현재 로그인한 사용자 정보 가져오기
func getCurrentUser() -> User? {
    return Defaults[.loggedInUser]
}

위 예제에서는 SwiftyUserDefaults를 사용하여 loggedInUser라는 키로 사용자 정보를 저장하고 가져오는 기능을 구현했습니다. User라는 모델은 Codable과 DefaultsSerializable 프로토콜을 준수하여 UserDefaults에 저장 가능한 형식으로 만들어줍니다.

로그인 기능에서는 사용자 이름과 비밀번호를 받아와 loggedInUser 키에 저장하며, 로그아웃 기능에서는 해당 키의 값을 nil로 설정하여 사용자 정보를 제거합니다. 로그인 상태 확인은 loggedInUser 값의 존재 여부로 판단하며, 현재 로그인한 사용자 정보를 가져오는 기능은 해당 값을 반환합니다.

이와 같이 SwiftyUserDefaults를 사용하여 사용자 로그 관리 기능을 손쉽게 구현할 수 있습니다.

결론

SwiftyUserDefaults는 UserDefaults를 더 쉽고 편리하게 사용할 수 있도록 도와주는 라이브러리입니다. 위의 예제를 참고하여 SwiftyUserDefaults를 사용하여 간편하게 사용자 로그 관리 기능을 구현해 보세요!