[swift] 데이터 저장과 관리 (UserDefaults, Core Data)

iOS 앱에서 사용자 데이터를 저장하고 관리하는 것은 매우 중요합니다. 이 글에서는 UserDefaults와 Core Data 두 가지 주요 데이터 저장 및 관리 방법에 대해 살펴보겠습니다.

UserDefaults

UserDefaults는 간단한 데이터를 키-값 쌍으로 저장하고 관리하는 데 사용됩니다. 보통 앱 설정, 사용자 기본 값, 로그인 정보 등을 저장하는 데에 사용됩니다.

UserDefaults를 사용하면 Swift 코드에서 다음과 같이 데이터를 저장할 수 있습니다.

let defaults = UserDefaults.standard
defaults.set("user@example.com", forKey: "email")

또한, 데이터를 가져올 때에는 다음과 같이 합니다.

if let email = defaults.string(forKey: "email") {
    print("이메일 주소: \(email)")
}

UserDefaults는 간단한 데이터를 저장하고 읽어올 때에 유용하지만, 복잡한 데이터 구조나 대량의 데이터를 저장하기에는 적절하지 않습니다.

Core Data

Core Data는 iOS 앱에서 구조화된 데이터를 관리하기 위한 프레임워크로, 관계형 데이터베이스와 유사한 방식으로 사용됩니다. Core Data를 사용하면 앱 내에 복잡한 데이터를 저장하고 관리할 수 있으며, 데이터베이스 쿼리 및 관계 설정 등을 지원합니다.

먼저, 데이터 모델을 정의하고 Core Data 스택을 설정해야 합니다. 그리고 데이터를 저장할 때에는 다음과 같이 합니다.

let context = persistentContainer.viewContext
let newUser = User(context: context)
newUser.name = "John Doe"
newUser.email = "john@example.com"

do {
    try context.save()
} catch {
    print("데이터 저장 실패: \(error)")
}

Core Data를 사용하면 데이터를 복잡하고 구조적으로 저장하고 관리할 수 있으며, 성능과 메모리 효율성 측면에서도 우수한 성능을 보입니다.

요약

UserDefaults는 간단한 데이터 저장 및 관리에 유용하며, Core Data는 복잡하고 구조화된 데이터를 처리할 때 적합합니다. 각각의 사용 사례에 따라 적합한 방법을 선택하여 데이터를 효율적으로 저장하고 관리할 수 있습니다.