New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[⭐️ TIP] CloudKit 공부 #3
Comments
우선 애플 공식홈페이지에 있는것부터 살펴보죠https://developer.apple.com/icloud/cloudkit/
네 이걸 통해서 iCloud 계정을 구독해야겠다는 결심이 섰습니다... 하하... 그래요 애플이 내게 주는 돈이 얼만데 이정도 푼돈은 내줄게...
네 그렇습니다. 이 녀석을 쓰게 되면, 우리의 앱이 cloud app이 됩니다. Wow.
또한 데이터의 보안이 보장된다는 점도 매우 좋네요! 저희는 서버를 통해 서로의 메시지를 전달할텐데, 그 또한 민감한 내용이 들어갈 수도 있으니까요.
하나하나 살펴봅시다! |
Desigining for CloudKithttps://developer.apple.com/icloud/cloudkit/designing/Containers
containers는 logical한 space인데, CloudKit은 이 containers라 불리는 녀석을 이용해서 데이터를 조직화한다고 하네요. Databases
근데 위에서 살펴본 container란 녀석이 글쎄 무려 3가지의 database를 가질 수 있다고 합니다. 바로 public, private, shared 입니다. Zones
네 그렇게 지금까지 살펴본 결과, 대체적으로는 하나의 앱은 하나의 container를 사용하고, 그 하나의 container 내에는 public, private, shared라는 세 종류의 database들이 용도에 맞게 선택적으로 잘 사용된다는걸 알 수 있었습니다. 그리고 그러한 database는 data records의 logical한 seperation인 zone들로 이루어져 있습니다. public 이 녀석은 default zone이라고 하는 한 zone만 갖고 있습니다. private 또한 하나의 default zone을 가지는데, 이 녀석은 신기하게도 여러개의 custom zone들로 분리가 될 수 있다고 하네요. shared는 default zone이 없습니다.
당연히 shared에는 default zone이 없으니까, 만일 record가 저장되어야 한다면 public 또는 private으로 갈겁니다. 이때 뭐 해당 database의 default zone에 놔둬지는건 그야말로 '기본값'이겠죠. 근데, 이러한 record들을 private내에서 custom zone으로 넣을 수도 있습니다. 이렇게 하면 무슨 장점이 있을까요? 바로 관련있는 record들끼리 그룹핑이 가능하다는 겁니다. 이렇게 함으로써 효율적인 data transfer를 설계할 수 있게 되죠. Environments
이러한 CloudKit은 project, app에 따라 개별적인 개발환경들을 제공한다고 합니다.
Um... okay! 다 이해하셨죠? :) Permissions and access control
만일 data가 public에 들어가기로 결정했다면, 해당 data는 이 앱을 쓰는 모든 유저에게 공유되게 됩니다. 그렇다면 모두가 접근할 수 있는 건 좋은데, 그때의 권한을 좀 세분화해서 할 필요가 있겠어요. '역할'에 따라 permission level을 달리 책정해둔 상태에서, 어떠한 record type에 그러한 '역할'을 부여하면 됩니다. 이러한 permission level에는 read, write, create이 있다고 하네요. 그리고 role에는 World, Authenticated, Creator가 있다고 합니다. Connectivity
app의 데이터 자체를 CloudKit container에다가 넣어둠으로써 여러 기기에서, 여러 사용자 간의 데이터 공유를 한결같이(즉 뭐 믿을 만하게 한다는 뜻이겠죠), 그리고 매우 쉽게 할 수 있다고 합니다. |
여기까지 공부한 결과를 바탕으로 우리 앱에서 어떻게 사용해먹을지 한번 생각해봤습니다.
이렇듯 저희가 CloudKit을 이용한다면, 어떤 데이터를 다루며 각각의 데이터는 어디에서 생성되어서 어디로 흘러가는지를 미리 세분화하여 정리해야 구현할때도 모델을 쉽게 구현할 수 있을 것으로 보입니다. |
CloudKit sample projectshttps://github.com/apple?q=cloudkit-sample&type=repository”이게 들어가보면 알겠지만, 애플이 친절하게도 어떻게 쓰는지를 tutorial로 만들어줬습니다 |
CloudKit frameworkhttps://developer.apple.com/documentation/cloudkit아 이건 뭔가 했더니 공식문서네요! 공식문서를 전부 다 번역하긴 어려우니 읽어보고 주목할 만한 내용이 있다면 추가적으로 update하겠습니다. |
CloudKit development automationhttps://developer.apple.com/icloud/cloudkit/automating/이걸 제대로 써먹고 있는지를 테스트를 할 수 있는 tool을 제공해준다는 것 같네요. |
|
와우 엄청 많네요! 고생하셨어요👏 |
이제 다 읽어봤는데 잘 정리하셨네요 고생하셨습니다 :) |
CloudKit 관련 공부자료 정리
이번에 제이슨이 저희 서버로 CloudKit을 추천해주셨습니다.
저 포함 다른 분들도 잘 모르리라 생각해서, 공부 내용을 하나하나 정리해 나갈려고 합니다.
The text was updated successfully, but these errors were encountered: