SwiftData의 데이터는 어디에 저장되나요?
SwiftData
SwiftData는 데이터 영속성을 제공하는 프레임워크입니다.
코드로 데이터 모델 정의, 저장소 구성, 쿼리, 동기화까지 가능하며, SwiftUI와 조화롭습니다.🌸
핵심 특징
- Swift 선언형 :
@Model매크로로 스키마를 생성합니다. - 자동 저장/불러오기 :
ModelContext를 통해 데이터의 변경을 추적하고 자동으로 저장합니다. - 강력한 쿼리 :
- SwiftUI 통합 :
@Query,@Bindable등을 통해 UI 바인딩(redraw)을 할 수 있습니다. - Core Data 기반 저장소 : 내부적으로는 Core Data 저장 엔진을 사용합니다.
사용 방법
Entity 모델 정의
@Model 매크로를 통해 클래스를 정의하면, 스키마로 변환해줍니다.
그리고 프로퍼티 정의시 앞에 @Attribute(.unique)를 표기하면, 해당 프로퍼티를 unique key처럼 설정할 수 있습니다.
ModelContainer 초기화
ModelContainer는 앱 내에서 SwiftData를 통해 저장한 데이터들의 저장소 역할을 하며, 앱 메인에서 앱 전체 모델 컨테이너를 초기화(setup)합니다.
var body: some Scene {
WindowGroup {
DailyDetailView(store: store)
.modelContainer(modelContainer)
}
}ModelContext
ModelContext는 데이터 저장소에 접근하기 위한 중간 계층이라고 할 수 있습니다.
데이터 추가, 삭제, 변경 추적, 조회 등 저장소에 접근해야 하는 작업은 모두 ModelContext를 통해 할 수 있습니다.