Core Data๋ iOS ์ฑ ๊ฐ๋ฐ ์ํ๊ณ ๋ด์ ํตํฉ ํ๋ ์์ํฌ๋ก, ๊ฐ๋ฐ์์๊ฒ ๊ด๋ฒ์ํ ๊ฐ์ฒด ๊ทธ๋ํ์ ์ง์์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Apple์ด Mac OS X Tiger์ ๋์ ํ๊ณ ๋์ค์ iOS ํ๋ซํผ์ ํตํฉํ Core Data๋ ์ดํ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ง์์ฑ ํจํด์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ณ ๋๋ก ์ต์ ํ๋๊ณ ์์ ์ ์ธ ์๋ฃจ์ ์ผ๋ก ๋ฐ์ ํ์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฐ ๊ณ์ธต์ ํต์ฌ์์ ์๋ํ๋ Core Data๋ ๊ฐ์ฒด ๊ทธ๋ํ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ง์์ฑ, ๋์์ฑ ์ ์ด ๋ฐ ๋ฐ์ดํฐ ๊ฒ์ฆ๊ณผ ๊ฐ์ ํ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Core Data๋ ๋ค์ํ ์ํฐํฐ ๊ฐ์ ์ํธ ์์ฉ์ ๊ด๋ฆฌํ๊ณ ์กฐ์ ํจ์ผ๋ก์จ ์ฑ ๊ฐ๋ฐ์๊ฐ ์ต์ํ์ ์ฝ๋๋ก ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅ, ๊ฒ์ ๋ฐ ๋ถ์ํ ์ ์๋๋ก ํด์ค๋๋ค.
ํต์ฌ ๋ฐ์ดํฐ์ ์ํคํ ์ฒ๋ ์ฃผ๋ก ๊ด๋ฆฌ ๊ฐ์ฒด ๋ชจ๋ธ, ๊ด๋ฆฌ ๊ฐ์ฒด ์ปจํ ์คํธ, ์๊ตฌ ์ ์ฅ์, ์๊ตฌ ์ ์ฅ์ ์ฝ๋๋ค์ดํฐ ๋ฐ ๊ด๋ฆฌ ๊ฐ์ฒด์ ๋ค์ฏ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ฅผ ์ค์ฌ์ผ๋ก ์งํ๋ฉ๋๋ค. ๊ฐ ๊ตฌ์ฑ ์์๋ ์ ์ฒด ํต์ฌ ๋ฐ์ดํฐ ํ๋ก์ธ์ค ๋ด์์ ํน์ ์์ ์ ์ํํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ฅ์ ์ํํ ํ๋ฆ์ ๊ธฐ์ฌํฉ๋๋ค.
MOM(Managed Object Model)์ ์ ์ฒด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ํ ์ฒญ์ฌ์ง ์ญํ ์ ํ๋ฉฐ ํต์ฌ ๋ฐ์ดํฐ ๋ชจ๋ธ ๋ด์ ์ํฐํฐ, ์์ฑ, ๊ด๊ณ ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด๋ ๊ธฐ์กด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ์ ์ฌํ๋ฉฐ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ, ๋งคํ ๋ฐ ๊ด๋ฆฌ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์์ ์์ค ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. AppMaster ์ no-code ํ๋ซํผ์ ์ํฐํฐ, ์์ฑ ๋ฐ ๊ด๊ณ๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ง๊ด์ ์ธ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ๋ชจ๋ธ ์์ฑ์ ๋์ฑ ๋จ์ํํฉ๋๋ค.
MOC(Managed Object Context)๋ ๊ด๋ฆฌ ๊ฐ์ฒด๋ฅผ ์ํ ์คํฌ๋์น ํจ๋์ ๋น์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ์๊ตฌ ์ ์ฅ์์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ, ์ญ์ ๋ฐ ์ฝ์ ์ ์กฐ์ ํ๋ ๋งค์ฒด ์ญํ ์ ํฉ๋๋ค. ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋์์ฑ ์ ์ด, ๋ณ๊ฒฝ ๋ด์ฉ ์ถ์ , ์คํ ์ทจ์/๋ค์ ์คํ ์์ ์ ๊ด๋ฆฌํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์๊ตฌ ์ ์ฅ์๋ ๊ธฐ๋ณธ ์์คํ ์์ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ ์ฅ์๋ฅผ ์ฒ๋ฆฌํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ์ด๋ ์๊ตฌ ์ ์ฅ์ ์ฝ๋๋ค์ดํฐ๋ฅผ ํตํด Managed Object Context์ ํต์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ "์ง์"ํ๊ณ ๊ฒ์ํ๋ฉฐ SQLite, XML ๋ฐ Binary์ ๊ฐ์ ๋ค์ํ ์ ์ฅ์ ํ์์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
PSC(์๊ตฌ ์ ์ฅ์ ์ฝ๋๋ค์ดํฐ)๋ ๊ด๋ฆฌ ๊ฐ์ฒด ์ปจํ ์คํธ์ ์๊ตฌ ์ ์ฅ์ ์ฌ์ด์ ์ค์ฌ์ ์ญํ ์ ํ์ฌ ๋ฐ์ดํฐ ํธ๋์ญ์ ์ ์กฐ์ ํ๊ณ MOC์ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ๊ฐ์ ์ํํ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ณด์ฅํฉ๋๋ค. ๋ํ ์ฌ๋ฌ ์๊ตฌ ์ ์ฅ์๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฐ๊ฒฐํ์ฌ ๋ค์ํ ์คํ ๋ฆฌ์ง ์ต์ ๊ณผ ๋ฐ์ดํฐ ๋ถํ ์ ๋ต์ ์ง์ํ ์ ์์ต๋๋ค.
๊ด๋ฆฌ ๊ฐ์ฒด๋ ๊ด๋ฆฌ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ค๋ช ๋ ์ํฐํฐ์ ์ธ์คํด์ค๋ฅผ ๋ํ๋ด๋ ํต์ฌ ๋ฐ์ดํฐ ํ๋ ์์ํฌ์ ๋ฐฑ๋ณธ์ ํ์ฑํฉ๋๋ค. ํน์ ์ํฐํฐ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋ฐ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ฅผ ์บก์ํํ๊ณ Managed Object Context์ ์ํธ ์์ฉํ์ฌ CRUD ์์ ์ ์ํํฉ๋๋ค.
AppMaster ์ no-code ํ๋ซํผ๊ณผ ํจ๊ป ํต์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ต์ํ์ ์ฝ๋ฉ ๋ ธ๋ ฅ์ผ๋ก ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๊ฐ์ํํฉ๋๋ค. ๋ฐ์ดํฐ ๋ฐ ๊ฐ์ฒด ๊ด๊ณ ์ฒ๋ฆฌ์ ๋ณต์ก์ฑ์ ์ถ์ํํจ์ผ๋ก์จ Core Data๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์๊ฐ์ BP Designer๋ฅผ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ธ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๊ฐ ๋นจ๋ผ์ง๊ณ ๋น์ฉ์ด ์ ๊ฐ๋๋ฉฐ ๊ธฐ์ ๋ถ์ฑ ์ํ์ด ํฌ๊ฒ ๋ฎ์์ง๋๋ค.
๋ํ AppMaster ์์ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ์๋์ฉ Go, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ฉ JS/TS๊ฐ ํฌํจ๋ Vue3 ํ๋ ์์ํฌ, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Jetpack Compose ๋ฐ SwiftUI ๊ฐ ํฌํจ๋ Kotlin๊ณผ ๊ฐ์ด ๊ฐ๋ ฅํ๊ณ ๋๋ฆฌ ์ฑํ๋๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฒฐ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ฑ๋ฅ์ ๋ฐํํ ๋ฟ๋ง ์๋๋ผ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฝ๊ฒ ์ ์ง ๊ด๋ฆฌํ๊ณ ํ์ฅํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Core Data๋ iOS ์ฑ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ฐ๋ ฅํ๊ณ ํ์์ ์ธ ํ๋ ์์ํฌ๋ก ๊ฐ๋ฐ์์๊ฒ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ์ง์์ฑ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. AppMasterno-code ํ๋ซํผ๊ณผ ํตํฉ๋๋ฉด Core Data๋ ๋ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ด๋ฉฐ ๊ฐ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ง์ํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์๋๋ฆฌ์ค์ ๋ง๋ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํฉ๋๋ค.