[swift] 데이터 저장

Swift는 애플의 강력한 프로그래밍 언어로, 데이터를 저장하고 관리하는 데 매우 편리한 기능을 제공합니다. 여러가지 방법으로 데이터를 저장할 수 있으며, 이 글에서는 몇 가지 주요한 방법을 살펴보겠습니다.

1. UserDefaults

UserDefaults는 가장 간단하고 편리한 데이터 저장 방법 중 하나입니다. 주로 사용자 설정, 애플리케이션 상태 등의 작은 데이터를 저장하는 데 사용됩니다. 아래는 UserDefaults를 사용하여 데이터를 저장하는 예시입니다.

let defaults = UserDefaults.standard
defaults.set("John", forKey: "name")
let name = defaults.string(forKey: "name")

UserDefaults의 set(_:forKey:) 메서드를 사용하여 데이터를 저장하고, string(forKey:) 메서드를 사용하여 데이터를 가져옵니다.

2. 파일 시스템

Swift에서 데이터를 영구적으로 저장하기 위해 파일 시스템을 사용할 수 있습니다. 주로 큰 용량의 데이터나 구조화된 데이터를 저장하는 데 사용됩니다. 아래는 파일 시스템을 사용하여 데이터를 저장하는 예시입니다.

let fileManager = FileManager.default
let documentsDirectory = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let fileURL = documentsDirectory.appendingPathComponent("data.txt")

let data = "Hello, world!".data(using: .utf8)
try data?.write(to: fileURL)
let savedData = try Data(contentsOf: fileURL)
let savedText = String(data: savedData, encoding: .utf8)

위의 예시에서는 FileManager를 사용하여 앱의 문서 디렉토리를 가져오고, url(for:in:appropriateFor:create:) 메서드를 사용하여 파일의 경로를 설정합니다. 그 후 write(to:) 메서드를 사용하여 데이터를 파일에 저장하고, Data(contentsOf:) 메서드와 String(data:encoding:) 메서드를 사용하여 데이터를 다시 읽어옵니다.

3. CoreData

CoreData는 앱의 데이터 모델을 관리하고 지속성을 제공하는 프레임워크입니다. CoreData를 사용하면 데이터베이스를 생성하고 관리할 수 있으며, 복잡한 데이터 관리 작업을 보다 쉽게 처리할 수 있습니다. 아래는 CoreData를 사용하여 데이터를 저장하는 예시입니다.

import CoreData

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
    return
}

let context = appDelegate.persistentContainer.viewContext

let entity = NSEntityDescription.entity(forEntityName: "Person", in: context)!
let person = NSManagedObject(entity: entity, insertInto: context)

person.setValue("John", forKeyPath: "name")
person.setValue(25, forKeyPath: "age")

do {
    try context.save()
} catch let error as NSError {
    print("Could not save. \(error), \(error.userInfo)")
}

위의 예시에서는 앱 델리게이트에서 persistentContainer를 사용하여 CoreData의 컨텍스트를 가져옵니다. 그 후 NSEntityDescription를 사용하여 엔티티를 만들고, NSManagedObject를 사용하여 데이터를 저장합니다. 마지막으로 context.save()를 호출하여 변경 사항을 저장합니다.

결론

이 글에서는 Swift에서 데이터를 저장하는 세 가지 주요한 방법을 살펴보았습니다. UserDefaults를 사용하여 작은 데이터를 저장하고, 파일 시스템을 사용하여 대용량이나 구조화된 데이터를 저장할 수 있으며, CoreData를 사용하여 데이터베이스를 관리할 수 있습니다. 앱의 요구 사항에 맞게 적절한 방법을 선택하고 사용하여 데이터를 효율적으로 저장해보세요.

참고 자료