Dev-iOS/iOS

[iOS] CloudKit 학습 - CloudKit 이해

lafortune 2023. 7. 19. 22:20
반응형
본 문서는 학습을 위해 작성한 내용이며, 추가 내용 보강이나 수정이 이루어질 수 있습니다.

 

CloudKit은 Apple이 개발한 클라우드 서비스 프레임워크로, 애플의 iCloud 서비스를 이용하여 앱의 데이터를 저장하고 동기화할 수 있도록 도와줍니다. CloudKit은 iOS, macOS, tvOS, watchOS에서 사용할 수 있습니다. 개발자들은 CloudKit을 사용하여 앱의 데이터를 안전하게 저장하고 관리할 수 있으며, 여러 기기 간의 데이터 동기화 및 사용자 간의 데이터 공유를 쉽게 구현할 수 있습니다.

CloudKit의 주요 기능과 컴포넌트들은 아래와 같습니다.

  • 컨테이너 (Container)
  • 데이터베이스 (Database)
  • 존 (Zone)
  • 쿼리 (Query)
  • 원격알림 (Push Notification)
  • 보안

 

 

1. 컨테이너 (Container)

앱 별로 하나 이상의 컨테이너를 생성하여 데이터를 저장합니다. 

컨테이너는 앱의 데이터를 모두 포함하며, 개인 데이터와 공용 데이터 영역으로 구분됩니다.

 

생성은 Apple Developer 사이트에서 생성이 가능합니다.

Cerificates, Identifiers & Profiles에서 'iCloud Conatiners'를 선택합니다.

Container Identifier 생성

Description에서는 간단한 구분할 수 있는 설명을, Identifier에는 iCloud. 로 시작하는 Identifier를 작성합니다. 보통 iCloud. 뒤에 Bundle Identifier를 작성합니다.

Container Identifier 생성

생성하게 되면 iCloud.developer.apple.com에서 확인이 가능합니다.

iCloud.developer.apple.com 화면

 

Container 두 영역


2. 데이터베이스(Database)

컨테이너 안에는 두 가지 유형의 데이터베이스가 있습니다.

  1. 개인 데이터베이스(Private Database): 각 사용자에게 할당되며, 사용자의 개인 데이터를 저장하는 공간입니다. 사용자는 자신의 개인 데이터베이스에만 접근할 수 있습니다.
  2. 공용 데이터베이스(Public Database): 모든 사용자에게 공개된 데이터를 저장하는 공간입니다. 앱 내에서 공통적으로 사용되는 데이터를 저장하거나 사용자들끼리 정보를 공유할 때 사용합니다.
  3. 공유 데이터베이스(Shared Database): 여러 사용자 간에 데이터를 공유하기 위한 데이터베이스입니다. 사용자들이 협업하거나 특정 데이터를 공유할 때 사용합니다. 공유 데이터베이스에서 사용자들은 주로 CKShare 객체를 이용하여 데이터를 공유하고, 공유에 대한 정보를 저장합니다.

공유 데이터베이스는 개인 데이터베이스와 공용 데이터베이스와는 달리, 특정 사용자들이 선택적으로 접근하고 데이터를 공유할 수 있는 데이터베이스입니다. 공유 데이터베이스를 이용하여 앱에서 사용자들이 협업이나 정보 공유를 수행하는 것이 가능합니다. 예를 들어, 프로젝트 관리 앱에서 특정 프로젝트를 공유하거나 가족 구성원들끼리 캘린더를 공유하는 경우에 공유 데이터베이스를 사용할 수 있습니다.

 

Database 종류

 

3. 존(Zone)

레코드를 그룹화하여 관리하는 논리적 공간입니다. 기본적으로 개인 데이터베이스에는 하나의 기본 존이 있으며, 개발자는 필요에 따라 추가적인 존을 생성할 수 있습니다.

 

 

4. 쿼리(Query)

데이터베이스에서 특정 조건을 만족하는 레코드를 검색하기 위한 기능입니다. 쿼리를 이용하여 효율적으로 원하는 데이터를 불러올 수 있습니다.

 

5. 원격 알림(Push Notification)

데이터베이스의 변경사항을 실시간으로 알려주는 기능입니다. 앱이 백그라운드에서 실행 중일 때도 데이터 변경을 감지하고 즉시 사용자에게 알림을 전달할 수 있습니다.

 

 

6. 보안

 CloudKit은 사용자의 데이터를 안전하게 보호하기 위해 암호화 및 인증 기능을 제공합니다. 개인 데이터베이스에 대한 접근은 사용자의 Apple ID를 통해 인증되며, 데이터는 전송 중이나 저장 중일 때 모두 암호화됩니다. 이를 통해 사용자의 개인 정보 및 데이터가 안전하게 보호됩니다.

추가로, CloudKit은 웹 서비스를 사용하여 서버와 클라이언트 간 데이터 전송을 수행할 수도 있습니다. CloudKit Web Services를 사용하면 웹 애플리케이션 및 서버 애플리케이션에서도 CloudKit 데이터에 접근하고 관리할 수 있습니다. 이를 통해 다양한 플랫폼에서의 데이터 동기화 및 사용자 간 데이터 공유를 더욱 원활하게 처리할 수 있습니다.

 

반응형