Skip to content

[Refactor] SwiftData에서 CoreData로 마이그레이션 - #5

Open
Siwon-L wants to merge 11 commits into
developfrom
feature/migrating-from-Swiftdata-to-Coredata
Open

[Refactor] SwiftData에서 CoreData로 마이그레이션#5
Siwon-L wants to merge 11 commits into
developfrom
feature/migrating-from-Swiftdata-to-Coredata

Conversation

@Siwon-L

@Siwon-L Siwon-L commented Jan 13, 2026

Copy link
Copy Markdown
Member

작업 내용

  • SwiftData에서 CoreData로 마이그레이션
  • iCloud에 Data 백업

배경

  • Cloud Kit을 통한 iCloud에 Data 백업 및 Data Sharing 기능 기획
  • SwiftData의 경우 Cloud Kit 사용에 있어 몇 가지 버그 및 결정적으로 Data Sharing 기능 구현에 한계가 있어 CoreData로 마이그레이션 진행 결정
  • 최종적으로 CoreData로 마이그레이션 및 iCloud에 Data 백업 기능 구현

구현 상세

  • 기존 SwiftData와 동일한 형태의 Data Model을 .xcdatamodel 파일을 통해 CoreData로 구현

  • 로컬에 이미 저장된 데이터를 손실 없이 사용할 수 있도록 SwiftData 프레임워크로 사용했던 데이터 파일을 그대로 CoreData 프레임워크로 사용

    let privateStoreDescription = cloudKitContainer.persistentStoreDescriptions.first
    let privateStoreURL = storesURL?.appendingPathComponent("default.store") /// default.store 파일이 SwiftData로 생성된 데이터 파일
    privateStoreDescription?.url = privateStoreURL
  • CoreData로 Data Model이 변경되면서 발생하는 컴파일 에러 및 런타임에 발생하는 에러와 버그 해결

  • CoreData Data Model에서 기존에 저장되어 있는 배열값을 읽어오지 못하는 문제가 발생해 [NSNumber] 타입으로 읽어와 [Int] 타입으로 타입 변환해서 사용

      /// befor
      @NSManaged public var days: [Int]
      
      /// after
      @NSManaged private var days: [NSNumber]
      public var daysValue: [Int] {
        get { return days.map(\.intValue) }
        set { days = newValue.map { NSNumber(integerLiteral: $0) } }
      }

성과

  • 기존 SwiftData 프레임워크로 저장된 데이터를 손실 없이 CoreData로 마이그레이션 성공
  • iCould 백업을 통해 기기 데이터 연동 및 앱 재설치 시에도 데이터 유지

@Siwon-L Siwon-L changed the title Feature/migrating from swiftdata to coredata [Refactor] SwiftData에서 CoreData로 마이그레이션 Jan 13, 2026
@Siwon-L
Siwon-L force-pushed the feature/migrating-from-Swiftdata-to-Coredata branch from 4fa16c4 to 0765761 Compare January 15, 2026 08:25
@Siwon-L
Siwon-L force-pushed the feature/migrating-from-Swiftdata-to-Coredata branch from 512b6e7 to ac7b7e0 Compare January 21, 2026 02:32
@Siwon-L
Siwon-L force-pushed the feature/migrating-from-Swiftdata-to-Coredata branch from ac7b7e0 to 7440d18 Compare January 21, 2026 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant