[iOS/Swift] Realm - 백업 및 복구 구현하기
·
iOS/🔎 swift 정리하기
💡 백업 / 복구 개인 앱의 경우 개개인에게 백업 복구의 책임을 넘긴다. 개발자 → 기능만 제공, 백업 알아서,, 구글 드라이브, 드랍박스로 백업하기 → 써드파티 프로그램의 정책으로 유지보수 비용이 높다 아이폰 파일 앱 사용하여 백업 복구하도록 하기 1. realm 파일 자체를 압축 마이그레이션 대응이 잘 되어야 한다. 사용자가 백업해두고 한참 뒤에 복구할 수 있기 때문 realm 파일을 복구할 때는 복구 완료 후 앱을 껐다 켜야 함 2. json으로 압축하기 다른 sql을 쓰더라도 대응하기 좋음 🔎 realm 파일 압축하기 백업하고자 하는 파일들의 경로 배열 생성 var urlPaths = [URL]() 도큐먼트 위치 guard let path = documentDirectoryPath() else {..
[iOS/Swift] Realm - Migration
·
iOS/🔎 swift 정리하기
💡 Migration 컬럼 명을 변경하였기 때문에 일치하지 않는다는 런타임 오류가 발생한다. ✅ 스키마 버전 체크 func checkSchemaVersion() { do { let version = try schemaVersionAtURL(realm.configuration.fileURL!) print("schema version: \(version)") } catch { print(error) } } db 테이블 스키마에 대한 버전을 관리하기 위해 migration 작업을 해야한다. realm의 default schema 버전은 0 migration 작업은 appDelegate에서 작업해야 한다. func application(_ application: UIApplication, didFinishLau..
[iOS/Swift] Realm - 이미지 파일 저장하기
·
iOS/🔎 swift 정리하기
서버 통신 한 이미지 파일 저장하고 불러오기 서버 통신을 통해 받은 이미지 url을 데이터 베이스에 저장한 후 꺼내와서 이미지를 로드하면 오류가 발생한다. 데이터 베이스 내부에서 꺼내온 값을 글로벌로 접근하려고 하기 때문에 발생한 오류이다. DispatchQueue 외부에서 상수로 저장한 후 사용하면 오류가 나지 않는다. 이미지를 하나하나 불러올 때 마다 네트워크 통신을 하게 되는데, 이미지의 용량이 크거나 로드할 데이터가 많다면 이미지 로드가 오래 걸릴 수 있다. ❓ 어떻게 해결해야 할까? 이미지 구현을 셀 구성할 때 하지말고, 미리 UIImage 형식으로 변환 후 셀에 보여주는 것. 하지만 이 또한 데이터가 여러개라면 변환하는 데에 오랜 시간이 걸리고, 사용자가 보지 않고 넘겨버릴 이미지까지 모두 로..
[iOS/Swift] Realm - CRUD
·
iOS/🔎 swift 정리하기
💡 swift에서 Realm 사용해보기 ✅ Realm Model 만들기 @Persisted 앱을 종료하더라도 유지되어야 하는 데이터를 지정하기 위해 사용 ✅ PK 지정하기 @Persisted(primaryKey: true) var id = 0 PK값을 별도로 지정할 수도 있고, 자동으로 key값을 지정하도록 할 수 있다. 💡 CRUD import RealmSwift let realm = try! Realm() realm 파일에 접근하는 상수를 선언한다. realm 파일의 위치를 찾는 코드 도큐먼트 폴더 내 default.realm 🔎 Create let realm = try! Realm() let specificPerson = realm.object(ofType: Person.self, forPrimar..