[swift] SwiftyUserDefaults를 사용하여 복잡한 데이터 구조 저장하기

SwiftyUserDefaults는 Swift로 작성된 간단하고 강력한 라이브러리로, UserDefaults를 더 쉽게 사용할 수 있게 해줍니다. 이 라이브러리를 사용하면 UserDefaults를 통해 복잡한 데이터 구조를 저장하는 것이 매우 간편해집니다.

import SwiftyUserDefaults

struct Person: Codable {
    let name: String
    let age: Int
    let address: String
}

extension DefaultsKeys {
    static let person = DefaultsKey<Person>("person")
}

// 저장하기
let person = Person(name: "John", age: 30, address: "123 Main St")
Defaults[.person] = person

// 불러오기
let loadedPerson = Defaults[.person]
print(loadedPerson)

위의 예제에서는 SwiftyUserDefaults를 사용하여 Person 구조체를 UserDefaults에 저장하고 불러오는 방법을 보여줍니다.

먼저 Person 구조체를 Codable하게 만들어 줍니다. Codable을 채택하면 Person 구조체의 인스턴스를 직렬화(serialization)하고 역직렬화(deserialization)할 수 있도록 도와줍니다.

다음으로, DefaultsKeys를 확장(extension)하여 person이라는 키를 정의해줍니다. 이 키를 사용하여 UserDefaults에서 Person 구조체를 저장하고 불러올 수 있습니다.

마지막으로, person 인스턴스를 UserDefaults에 저장하고 불러올 수 있습니다. 저장할 때는 [.person] 문법을 사용하여 Defaults 객체에 대한 subscript를 호출하고, 불러올 때는 동일한 방법으로 [.person] subscript를 호출하여 저장된 값을 가져옵니다.

위의 예제를 실행하면, 콘솔에 Person(name: "John", age: 30, address: "123 Main St")가 출력될 것입니다.

SwiftyUserDefaults는 쉬운 문법을 제공하여 UserDefaults를 사용하는 것을 단순화합니다. 또한 Codable 프로토콜을 사용하여 복잡한 데이터 구조를 간편하게 저장하고 불러올 수 있습니다.

더 자세한 내용은 SwiftyUserDefaults 공식 GitHub 저장소를 참조해주세요.