[swift] 컬렉션의 저장과 로드

앱을 개발하다 보면 사용자의 데이터를 저장하고 로드하는 기능을 구현해야 하는 경우가 많습니다. 특히, 여러 가지 데이터를 손쉽게 저장하고 불러올 수 있는 방법이 필요한데, Swift에서는 이를 위해 다양한 방법을 제공합니다. 이번 글에서는 Swift를 사용하여 컬렉션 데이터를 저장하고 로드하는 방법에 대해 알아보겠습니다.

UserDefaults를 활용한 저장과 로드

가장 간단한 방법으로, UserDefaults를 사용하여 데이터를 저장하고 불러올 수 있습니다. UserDefaults는 간단한 키-값 형태의 데이터를 저장하는 데에 적합한 방법입니다.

// 데이터 저장
UserDefaults.standard.set(["apple", "banana", "orange"], forKey: "fruits")

// 데이터 로드
if let savedFruits = UserDefaults.standard.array(forKey: "fruits") as? [String] {
    print(savedFruits)
}

위 예시에서는 “fruits”라는 키로 배열 데이터를 저장하고 불러오는 과정을 보여줍니다.

Codable 프로토콜을 활용한 저장과 로드

더 복잡한 데이터 구조를 저장하고 불러올 때는 Codable 프로토콜을 사용할 수 있습니다. Codable 프로토콜을 준수하는 데이터 모델을 정의하고, 이를 활용하여 파일 또는 네트워크를 통해 저장하고 불러올 수 있습니다.

예를 들어, 다음과 같이 Codable 프로토콜을 준수하는 구조체를 정의하고 활용할 수 있습니다.

struct Note: Codable {
    var title: String
    var content: String
}

let note = Note(title: "Meeting", content: "Prepare presentation materials")

// 데이터 저장
do {
    let encodedNote = try JSONEncoder().encode(note)
    UserDefaults.standard.set(encodedNote, forKey: "note")
} catch {
    print(error)
}

// 데이터 로드
if let savedNoteData = UserDefaults.standard.data(forKey: "note") {
    do {
        let decodedNote = try JSONDecoder().decode(Note.self, from: savedNoteData)
        print(decodedNote)
    } catch {
        print(error)
    }
}

위 예시에서는 Codable 프로토콜을 준수하는 Note 구조체를 정의하고, JSONEncoder 및 JSONDecoder를 사용하여 데이터를 저장하고 불러오는 과정을 보여줍니다.

Core Data를 활용한 저장과 로드

매우 복잡한 데이터 구조를 다루거나 대량의 데이터를 다루어야 할 때는 Core Data를 활용할 수 있습니다. Core Data는 데이터 모델링, 관리 및 영구 저장을 위한 프레임워크로, 대규모 앱의 데이터 관리에 적합한 방법입니다.

// Core Data를 활용한 데이터 저장 및 로드 예시는 여기에 작성합니다.

위의 방법들을 통해 Swift에서 컬렉션 데이터를 저장하고 불러오는 방법에 대해 알아보았습니다. 각각의 방법은 데이터의 복잡도와 용도에 따라 적합한 방법을 선택하여 활용할 수 있습니다.