[TIL] SwiftData

Eden·2025년 8월 21일

SwiftData는 iOS 17에서 새롭게 도입된 애플의 데이터 관리
프레임워크
로, Swift 언어와 밀접하게 통합되어 객체 지향적인 방식으로
데이터를 영속적으로 저장하고 관리할 수 있게 해줍니다. 기존의 Core Data를
대체하거나 보완하는 목적으로 설계되었습니다.


2. 주요 특징

  • Swift 언어와 네이티브 통합: Swift 매크로(@Model)를 통해 데이터
    모델을 쉽게 정의 가능
  • 단순한 문법: Core Data 대비 훨씬 간단한 API 제공
  • 자동 영속성 관리: 별도의 context 관리 없이 저장 및 업데이트 지원
  • CloudKit 통합 지원: iCloud 동기화 지원

3. 기본 사용법

모델 정의

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)

4. SwiftData와 Core Data 비교

항목 SwiftData Core Data


모델 정의 @Model 매크로 사용 NSManagedObject 서브클래스
문법 난이도 간단 복잡
SwiftUI 통합 매우 자연스러움 다소 불편
마이그레이션 자동 처리 강화 직접 관리 필요
클라우드 연동 CloudKit 지원 강화 별도 설정 필요


5. 활용 예시

  • SwiftUI 앱에서 영속적인 데이터 관리
  • 작은 규모의 앱부터 대규모 앱까지 확장 가능
  • 사용자 데이터 동기화 (iCloud 기반)

6. 결론

SwiftData는 Core Data의 복잡성을 줄이고 SwiftUI와의 통합성을 극대화한
차세대 데이터 관리 프레임워크입니다. iOS 17 이상에서 앱을 개발한다면
Core Data 대신 SwiftData 사용을 우선적으로 고려하는 것이 효율적입니다.

profile
iOS Dev

0개의 댓글