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๋Š” ๋” ๋น ๋ฅด๊ณ  ๋น„์šฉ ํšจ์œจ์ ์ด๋ฉฐ ๊ฐ„์†Œํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•˜์—ฌ ๊ถ๊ทน์ ์œผ๋กœ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งž๋Š” ๊ณ ํ’ˆ์งˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.