SwiftData는 iOS 17에서 새롭게 도입된 애플의 데이터 관리
프레임워크로, Swift 언어와 밀접하게 통합되어 객체 지향적인 방식으로
데이터를 영속적으로 저장하고 관리할 수 있게 해줍니다. 기존의 Core Data를
대체하거나 보완하는 목적으로 설계되었습니다.
@Model)를 통해 데이터import SwiftData
@Model
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let container = try ModelContainer(for: Person.self)
let person = Person(name: "Eden", age: 29)
container.mainContext.insert(person)
let descriptor = FetchDescriptor<Person>(sortBy: [SortDescriptor(\.name)])
let people = try container.mainContext.fetch(descriptor)
항목 SwiftData Core Data
모델 정의 @Model 매크로 사용 NSManagedObject 서브클래스
문법 난이도 간단 복잡
SwiftUI 통합 매우 자연스러움 다소 불편
마이그레이션 자동 처리 강화 직접 관리 필요
클라우드 연동 CloudKit 지원 강화 별도 설정 필요
SwiftData는 Core Data의 복잡성을 줄이고 SwiftUI와의 통합성을 극대화한
차세대 데이터 관리 프레임워크입니다. iOS 17 이상에서 앱을 개발한다면
Core Data 대신 SwiftData 사용을 우선적으로 고려하는 것이 효율적입니다.