[swift] 코어 데이터 백업 및 복원

코어 데이터(Core Data)는 iOS 및 macOS에서 데이터를 관리하고 저장하기 위한 프레임워크입니다. 데이터의 보안성을 위해 백업과 복원 기능이 중요합니다. 이번 포스트에서는 코어 데이터의 백업과 복원에 대해 알아보겠습니다.

1. 코어 데이터 백업

코어 데이터의 백업은 데이터의 손실을 방지하기 위해 중요합니다. 다음은 코어 데이터를 백업하는 방법입니다.

  1. 앱 내에서 백업 파일 저장 위치 설정
    let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let backupDirectory = documentsDirectory.appendingPathComponent("CoreDataBackup")
    try? FileManager.default.createDirectory(at: backupDirectory, withIntermediateDirectories: true, attributes: nil)
    
  2. 코어 데이터 스토어 파일 백업
    let storeURL = // 코어 데이터 스토어 파일 URL
    let backupURL = backupDirectory.appendingPathComponent("CoreDataStore.sqlite")
    try? FileManager.default.copyItem(at: storeURL, to: backupURL)
    
  3. 백업된 파일을 iCloud 등 다른 저장소로 전송
    let fileCoordinator = NSFileCoordinator(filePresenter: nil)
    fileCoordinator.coordinate(writingItemAt: backupURL, options: .forMoving, error: nil) { backupURL in
     // 파일을 전송하는 로직
    }
    

2. 코어 데이터 복원

백업된 코어 데이터를 복원하는 방법은 다음과 같습니다.

  1. 복원할 파일을 다운로드하여 앱 내 저장소로 이동
    let backupURL = // 다운로드된 백업 파일 URL
    let storeURL = // 코어 데이터 스토어 파일 URL
    try? FileManager.default.replaceItemAt(storeURL, withItemAt: backupURL)
    
  2. 코어 데이터 스토어를 다시 로드하여 변경사항 적용
    let container = NSPersistentContainer(name: "DataModel")
    container.loadPersistentStores(completionHandler: { storeDescription, error in
     if let error = error {
         // 복원 실패 처리
     } else {
         // 복원 성공 처리
     }
    })
    

3. 참고 자료

위 방법을 통해 코어 데이터의 백업과 복원을 유지하여 중요한 데이터의 안정성을 확보할 수 있습니다.