๋๊ธฐํ ์ค์
์ด ํ์ด์ง์ ๋ด์ฉ
์ด ํ์ด์ง์์๋ Device Sync๋ฅผ ํ์ฑํํ๊ฑฐ๋ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ ์ ์๋ ์ค์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์ค์
๋๊ธฐํํ ํด๋ฌ์คํฐ
๋๊ธฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ํ๋ ค๋ ์ฐ๊ฒฐ๋ Atlas cluster ๋ฐ์ดํฐ ์์ค ์ ์ด๋ฆ์ ๋๋ค.
Device Sync ๊ฐ ํ์ฑํ๋ ๋์์๋ ์ด ํ๋ ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํด๋ฌ์คํฐ ๋ฅผ ์ ํํ๋ ค๋ฉด ๋จผ์ ๋๊ธฐํ๋ฅผ ์ข ๋ฃ ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
Device Sync ๋ฅผ ์ํ ๋ฐ์ดํฐ ์์ค ์๊ตฌ ์ฌํญ
Device Sync ๋ฅผ ํ์ฑํ ํ๋ ค๋ฉด App Services App ์ ๋ค์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ์์ค ๊ฐ ํ๋ ์ด์ ์์ด์ผ ํฉ๋๋ค.
MongoDB 5.0 ์ด์์์คํ ํ๋ ๋น์ค๋ MongoDB Atlas cluster .
ํด๋ฌ์คํฐ๋ ์๋ฒ๋ฆฌ์ค ์ธ์คํด์ค ๋๋ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ผ ์ ์์ต๋๋ค . ๋ฐ์ดํฐ ์์ค ์ ํ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๋๊ธฐํ ์ ํ
์ค์
๋๊ธฐํ ์ ํ์ ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ ์ฑ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฑ์ ๋๊ธฐํ ์ ํ์ ์ ํํ๋ ๊ธฐ๋ฅ ์ ํ๋ก์ ํธ ์ ๊ธฐ์กด ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ ์ฑ ์ด ํ๋ ์ด์ ์๋ ์กฐ์ง์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ ๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์๋ก์ด ๋๊ธฐํ ๊ตฌ์ฑ์ ํ์ฉ๋์ง ์์ต๋๋ค. ๋์ ๋ชจ๋ ์๋ก์ด ๋๊ธฐํ ๊ตฌ์ฑ์ ์๋์ผ๋ก ๊ถ์ฅ Flexible Sync ๋ชจ๋ ๋ก ๊ธฐ๋ณธ๊ฐ ์ค์ ๋ฉ๋๋ค.
Device Sync ๋ฅผ ํ์ฑํ ํ๋ฉด ๋ค์ ๋๊ธฐํ ๋ชจ๋ ์ค ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
Flexible Sync ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ ์์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ํ๊ณ ์ฟผ๋ฆฌ ์ ์ผ์นํ๋ ๊ฐ์ฒด๋ง ๋๊ธฐํ ํ ์ ์ฟผ๋ฆฌ. ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๊ตฌ๋ ์ ํตํด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ์ ์ง ๊ด๋ฆฌ
๋ณ๊ฒฝ ์ฌํญ์ ๋์
์ฟผ๋ฆฌ ์ถ๊ฐ, ๋ณ๊ฒฝ ๋๋ ์ญ์
Flexible Sync๋ ์๋ก์ด ๋๊ธฐํ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๋ชจ๋ ์ ๋๋ค.
ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ ๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ด์ ๋๊ธฐํ ๋ชจ๋ ์ด๋ฉฐ ์ ๋๊ธฐํ ๊ตฌ์ฑ์ ํ์ฉ๋์ง ์์ต๋๋ค.
์ด๋ฏธ ์ด์ ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ธฐ์กด ์ฑ ์ด ์๋ ๊ฒฝ์ฐ, Flexible Sync ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ์ SDK ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ ์ธ์๋ ํด๋ผ์ด์ธํธ ์ฑ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์๋ ์๋ ํ๋ก์ธ์ค ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ Device Sync ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐธ์กฐํ์ธ์.
Device Sync ๊ฐ ํ์ฑํ๋ ๋์์๋ ๋๊ธฐํ ์ ํ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝํ๋ ค๋ฉด ๋จผ์ ๋๊ธฐํ๋ฅผ ์ข ๋ฃํ๊ฑฐ๋ ์ผ์ ์ค์ง ํด์ผ ํฉ๋๋ค.
๊ฐ๋ฐ ๋ชจ๋
๊ฐ๋ฐ ๋ชจ๋๋ Device Sync๊ฐ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์คํค๋ง๋ฅผ ์ถ๋ก ํ๊ณ ์ ๋ฐ์ดํธํ ์ ์๋๋ก ํ๋ ๊ตฌ์ฑ ์ค์ ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์ ๊ฐ์ํํ์ง๋ง ํ๋ก๋์ ์์๋ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค.
๊ฐ๋ฐ ๋ชจ๋์์๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์์ ์ง์ ์คํค๋ง๋ฅผ ์ค๊ณํ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค.
์์ญ์ ๋๊ธฐํํ๋ฉด Atlas App Services๋ ๋๊ธฐํ๋ ๋ชจ๋ ๊ฐ์ฒด ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ(๊ฐ๋ฐ ๋ชจ๋๋ง ํด๋น)์ผ๋ก ์ง์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฒด ์ปฌ๋ ์ ์ ๋งคํํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๋ฉด App Services๋ ์ผ์นํ๋๋ก ์ปฌ๋ ์ ์คํค๋ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฑ์ ๊ฐ๋ฐํ๋ฉด์ ํด๋ผ์ด์ธํธ ์ฝ๋์ ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ ๋ชจ๋์์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ท์น์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ท์น์ ๋ฌด์ํ๋ค๋ ์ ์ ์ ์ํฉ๋๋ค. ์ด๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ์ฌ ๋ฐฑ์๋ ์คํค๋ง๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๊ฐ๋ฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํ ๋ Realm ๊ฐ์ฒด ์คํค๋ง๊ฐ ์ฑ ์๋น์ค ์คํค๋ง์ ๋งคํ๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ฐ์ดํฐ ๋ชจ๋ธ ๋งคํ์ ์ฐธ์กฐํ์ธ์.
๋๊ธฐํ๋ ๊ฐ์ฒด ์คํค๋ง ์์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์: ๋ฐ์ดํฐ ๋ชจ๋ธ ์ ๋ฐ์ดํธํ๊ธฐ
์ค์
ํ๋ก๋์ ์ฑ์ ๊ฐ๋ฐ ๋ชจ๋ ๋นํ์ฑํ
๊ฐ๋ฐ ๋ชจ๋๋ ํ๋ก๋์ ์ฉ์ผ๋ก ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ์ง ์์ ๊ฐ๋ฐ ์ ํธ๋ฆฌํฐ์ ๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์์ ์ฑ์ ์ก์ธ์คํ ์ ์๋๋ก ํ๊ธฐ ์ ์ ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ๊บผ์ผ ํฉ๋๋ค.
ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ
2023๋ 9์ 13์ผ ์ดํ์ ์์ฑ๋ ๊ฐ๋ฐ ๋ชจ๋์ App Services ์ฑ์ ํด๋ผ์ด์ธํธ ์ฝ๋์์ ๋๊ธฐํ๋ ๊ฐ์ฒด ์คํค๋ง๋ก ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ์ ์์ต๋๋ค.
์ฑ์ด 2023๋ 9์ 13์ผ ์ด์ ์ ์์ฑ๋ ๊ฒฝ์ฐ ์ง์ํ์ ๋ฌธ์ํ์ฌ ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ ์ ์์ต๋๋ค.
์ ์ ์กฐ๊ฑด
2023๋ 9์ 13์ผ ์ดํ์ ์์ฑ๋ App Services ์ฑ
Flexible Sync ํธํ์ฑ์ ์ํ MongoDB 5.0 ์ด์ ๋ฒ์
์ต์ SDK ๋ฒ์ :
Realm C++ SDK v1.0.0
Realm Flutter SDK v1.6.0
Realm Java SDK v10.16.2
Realm Kotlin SDK v11.1.1
Realm .NET SDK v11.6.0
Realm Node.js SDK v12.2.0
Realm React Native SDK v12.2.0
Realm Swift SDK v10.42.2
์ฐธ๊ณ
2023๋ 9์ 13์ผ ์ด์ ์ ์์ฑ๋ ์ฑ
2023๋ 9์ 13์ผ ์ด์ ์ ์์ฑ๋ ์ฑ์ ๊ฒฝ์ฐ App Services UI์์ ๊ฐ์ฒด ์คํค๋ง๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ๋ชจ๋ธ ์ ๋ฐ์ดํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํด๋ผ์ด์ธํธ ์ฝ๋์์ ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ์ ์ํํ๋ ค๋ฉด ๋ค์์ ๋ฐ๋ฆ ๋๋ค:
๋ก์ปฌ ์์ญ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ด๋ ๋ฐฑ์๋์ ๋๊ธฐํ๋ ๋ฐ์ดํฐ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋๊ธฐํ๋์ง ์์ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ฑฐ๋๋ฉฐ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
๋ก์ปฌ ๊ฐ์ฒด ๋ชจ๋ธ์ ๋ณ๊ฒฝํฉ๋๋ค.
์ ๋ฐ์ดํธ๋ ๊ฐ์ฒด ๋ชจ๋ธ๋ก ์์ญ์ ์ฝ๋๋ค.
ํด๋ผ์ด์ธํธ ์ฑ์ ์คํํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐฑ์๋์ ๋๊ธฐํํฉ๋๋ค.
Realm ํ์ผ์ ์ญ์ ํ๋ ค๋ฉด Realm SDK ์ ์ฉ ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค:
๊ฐ๋ฐ ๋ชจ๋ ํ์ฑํ์ ๋ถ์์ฉ
๊ฐ๋ฐ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ๋ ๊ฐ์ง ๋ถ์์ฉ์ด ์์ต๋๋ค:
์ต๋ช ์ธ์ฆ์ด ํ์ฑํ๋ฉ๋๋ค.
๋ฐฐํฌ ์ด์์ด ๋นํ์ฑํ๋ฉ๋๋ค.
์ฑ์ ์ต๋ช ์ธ์ฆ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ํ์ฑํํ ํ ์ต๋ช ์ธ์ฆ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ ๋ชจ๋๋ฅผ ๋นํ์ฑํํ ๋๊น์ง UI์์ ๋ฐฐํฌ ์ด์์ ๋ค์ ํ์ฑํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ CLI ๋๋ Admin API๋ฅผ ํตํด ์๋์ผ๋ก ๋ฐฐํฌ ์ด์์ ์์ฑํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ(๊ฐ๋ฐ ๋ชจ๋๋ง ํด๋น)
๊ฐ๋ฐ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ๋๊ธฐํ๋ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. App Services๋ ๋ชจ๋ ์ ํ์ ๋๊ธฐํ๋ ๊ฐ์ฒด์ ๋ํด ์ด ๊ฐ๋ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ปฌ๋ ์ ์ ๋ง๋ญ๋๋ค.
์์
๊ฐ๋ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ myapp
์ผ๋ก ์ง์ ํฉ๋๋ค. iOS ํด๋ผ์ด์ธํธ์ Person
๋ชจ๋ธ์ด ์์ต๋๋ค. Person
๊ฐ์ฒด์ ์ธ์คํด์ค๊ฐ ํฌํจ๋ ์์ญ์ ๋๊ธฐํํฉ๋๋ค.{2} ๊ฐ๋ฐ ๋ชจ๋๋ ๋ชจ๋ธ๊ณผ ์ฐ๊ฒฐ๋ ์๋ฒ ์ธก ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ์ฒด๊ฐ myapp.Person
collection์ ๋๊ธฐํ๋ฉ๋๋ค.
App Services๋ ๊ฐ๊ฐ์ ์ ๊ฐ์ฒด ์ ํ์ ๋ํด ๊ณ์ํด์ ์๋ก์ด ์๋ฒ ์ธก ์คํค๋ง์ ์ปฌ๋ ์
์ ๋ง๋ญ๋๋ค. ๋์ค์ Dog
๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๋ฉด ํด๋น ๊ฐ์ฒด๋ App Services์์ ์์ฑํ ์ myapp.Dog
์ปฌ๋ ์
๊ณผ ๋๊ธฐํ๋ฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋
Flexible Sync๋ฅผ ๊ตฌ์ฑํ ๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด Flexible Sync ๊ตฌ๋ ์์ ์ฟผ๋ฆฌํ ์ ์๋ ํ๋ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๊ตฌ๋ ์ฟผ๋ฆฌ์ ์ฌ์ฉํ ์ ์๋ ํ๋๋ฅผ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ผ๊ณ ํฉ๋๋ค.
์์
ํ ์ผ ๋ชฉ๋ก ์ฑ์์ assignee
๋๋ owner
๋ฅผ ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ assignee
๋๋ owner
๊ฐ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ์ผ์นํ๋ ์์
์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๋ฒ์
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๊ตฌ์ฑํ ๋ ์ง์ ํ ๋ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ์๋ ๋ ๊ฐ์ง์ ๋๋ค:
๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋: ์ฑ ์คํค๋ง์ ๋ชจ๋ ์ปฌ๋ ์ ์ ๊ฑธ์ณ ๋ฒ์๊ฐ ์ง์ ๋ฉ๋๋ค.
์ปฌ๋ ์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋: ์ฑ์ ๋จ์ผ ์ปฌ๋ ์ ์ผ๋ก ๋ฒ์๊ฐ ์ง์ ๋ฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅํ ํ๋์ ๋ฒ์๋ฅผ ํน์ ์ปฌ๋ ์ ์ผ๋ก ์ง์ ํ๋ฉด ๋๊ธฐํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๋ฐฑ์ Atlas ์ ์ฅ์์ ์ฉ๋์ด ์ค์ด๋ญ๋๋ค.
๊ท์น๊ณผ ๊ถํ์ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์ ๋ณ๋ก ๋ณด๋ค ์ธ๋ถํ๋ ์ก์ธ์ค ์ ์ด๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ธ๋ก๋ฒ ๋ฐ ์ปฌ๋ ์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๋ชจ๋์ ๋ํด ์ปฌ๋ ์ ์์ค ๊ท์น ๋ฐ ๊ถํ์ ์ ์ํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๊ตฌ์ฑ
๊ฐ๋ฐ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์๋์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๋์ ํด๋ผ์ด์ธํธ ์ฟผ๋ฆฌ์ ๋ํ๋๋ ํ๋๋ ์ฟผ๋ฆฌ ์ค์ธ ์ปฌ๋ ์ ์ ๋ํ ์ปฌ๋ ์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ์๋์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค.
์ ๋ ฅํ๋ ํ๋ ์ด๋ฆ์ ์์์ ๋ฌธ์์ด์ ๋๋ค. ๊ฐ์ฒด ์ ํ์ ์ ๊ณตํ ํ๋ ์ด๋ฆ๊ณผ ์ด๋ฆ์ด ์ผ์นํ๊ณ ๋ค๋ฅธ ์๊ฒฉ ๊ธฐ์ค์ ์ถฉ์กฑํ๋ ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ํ๋๋ฅผ Device Sync์์ ์ฟผ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๊ตฌ์ฑ
Device Sync๊ฐ ํ์ฑํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ์๋ง ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ฑ์์ Device Sync๊ฐ ์ด๋ฏธ ์คํ ์ค์ธ ๊ฒฝ์ฐ, ๋๊ธฐํ๋ฅผ ์ข ๋ฃํ๊ณ ๋ค์ ํ์ฑํํ ๋ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋๊ธฐํ๋ฅผ ๋ค์ ํ์ฑํํ ํ ์ฌ์ฐ๊ฒฐ์ ์๋ํ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๋ํด ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ค์ ๋ฉ๋๋ค.
๋์ ํ๋ ์ ํ
Flexible Sync๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ํ๋๋ก ์ค์นผ๋ผ ์ ํ์ด ์๋ ์ต์์ ์ด๊ธฐ(primitive) ํ๋๋ง ์ง์ํฉ๋๋ค. ๋ํ ์ด๋ฌํ ์ด๊ธฐ ๋ฐฐ์ด์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ํฌํจํ ์ ์์ต๋๋ค. Flexible Sync๋ ๋ด์ฅ๋ ๊ฐ์ฒด ๋๋ ๊ฐ์ฒด ๋ฐฐ์ด์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ์ง์ํ์ง ์์ต๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๋ฐ์ดํฐ ์ ํ์ ํ์ ์งํฉ์ ์ง์ํฉ๋๋ค. ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค: int64
, string
, ObjectId
, UUID
.
ํ
๋ค์๋ ์ฐธ๊ณ ํฉ๋๋ค: Realm ์ฟผ๋ฆฌ ์ธ์ด - Flexible Sync ์ ํ ์ฌํญ
์ด๋ฌํ ํ๋์ ๋ํด ์ํํ ์ ์๋ ์ฟผ๋ฆฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์: Flexible Sync RQL ์ ํ ์ฌํญ
์์ฝ๋ ํ๋ ์ด๋ฆ
App Services๋ Realm ์ฟผ๋ฆฌ ์ธ์ด ๋ฐ ๊ธฐํ ๋ชฉ์ ์ ์ํด ์ผ๋ถ ํค์๋๋ฅผ ๋ณ๋๋ก ๋ณด์กดํฉ๋๋ค. ๋ณด์กด๋ ํค์๋๋ ํ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
App Services์์๋ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ํค์๋๋ฅผ ๋ณด์กดํฉ๋๋ค.
|
|
|
์์
descending
, Descending
, DESCENDING
๋๋ DeScEnDiNG
์ ํ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ App Services๋ ์ง์ ๋ ์ ํํ ๋/์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ํค์๋๋ฅผ ๋ณ๋๋ก ๋ณด์กดํฉ๋๋ค.
|
|
|
์์
๋ ๋๋ฌธ์๊ฐ ๋ชจ๋ ๋ณ๋๋ก ๋ณด์กด๋์ด ์์ผ๋ฏ๋ก true
๋๋ TRUE
๋ ์ฌ์ฉํ ์ ์์ง๋ง True
๋๋ tRUE
๋ ํ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ๋ฐ ์คํ ๋ฆฌ์ง
๊ฐ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ Atlas ํด๋ฌ์คํฐ์ ์ถ๊ฐ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ๋ฏ๋ก ์ฐ๊ธฐ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋งํผ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ์์ด์ผ ํ๋ฉฐ, ํ์ํ ์ต์ ์ปฌ๋ ์ ์๋ก ๋ฒ์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
๋ง์ ์ฑ์ด ๋จ์ผ ์ปฌ๋ ์ ์ ์ต๋ 10๊ฐ๊น์ง ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ ์ฉํ์ฌ ์คํ ๋ฆฌ์ง ์ฌ์ฉ๋๊ณผ ์ฟผ๋ฆฌ ์ ์ฐ์ฑ ๊ฐ์ ์ ์ ํ ๊ท ํ์ ๋ง์ถ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 3๊ฐ์ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ 7๊ฐ์ ์ปฌ๋ ์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ ์ปฌ๋ ์ ์ ์ ์ฉ๋๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ 10๊ฐ๊ฐ ๋ฉ๋๋ค.
ํ๋์ ์ปฌ๋ ์
์์๋ง ์ฟผ๋ฆฌํ๋ ค๋ ํ๋๊ฐ ์์ง๋ง ํด๋น ํ๋๊ฐ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋ ๊ฒฝ์ฐ, ๋ถํ์ํ๊ฒ Atlas ์ ์ฅ ๊ณต๊ฐ์ ์๋ชจํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ ์ปฌ๋ ์
์ user
ํ๋๊ฐ ์์ง๋ง ํ ์ปฌ๋ ์
์ ๋๊ธฐํ ์ฟผ๋ฆฌ์๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ํ๋๋ฅผ ์ปฌ๋ ์
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ๋ฒ์๋ฅผ ์ง์ ํ๋ฉด ์ ์ฅ์ ์๊ตฌ ์ฌํญ์ ์ค์ผ ์ ์์ต๋๋ค. ๋ฒ์๋ฅผ ์ค์ด๋ฉด ๋๊ธฐํ์์ user
ํ๋๋ฅผ ์ฟผ๋ฆฌํ์ง ์๋ ๋ค๋ฅธ ์ปฌ๋ ์
์ ํด๋น ํ๋์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ง ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
์ ์ฅ์ ์ฌ์ฉ๋์ ์ค์ด๊ฑฐ๋ ์ฑ๋ฅ์ ํฅ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฑ์์ ๋ถํ์ํ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ์์ ์ ์ํฅ์ ์ ์ํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ์ถ๊ฐ ๋๋ ์ ๊ฑฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๊ฐ ๊ณ ๋ ค ์ฌํญ์ Flexible Sync ์ฌ์ฉ ์ ์ฑ๋ฅ ๋ฐ ์คํ ๋ฆฌ์ง ์ต์ ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ํน์ ์ ํ์ ์์ ๋ถํ์ ๋ํ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฟผ๋ฆฌํ ์ ์๋ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๋ก, ํฅ์๋ ๋๊ธฐํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ํ๋์ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅํ ํ๋๋ฅผ ์ธ๋ฑ์ฑํ๋ฉด {โstore_idโ: 1}
๋๋ {โuser_idโ: โ641374b03725038381d2e1fbโ}
์(๊ณผ) ๊ฐ์ ๋จ์ผ ํ๋์ ๋ํ ๊ฐ๋จํ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๋ชจ๋ ๋๊ธฐํ ์ปฌ๋ ์
์ ์คํค๋ง์ ๋ฐ๋์ ํ์๋์ด์ผ ํ๋ฉฐ ๋์ผํ ์ ํจํ ๋ฐ์ดํฐ ํ์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ store_id
์ธ ๊ฒฝ์ฐ ๋๊ธฐํํ๋ ๋ชจ๋ ์ปฌ๋ ์
์ ํ์๋์ด์ผ ํ๋ฉฐ ๋ชจ๋ ์ปฌ๋ ์
์์ ๋์ผํ ์ ํจํ ํ์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ ํฉํ ํ๋ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ํฉํ ํ๋ ์ ํ์ ์ฐธ์กฐํ์ธ์.
ํด๋ผ์ด์ธํธ์์ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ๊ตฌ์ฑํ ํ์๋ ํด๋ผ์ด์ธํธ ๊ธฐ๊ธฐ์์ ๊ธฐ์กด ๊ฐ์ฒด์ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๊ฐ์ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ store_id
์ธ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ ์ด ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ฐ์ ๊ธฐ๊ฐ ๋์ ๊ฐ์ฒด์ ์ ์ฉ๋ ๋ค๋ฅธ ์
๋ฐ์ดํธ์ ์ถฉ๋ํ ์ ์์ผ๋ฏ๋ก ์ง์๋์ง ์์ต๋๋ค.
๊ธฐ๊ธฐ์์ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ฉด ๋ณด์ ์ฐ๊ธฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ์ค๋ฅ์ ์ด๋ก ์ธํด ๋ฐ์ํ๋ ๋์์ ๋ํ ์์ธํ ๋ด์ฉ์ Flexible Sync ์ค๋ฅ ๋ฌธ์์์
ErrorCompensatingWrite
๋ฅผ ์ฐธ์กฐํ์ธ์.
Atlas ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ด ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๊ฒฝ๊ณ
Atlas๋ฅผ ํตํด ๊ฐ์ฒด์ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ๋์์ ์ด๋ค์ง ๊ฐ์ฒด์ ๋ํ ํด๋ผ์ด์ธํธ ์ ๋ฐ์ดํธ๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ ๋ํ ํด๋ผ์ด์ธํธ ์ธก ์ฟผ๋ฆฌ
์ฑ์์ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Flexible Sync ๊ตฌ๋
์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ฟผ๋ฆฌ์๋ ์์์ ๋ํด ==
๋๋ IN
๋น๊ต๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ํ ๋ฒ ์ด์ ๋ฐ๋์ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด
user_id == 641374b03725038381d2e1fb
๋๋ store_id IN {1,2,3}
์
๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ==
๋๋ IN
์ ์ฌ์ฉํ์ฌ ์์์ ํ ๋ฒ ์ด์ ์ง์ ๋น๊ต๋๋ ๊ฒฝ์ฐ, ์ ํ์ ์ผ๋ก AND
๋น๊ต๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด store_id IN {1,2,3} AND region=="Northeast"
๋๋ store_id == 1 AND (active_promotions < 5 OR num_employees < 10)
์
๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ ๋ํ ์ ํจํ์ง ์์ Flexible Sync ์ฟผ๋ฆฌ์๋ ๋ค์๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ํฌํฉ๋ฉ๋๋ค.
์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ๋๋จธ์ง ์ฟผ๋ฆฌ์ ํจ๊ป
AND
์(๋ฅผ) ์ฌ์ฉํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ดstore_id IN {1,2,3} OR region=="Northeast"
์(๋)AND
๋์OR
์(๋ฅผ) ์ฌ์ฉํ๋ฏ๋ก ์ ํจํ์ง ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋กstore_id == 1 AND active_promotions < 5 OR num_employees < 10
์(๋)AND
์ด(๊ฐ) ์ ์ฒด ์ฟผ๋ฆฌ๊ฐ ์๋๋ผ ์์ ์๋ ํ ์๋ง ์ ์ฉ๋๋ฏ๋ก ์ ํจํ์ง ์์ต๋๋ค.์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ๋๋ฑ ์ฐ์ฐ์์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ.์๋ฅผ ๋ค์ด
store_id > 2 AND region=="Northeast"
๋>
์ฐ์ฐ์๋ง ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ ์ฌ์ฉํ๊ณ ๋๋ฑ ๋น๊ต๋ ์๊ธฐ ๋๋ฌธ์ ์ ํจํ์ง ์์ต๋๋ค.์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๊ฐ ์ฟผ๋ฆฌ์์ ์์ ํ ๋๋ฝ๋ ๊ฒฝ์ฐ.์๋ฅผ ๋ค์ด
region=="Northeast"
๋๋truepredicate
๋ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ํฌํจํ์ง ์์ผ๋ฏ๋ก ์ ํจํ์ง ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ์ถ๊ฐ ๋๋ ์ ๊ฑฐ์ ๊ฒฐ๊ณผ
๋๊ธฐํ๊ฐ ํ์ฑํ๋ ์ํ์์ ๋๊ธฐํ ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํ์ฌ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ์ด๋ฆ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ง๋ง ๋ค์ ์ฌํญ์ ์ ์ํด์ผ ํฉ๋๋ค:
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ๊ธฐ๊ฐ Device Sync ๊ธฐ๋ก์์ ํ๋๊ฐ ์ถ๊ฐ๋ ์์ ์ ๋ฐ๋ผ์ก์ ๊ฒฝ์ฐ์๋ง ํด๋น ํ๋์์ ๊ธฐ๊ธฐ๋ฅผ ๋๊ธฐํํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ ๊ฑฐํ๋ฉด ํด๋น ํ๋๋ฅผ ์ฌ์ ํ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ธฐ๊ธฐ์ Device Sync ์ธ์ ์ด ์ ๊ฑฐ๋๋ฉฐ ํด๋ผ์ด์ธํธ ์ฌ์ค์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ ๊ฑฐ๋ ํ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ํด๋ผ์ด์ธํธ์๋ ์ค๋ฅ๊ฐ ํ์๋์ง ์์ต๋๋ค. ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ ๊ฑฐํ ๋ ํด๋ผ์ด์ธํธ ์ฌ์ค์ ์ด ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด ๋จผ์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ํด๋น ํ๋์ ์ฌ์ฉ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ ์ ์ ๋๊ธฐํ๋ฅผ ์ข ๋ฃํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ๊ณ ๋ ค ์ฌํญ์ด ์ ์ฉ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๊ธฐํ๋ฅผ ์ข ๋ฃํ๋ฉด ์ฑ๊ณผ ๋๊ธฐํ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ํด๋ผ์ด์ธํธ ์ฌ์ค์ ์ด ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค.
๊ถํ
Atlas Device Sync๋ ๋๊ธฐํ๋ ํด๋ฌ์คํฐ์ ๋ํ ๋ชจ๋ ์์ฒญ์ ์ญํ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ท์น์ ์ ์ฉํฉ๋๋ค. ๊ท์น์ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ณ , ๋ณด๊ณ , ์์ ํ ์ ์๋ ๊ถํ์ ๊ฒฐ์ ํ๋ ๋์ JSON ํํ์์ ๋๋ค.
์์ธํ ๋ด์ฉ์ ์ญํ ๊ธฐ๋ฐ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
๋ฐ์ดํฐ ์ธ์ ์คํธ
๋ฐ์ดํฐ ์์ง์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ฝ์ ์ ์ฉ ์ํฌ๋ก๋๊ฐ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋๊ธฐํ ์ ๋ต์ ๋๋ค. ํ๋ ์ด์์ ์ปฌ๋ ์ ์ ๋ํด ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ ์ ์์ต๋๋ค. Atlas time-series ์ปฌ๋ ์ ์ ํฌํจํ ๋ชจ๋ ์ปฌ๋ ์ ์ ํ์ ๋ํ ์ฐ๊ธฐ๋ฅผ ์ง์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ๋ก๊ทธํ๋ IoT ์ฑ์ ์ฐ๊ธฐ ์ํฌ๋ก๋๊ฐ ๋ง๊ณ ์ฝ๊ธฐ ์ํฌ๋ก๋๋ ์์ต๋๋ค. ๋ํ ๊ธฐ๊ธฐ๊ฐ ์ค๋ ์๊ฐ ๋์ ์คํ๋ผ์ธ ์ํ์ผ ์๋ ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ง์ ์๋ฐฉํฅ ๋๊ธฐํ์ ํ์ํ ์ผ๋ถ ์ฒ๋ฆฌ๋ฅผ ์ฐํํ์ฌ Atlas ์ปฌ๋ ์ ์ ๋ํ ์ฐ๊ธฐ ์๋๋ฅผ ํฌ๊ฒ ๊ฐ์ ํฉ๋๋ค.
๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฆฌํ ์ผ ์ฑ์ ์ธ๋ณด์ด์ค ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฒคํธ ๋ก๊น ๋ฑ ๋ถ๊ฐ๋ณ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ์์ ์ ํฌํจํฉ๋๋ค. ๋ ์ฌ์ฉ ์ฌ๋ก ๋ชจ๋ ์ถฉ๋ ํด๊ฒฐ์ด ํ์ํ์ง ์์ต๋๋ค.
๊ฐ๋ณ ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ ์์ง์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ฆ, ์ฑ์์ ๋ฐ์ดํฐ ์์ง์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ธ ์ ์์ง๋ง ๋ค๋ฅธ ์ปฌ๋ ์ ์์๋ ์๋ฐฉํฅ Flexible Sync๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์์ง ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ ์ฐ๊ธฐ ์ ์ฉ์ ๋๋ค. ์ด๋ฌํ ์ปฌ๋ ์ ์ ๋ํด์๋ Flexible Sync ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋์ MongoDB ๋ฐ์ดํฐ ์์ค์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ธ์.
๋ฐ์ดํฐ ์์ง์ ํ์ฑํํ ํ ํด๋ผ์ด์ธํธ SDK๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์ฑ์ ๊ตฌํํฉ๋๋ค. ํ์ฌ Realm SDK๊ฐ ๋ค์ ๋ฐ์ดํฐ ์์ง์ ์ง์ํฉ๋๋ค:
Flutter SDK: Atlas๋ก ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ - Flutter SDK
Kotlin SDK: Atlas๋ก ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ - Kotlin SDK
.NET SDK: ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ์์ง - .NET SDK
Node.js SDK: ๋น๋์นญ ๊ฐ์ฒด ์ ์
React Native SDK: ๋น๋์นญ ๊ฐ์ฒด ์ ์
Swift SDK: Atlas๋ก ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ - Swift SDK
Atlas Device Sync๋ ์ด ๋ฐ์ดํฐ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์๋ฒฝํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค. ๋ฐ์ดํฐ ์์ง ๋๊ธฐํ๊ฐ ์๋ฃ๋ ๋๊น์ง ์ ์ง๋ ํ ๊ธฐ๊ธฐ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ต๋ ์คํ๋ผ์ธ ์๊ฐ
ํด๋ผ์ด์ธํธ ์ต๋ ์คํ๋ผ์ธ ์๊ฐ์ ๋๊ธฐํ ์ธ์ ๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์คํ๋ผ์ธ ์ํ์ผ ์ ์๋ ์๊ฐ์ ๊ฒฐ์ ํฉ๋๋ค. ์ด ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ์คํ๋ผ์ธ ์ก์ธ์ค์ ๋๊ธฐํ๋ Atlas ํด๋ฌ์คํฐ์์ ์ฌ์ฉ๋๋ ์คํ ๋ฆฌ์ง์ ๊ท ํ์ ๋ง์ถ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํด๋ผ์ด์ธํธ ์ต๋ ์คํ๋ผ์ธ ์๊ฐ์ ์ฐธ์กฐํ์ธ์.
ํด๋ผ์ด์ธํธ ๋ณต๊ตฌ
ํด๋ผ์ด์ธํธ ๋ณต๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๋์ ํด๋ผ์ด์ธํธ ์ฌ์ค์ ์ ์๋์ผ๋ก ์ํํ๋ ค๊ณ ์๋ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋๊ธฐํ๋์ง ์์ ๋ณ๊ฒฝ ์ฌํญ ๋ณต๊ตฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋๊ธฐํ ๊ตฌ์ฑ ํ์ผ ์ฐธ์กฐ
๋ด๋ณด๋ธ ์ฑ์
sync
๋๋ ํ ๋ฆฌ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๊ธฐํ ๊ตฌ์ฑ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค:
app/ โโโ sync/ โโโ config.json
์๋ฅผ ๋ค์ด ๋ค์ ๋๊ธฐํ ๊ตฌ์ฑ์ Flexible Sync๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ ์ ์ฉ๋ฉ๋๋ค.
{ "type": "flexible", "development_mode_enabled": <Boolean>, "service_name": "<Data Source Name>", "database_name": "<Development Mode Database Name>", "state": <"enabled" | "disabled">, "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "queryable_fields_names": [ <Array of String Field Names> ], "indexed_queryable_fields_names": [ <Array of String Field Names> ], "collection_queryable_fields_names": <Map[String][]String> "permissions": "<Deprecated, Do Not Use>" }
๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ permissions
ํ๋๊ฐ ๋ด๋ณด๋ธ ์ฑ์ ๊ตฌ์ฑ์ ์ฌ์ ํ ๋ํ๋ ์ ์์ต๋๋ค. ์ด๋ ์ฑ์ด ์์ง ํตํฉ ๊ท์น ์์คํ
์ผ๋ก ์๋ ๋ง์ด๊ทธ๋ ์ด์
๋์ง ์์์์ ์๋ฏธํ ์ ์์ต๋๋ค. ์ฑ์ ๋ง์ด๊ทธ๋ ์ด์
ํ ๋๊น์ง ์ด ํ๋๋ฅผ ์ญ์ ํ์ง ๋ง์ธ์.
๋๊ธฐํ ๊ตฌ์ฑ ๊ฐ์ฒด
{ "type": "flexible", "development_mode_enabled": <Boolean>, "service_name": "<Data Source Name>", "database_name": "<Development Mode Database Name>", "state": <"enabled" | "disabled">, "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "queryable_fields_names": ["<Field Name>", ...], "indexed_queryable_fields_names": ["<Field Name>", ...], "collection_queryable_fields_names": { "<Collection Name>": ["<Field Name>", ...], ... } }
ํ๋ | ์ค๋ช
|
---|---|
type string | ๋๊ธฐํ ๋ชจ๋์ ๋๋ค. ๋๊ธฐํ ๋ชจ๋์๋ Flexible Sync ๋ฐ ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ, ์ด๋ ๊ฒ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. Flexible Sync๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํํฐ์ ๊ธฐ๋ฐ ๋๊ธฐํ๋ฅผ ์ฐธ์กฐํ์ธ์. Flexible Sync ๊ตฌ์ฑ์ ์ํ ์ ํจํ ์ต์ ์ ๋๋ค:
|
development_mode_enabled boolean |
|
service_name string | ๋๊ธฐํํ Atlas ํด๋ฌ์คํฐ ๋ฐ์ดํฐ ์์ค์ ์ด๋ฆ์ ๋๋ค. ์๋ฒ๋ฆฌ์ค ์ธ์คํด์ค์๋ ๋๊ธฐํ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
database_name string | App Services๊ฐ ๊ฐ๋ฐ ๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋๊ธฐํ๋ ํด๋ฌ์คํฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๋๋ค. App Services๋ ๋๊ธฐํ๋ ๊ฐ ์ ํ์ ๋ํ ์คํค๋ง๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ ๊ฐ ๊ฐ์ฒด ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ collection์ ๋งคํํฉ๋๋ค. |
state string | ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋๊ธฐํ ํ๋กํ ์ฝ์ ํ์ฌ ์ํ์ ๋๋ค. ์ ํจํ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
|
client_max_offline_days number | ๋ฐฑ์๋ ์์ถ ํ๋ก์ธ์ค๊ฐ ์ด์ ๋ฒ์ ์ ์์ญ์์ ๋๊ธฐํ์ ํ์ํ ์ผ๋ถ ํด๋ผ์ด์ธํธ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ ๊ฑฐํ๊ธฐ ์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ผ์์ ๋๋ค. |
is_recovery_mode_disabled boolean |
|
queryable_fields_names string[] | |
indexed_queryable_fields_names string[] | ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๋ก ์ฌ์ฉํ ํ๋ ์ด๋ฆ์ ๋ชฉ๋ก์ ๋๋ค. ์ด ์์ฑ์ ๋ฐฐ์ด์ด์ง๋ง ๋๊ธฐํ๋ ํ์ฌ ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ฅผ ํ๋๋ง ์ง์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ฐฐ์ด์๋ ์ต๋ ํ๋์ ์์๋ง ํฌํจ๋ ์ ์์ต๋๋ค. ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋๋ ์คํค๋ง์ ์กด์ฌํด์ผ ํ๋ฉฐ ๋๊ธฐํํ๋ ๋ชจ๋ collection์์ ๋์ผํ ์ ํฉํ ํ๋ ์ ํ ์ด์ด์ผ ํฉ๋๋ค. ์ธ๋ฑ์ฑ๋ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ์ด๋ฆ์ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋์ด๋ฏ๋ก |
collection_queryable_fields_names { [collectionName: string]: string[] } | ์ปฌ๋ ์ ์ด๋ฆ์์ ๊ฐ ์ปฌ๋ ์ ์ ๋ํ ์ปฌ๋ ์ ์์ค ์ฟผ๋ฆฌ ๊ฐ๋ฅ ํ๋ ๋ชฉ๋ก์ผ๋ก์ ๋งต์ ๋๋ค. |
last_disabled number | ๋๊ธฐํ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ผ์ ์ค์ง๋๊ฑฐ๋ ๋นํ์ฑํ๋ ๋ ์ง์ ์๊ฐ์ผ๋ก ์ ๋์ค ์๊ฐ(1์ 1, 1970, 00:00:00 UTC) ์ดํ์ ์๊ฐ(์ด)์ผ๋ก ํ์๋ฉ๋๋ค. |
asymmetric_tables string[] | ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ธ ์๋ ์์ง๋ง ์ฝ์ ์๋ ์๋ ๋ฐ์ดํฐ ์์ง ์ ํตํด ๋น๋์นญ์ผ๋ก ์ ์๋ ์ปฌ๋ ์ ์ด๋ฆ์ ๋ฐฐ์ด์ ๋๋ค. |