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를 통해 할 수 있습니다.