Jiwift

iOS 앱 데이터 서버 없이 백업과 복원을 무료로 하는 법 본문

내 작품/복붙태그

iOS 앱 데이터 서버 없이 백업과 복원을 무료로 하는 법

지위프트 2024. 2. 8. 23:27
반응형

iOS 환경의 앱을 Swift로 구현하면서 앱 데이터 백업과 복원을 무료로 하는 방법과 생각을 공유합니다.

 

 

 개인이 앱을 만들다 보면 서버 없이 구현하는 경우가 많습니다. 이런 경우 DB는 다양한 라이브러리가 있다고 해도 사용자의 데이터를 백업하고 복원하는 데는 무리가 있습니다. 

 

 일단 서버를 사용하지 않고, 백업과 복원이 가능해야 하고, 돈이 안 들어야 하고, 파일을 안전하게 보관해야 한다는 조건이 있습니다.

 

이미 알고 있던 것

CoreData

 앱 데이터를 백업을 해주지만, 저는 Realm를 사용했기 때문에 생각을 하지 않기로 했습니다. 

 

구글 드라이브

 사용자의 구글 로그인을 통해서 드라이브 접근 권한을 받고, 드라이브 안에 앱 저장 공간을 확보하는 것으로 알고 있습니다. 무료라고는 하나 API를 연결하고 로그인도 해야 합니다. 어려운 작업은 아닙니다. 다른 앱에서 적용된 걸 보면 백업은 되었어도 구글 드라이브에서 확인할 수는 없습니다. 

 

그 외 새롭게 시도한 것 

 iCloud Container 

 아이클라우드에 파일을 백업하고 읽어드릴 수 있습니다. 테스트를 해보니 iCloud에서 백업된 내역을 확인할 수는 없습니다. 백업까지는 완료했으나 다른 방법을 다시 생각했습니다. 그냥 계속 새로운 방법을 해보고 싶어서.. 

 

적용 예정

파일 (Files) 앱 사용

 조금 복잡하기는 하지만 다른 도구를 최대한 빌리지 않으면서도 파일이 눈에 보이는 게 재미가 있을 것 같아서 '파일 (Files)'앱을 사용해보려고 결정했습니다. 

 

1. 내가 생성한 파일을 저장할 수 있는가.

-> 앱에서 파일 혹은 이미지를 생성해서 공유 방식을 통해서 저장 가능

2. 파일을 불러와서 읽을 수 있는가 

-> UIDocumentPickerViewController를 통해서 내 앱으로 다시 불러올 수 있다.

3. 앱을 삭제해도 되는가

-> 앱을 삭제해도 iCloud Drive 환경에 남아있어서 다른 곳에서도 확인이 가능하다.

 

 작업하기 전에 테스트와 조사를 통해서 위 3가지 조건을 만족한다는 것을 알고 진행하려고 합니다. 

 

현재까지 완료된 것

 1. Realm 데이터를 Json 데이터로 변환

 2. 변환된 JSON 데이터를 앱 샌드박스 공간에 저장

 3. 저장된 파일을 UIActivityViewController 통해서 공유

 

 JSON 데이터를 바로 공유할 수는 있으나 사용자가 이름을 설정을 해야 하고 JSON 파일이 아닌 Text 파일로 저장된다. 이러면 사용자들은 복잡할 수 있기 때문에 이름과 형식 정도는 앱에서 하고 공유를 하는 게 좋다는 판단이 섰다. 

(구글 드라이브같은 것들을 사용했다면 사실 처음부터 복잡하지 않게 백업이 가능하다...ㅎㅎㅎ)

(다운로드 후에 하는 작업까지는 어떻게 터치를 하지 못한다...)

 

앞으로 해볼 것

 1. JSON 파일을 압축을 한번 하려고 한다.(비밀번호 설정까지 된다면 할 예정)

 2. 최종 결과물은 압축 파일을 내보내는 것이다. 

 3. 압축 파일을 다시 불러와 위 과정을 반대로 작업해서 데이터 복원까지 

 

 

 

 실험을 위해 출시한 앱이기 때문에 비효율적이라도 이것 저것 테스트를 해보는 게 목적입니다. 

 

Restore your application’s data from iCloud and track progress | by Rajat Sharma | The Startup | Medium 

 

Restore your application’s data from iCloud and track progress

In this article, I am going to guide you through a step by step process of restoring your application’s data backed up on iCloud and…

medium.com

ios - Convert array to JSON string in swift - Stack Overflow

 

Convert array to JSON string in swift

How do you convert an array to a JSON string in swift? Basically I have a textfield with a button embedded in it. When button is pressed, the textfield text is added unto the testArray. Furthermore...

stackoverflow.com

 

반응형