๐
CloudKit์ด ๋ญ์ผ
- ์ฑ์ ๋ฐ์ดํฐ๋ฅผ iCloud์ ์ ์ฅํ๊ณ , ๋ชจ๋ ๊ธฐ๊ธฐ์ ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ต์ ์ํ๋ก ์ ์ง
- ํจ์จ์ ์ธ ๋๊ธฐํ, ๊ฐ๋จํ ๋ชจ๋ํฐ๋ง, ๊ด๋ฆฌ ๊ธฐ๋ฅ
- ๋น๊ณต๊ฐ ๋ฐ์ดํฐ โ ์ ์ ์ iCloud ๊ณ์ ์ ์ ์ฅ๋๋ฏ๋ก, ์ ์ ์ธต์ด ๋์ด๋๋ ๋ฌด์ ํ ํ์ฅ ๊ฐ๋ฅ
- ๊ณต๊ฐ ๋ฐ์ดํฐ ์ ์ฅ ์ต๋ 1PB
์๋ฆฌ
iCloud Container โ iCloud Data
๊ธฐ๋ณธ ์ํฌํ๋ก์ฐ
- ์ฑ์ ์์ํ๊ณ ์ฒ์์ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ์ ํ์ํ record๋ฅผ ๊ฐ์ ธ์ด
- ์ฌ์ฉ์์ ์์
or ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋ผ ์ฟผ๋ฆฌ๋ฅผ ์ํํจ
- ๊ฐ์ธ or ๊ณต์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ
- ์ฌ๋ฌ ์ ์ฅ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ์์
์ ๋จ์ผ ์์
์ผ๋ก ์ผ๊ด ์ฒ๋ฆฌ
- ๊ด์ฌ record๊ฐ ๋ณ๊ฒฝ๋ ๋ ํธ์ ์๋ฆผ์ ๋ฐ์ ๊ตฌ๋
์ ๋ง๋ฆ
- ์ฑ์ด record์ ๋ํ ๋ณ๊ฒฝ์ฌํญ์ ์์ ํ๋ฉด, ๊ฐ์ฒด ๋ชจ๋ธ ๋ฐ ๋ณด๊ธฐ๋ฅผ ์
๋ฐ์ดํธ
- ๋น๋๊ธฐ ์์
์ ์คํํ ๋ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ ์ฒ๋ฆฌ
xcode์์ iCloud๋ฅผ ์ค์ ํด๋ณด์
project >> sigining & capabilities >> iCloud
์ ์ค์ ํ๋ฉด ์๋ ํ์ ํญ๋ชฉ๋ค์ ์ฒดํฌํ ์ ์๊ฒ ๋์ด์๋ค.
์ด ํญ๋ชฉ๋ค์ด ๋ญ๋๋ฉด,
- Key-value storage
- ์ ์ ๋ํดํธ์ฒ๋ผ ์ฌ์ฉ์๋น maximum 1MB size ๊ณต๊ฐ ์ฌ์ฉ๊ฐ๋ฅ
- Key: 1024๊ฐ
- Value: 1MB
- ๊ฐ Key์ ๋ํ 1KB ๋ฐ์ดํฐ ์ ์ฅํ๋ ๊ฒฝ์ฐ, 1000๊ฐ์ key-value ์์ ์ฌ์ฉ
- iCloud Documents
- ์ฑ์ ๋ฌธ์๋ฅผ ๋ชจ๋ ์ฌ์ฉ์์ ๊ธฐ๊ธฐ์์ ์ฌ์ฉ
- CloudKit
- ๊ณต์ ํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ record, ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ๋ฒ ์ ๊ณต
- Record Type
- key-value ๋์
๋๋ฆฌ ๊ตฌ์กฐ, ๊ฐ ํค == record์ ํ ํ๋
- ํ๋: String, number, date, location, reference, asset
- iCloud๊ฐ ๋ฐ์ดํฐ ์ด๋ ๋ฐ ์ฑ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๊ณต์ ์ด๋ฏ๋ก, ์ฑ์ ๋ชจ๋ธ ๊ฐ์ฒด ๋์ฒดํ๋ฉด ์๋๊ณ , ๊ฐ์ฒด๋ฅผ ๋ก์ปฌ๋ก ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉํด์๋ ์๋จ
- ๋น๋๊ธฐ
- ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๋ฅผ ์ํด completion handler ์ ๊ณตํด์ผ ํจ
- ์ด๊ฑฐ ์ฒดํฌํ๋ฉด ํธ์ ์๋ฆผ์ ๋ฐ์ ๊ตฌ๋
์ ๋ง๋ค๊ธฐ ๋๋ฌธ์, Push Notifications๋ ๊ฐ์ด ์ถ๊ฐ๋จ
CloudKitTrial์ ๋ง๋ค์ด๋ณด์
๐ค Reference
[Swift] iCloud ์ฐ๋ CloudKit ์ฌ์ฉํ๊ธฐ(1/2) - ์ถ๊ฐ ๋ฐ ์ค์
- โ+โ โ container ์ถ๊ฐ
- Apple Developer ์ฌ์ดํธ์ App ID ๋ฑ๋ก
https://developer.apple.com/account/resources/certificates/list
- Identifiers โ Register a new identifier
- App ID ๋ฑ๋กํ๋ ํ๋ฉด์์ ์๋์ iCloud ์ฒดํฌ
- iCloud database๋ฅผ ์ฝ์์์ ํ์ธ
https://icloud.developer.apple.com/dashboard/home/teams/MTUYFM4K8P
์ค๊ฐ์ ์ ๊ณ์ ์๋์๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ, xcode์์ container๋ฅผ 2๊ฐ ๋ง๋๋๊น ์ด ํ๋ฉด์ด ๋ธ..
๐คจ ์๋ฌดํผ ์ด ํ๋ฉด์ด ๋ด์ผ๋๊น,
- Schema ํญ โ Record Types โ โ+โ๋ฒํผ์ผ๋ก ์ฌ์ฉํ ํ์
์ ์
- ๋ธ๋ก๊ทธ ๋ฐ๋ผ์ โBookโ record type ๋ง๋ค์ด๋ณด๊ณ
- Record Fields์ name(String), price(Int64) ์ถ๊ฐ โ Save Changes
indexes ์ค์
- ํจ์จ์ ์ผ๋ก ๊ฒ์ํ ์ ์๋ ๋ฐฉ๋ฒ ์ ๊ณตํ๊ธฐ ์ํด์!!
- name์ ์ ๋ ฌํด์ ๋ณด์ฌ์ฃผ๊ณ ์ถ๋ค โ sortable ์ถ๊ฐ
- name์ ์ฟผ๋ฆฌ๋ก ๊ฒ์ํ๊ณ ์ถ๋ค โ queryable ์ถ๊ฐ
- ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์. Records โ โ+โ๋ฒํผ โ create new record
- Type: Book์ผ๋ก ํด์ Field์ ๋ฐ์ดํฐ๋ฅผ ์ฑ์์ค๋๋น
- ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ณด์. Records โ ์๋ ํญ๋ฐ์ Record type๋ฅผ Book์ผ๋ก ์ค์ ํ๊ณ โQuery Recordsโํ๋ฉด ๊ฒ์์ด ๋๋ค
- ์ด์ Xcode์์ Book์ด๋ผ๋ Record ํ์
์ ๋ถ๋ฌ์ค๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ค ์ ์๊ฒ ํ์.
์์์ผ ํ๋ ํ์
- CKRecord
- CKContainer
- CKQuery
- CKQueryOperation
Private Database
- reading from and writing to a Private Database for a user in your own container on CloudKit servers
https://github.com/apple/sample-cloudkit-privatedb
(์์ธ๋ฏ)=====================
ํ ๊ณ์ ์์ ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ๊ณต์ ํ๋๊ฑฐ๋๊น ์ฐ๋ฆฌ๊ฑฐ ์๋๊ฒ ์ง?
https://github.com/apple/sample-cloudkit-sharing
https://github.com/apple/sample-cloudkit-sync-engine