Search
Duplicate

Core Data

Created
2023/09/28 06:55
Tags
CoreData

Core Data

โ€ข
iOS์—์„œ ์ข€ ๋” ๋ณต์žกํ•œ ๋กœ์ปฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Core Data๊ฐ€ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. Core Data๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ฑ์˜ ์˜๊ตฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค!
โ€ข
Core Data๋Š” DB๋„ ์•„๋‹ˆ๊ณ , ORM๋„ ์•„๋‹Œ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ ๋‹ค!

ย Core Data ๋ž€?

Core Data๋Š” ๋„“์€ ์˜๋ฏธ์—์„œ๋Š” ์•ฑ์˜ ๋ชจ๋ธ ๊ณ„์ธต์ด์ž, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ORM ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋‹ค.

ย In-Memory ๋ฐฉ์‹์ด ์กด์žฌ

โ€ข
์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์šฐ์„  ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜๋Š” ๊ณผ์ •์ด ์กด์žฌํ•œ๋‹ค.
โ€ข
์ฝ”์–ด ๋ฐ์ดํ„ฐ
โ—ฆ
์ฝ๊ณ  ์“ฐ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์›์น™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ๋‹ค์Œ์— ์ฒ˜๋ฆฌ (์˜๊ตฌ ์ €์žฅ์†Œ๋ฅผ ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค)
โ€ข
๋‹ค๋ฅธ DB ๋ฐฉ์‹
โ—ฆ
ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ์ฝ๊ธฐ ๋ชฉ์ ์˜ ๋ฐ์ดํ„ฐ ์ผ๋ถ€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•œ๋‹ค.
In-Momory๋ž€?
โ€ข
๋ง ๊ทธ๋Œ€๋กœ, Disc์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ , ํœ˜๋ฐœ์„ฑ์œผ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ™์ด ์ž ๊น ์ด์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์— In-Memory๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

ย Entity๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌ์กฐ ์ •์˜

โ€ข
๋‹ค๋ฅธ DB ๋ฐฉ์‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.
ย Entity? โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ๊ตฌ์กฐ
โ€ข
Attribute : Entity์˜ ํ•˜์œ„ ์†์„ฑ๋“ค์„ ์ •์˜ํ•˜๋Š” ์—ญํ• 
โ€ข
Relation : Entity๋ผ๋ฆฌ์˜ ๊ด€๊ณ„ ์ •์˜
โ€ข
Fatched Properties : ํ…œํ”Œ๋ฆฟ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ ๊ฒƒ (๋ฐ˜๋ณต๋˜๋Š” ์š”์ฒญ์ด๋‚˜ ๊ฐ’๋งŒ ๋ฐ”๊พธ์–ด ๋น„์Šทํ•œ ์š”์ฒญ๋“ค์„ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ)

ย ์šฉ์–ด

SQLite
Core Data
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ
๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํŒŒ์ผ
ํ…Œ์ด๋ธ”
์—”ํ„ฐํ‹ฐ
์ปฌ๋Ÿผ
์–ดํŠธ๋ฆฌ๋ทฐํŠธ
์™ธ๋ž˜ํ‚ค + ์กฐ์ธ
๋ฆด๋ ˆ์ด์…˜

ย ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰

โ€ข
ํ…Œ์ด๋ธ”์˜ ํ–‰, ๋ ˆ์ฝ”๋“œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋…๋ฆฝ๋œ ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

ย ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฐฉ๋ฒ• : DAO ํŒจํ„ด

โ€ข
SQLite์—์„œ DAO ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ๊ฐ์ฒด๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ
โ€ข
๋‹จ, Core Data์—์„œ๋Š” DAO ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

ย ๊ด€๋ฆฌ ๊ฐ์ฒด (Managed Object) : MO ํŒจํ„ด

โ€ข
VO (Value Object) ํŒจํ„ด๊ณผ ๋™์ผ
โ€ข
Core Data์—์„œ๋Š” MO ํŒจํ„ด์ด๋ผ ํ•˜๋ฉฐ, MO ํด๋ž˜์Šค์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ Entity์˜ ๊ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์™€ ์ง์ ‘ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ (ORM ๋งคํ•‘)
ย ORM(Object Relation Mapping) ๋งคํ•‘
โ€ข
๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋งคํ•‘ ์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ์‹

๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ์ž

Core Data๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋ธ ๊ณ„์ธต์˜ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด์ž, ๋ผ์ดํ”„ ์‚ฌ์ดํด์ด๋‚˜ ์˜์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ์ž(Object Graph Manager) ์ด๋‹ค.

ย ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„(Object Graph)๋ž€?

โ€ข
๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋กœ ๊ฐ„์ฃผํ•˜๊ณ (๊ทธ๋ž˜ํ”„ ๊ฐœ๋…), ์„œ๋กœ ๊ฐ„์˜ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๋งํฌ๋กœ ์ด์–ด๋ณด๋ฉด ๋‹ค์–‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š” ๋ณตํ•ฉ์ ์ธ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ์˜ ๋„ํ˜•์ด๋‹ค.
ย ๊ฐ์ฒด : ๋…๋ฆฝ์ ์ด๊ณ  ์ž์ฒด์ ์ธ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์œ„ ๊ตฌ์„ฑ์ฒด

ย ํŠน์„ฑ

โ€ข
Core Data๊ฐ€ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ์ฒด๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ๊ฐ์ฒด๋ผ๋ฆฌ๋Š” ์˜์†์ ์œผ๋กœ ๋™๊ธฐํ™”
โ€ข
์—ฐ๊ฒฐ๋œ A, B ๋‘ ๊ฐ์ฒด์—์„œ A ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด, ์ž๋™์œผ๋กœ B ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œ

ย Core Data์˜ ๊ตฌ์กฐ

ย ๊ด€๋ฆฌ ๊ฐ์ฒด (Managed Object) : NSManagedObject

ํ…Œ์ด๋ธ”์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์„ ๋•Œ, Core Data์—์„œ๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ, ์ด ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค.
โ†’ ์ง์›๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, DB์—์„œ ์ง์›๋“ค์˜ ์ •๋ณด๋ฅผ ์ฝ์–ด์˜ค๋ฉด ์ด๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , VO ์ธ์Šคํ„ด์Šค์— ๋‹ด์•„ ์‚ฌ์šฉ, ์ด๋•Œ VO๊ฐ€ ๊ด€๋ฆฌ ๊ฐ์ฒด์— ํ•ด๋‹นํ•œ๋‹ค.

ย ๊ด€๋ฆฌ ๊ฐ์ฒด ์ปจํ…์ŠคํŠธ (Managed Object Context)

1.
MO๋ฅผ ๊ฐ€์ง€๊ณ  CRUD ์—ญํ•  (Core Data์—์„œ ์ƒ์„œ๋˜๋Š” ๋ชจ๋“  ๊ด€๋ฆฌ ๊ฐ์ฒด๋Š” ์ปจํ…์ŠคํŠธ์— ๋‹ด๊ฒจ ๊ด€๋ฆฌ๋œ๋‹ค)
โ€ข
์ปจํ…์ŠคํŠธ์— ๋‹ด๊ธด ๊ฐ์ฒด๋Š” ์˜๊ตฌ ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ด ์ €์žฅ, ์‚ญ์ œ ๊ฐ€๋Šฅ
โ€ข
Core Data๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ƒํƒœ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š”๋ฐ, ์ด ๋•Œ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ โ€˜์ปจํ…์ŠคํŠธโ€™๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
2.
โ€˜์˜๊ตฌ ์ €์žฅ์†Œโ€™์™€ โ€˜์˜๊ตฌ ์ €์žฅ์†Œ ์ฝ”๋ฐ๋‹ˆ์ดํ„ฐโ€™์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์—ญํ• 
โ€ข
์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ์˜๊ตฌ ์ €์žฅ์†Œ์— ์š”์ฒญ(DAO ํŒจํ„ด๊ณผ ์œ ์‚ฌ)

ย ์˜๊ตฌ ์ €์žฅ์†Œ ์ฝ”๋””๋„ค์ดํ„ฐ (Persistent Store Coordinator)

์ปจํ…์ŠคํŠธ์™€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด์„œ ๋‹ค์–‘ํ•œ ์˜๊ตฌ ์ €์žฅ์†Œ๋“ค์˜ ์ ‘๊ทผ์„ ์กฐ์ •ํ•˜๊ณ  ์ž…์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•œ๋‹ค.
ย ํ๋ฆ„
1.
์ปจํ…์ŠคํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
2.
์ฝ”๋””๋„ค์ดํ„ฐ๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์˜๊ตฌ ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.
3.
์ฝ”๋”” ๋„ค์ดํ„ฐ๊ฐ€ MO ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ย ๊ด€๋ฆฌ ๊ฐ์ฒด ๋ชจ๋ธ (Managed Object Model)

Entity์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ์ฒด์ธ ๋™์‹œ์— ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ MO ํŒจํ„ด์˜ ๋ชจ๋ธ ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
ย MO vs MOM(Managed Object Model)
โ€ข
MOM
โ—ฆ
ํด๋ž˜์Šค์ด์ž ํ˜•์‹, ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธ
โ—ฆ
๋ฐ์ดํ„ฐ๋ฅผ CRUD ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ด€๋ฆฌ ๊ฐ์ฒด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ œ๋Œ€๋กœ ๋‹ด์„ ์ˆ˜ ์žˆ๋„๋ก ์ €์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™” ํ•œ๋‹ค.
โ€ข
MO
โ—ฆ
MOM์„ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค

ย ์˜๊ตฌ ๊ฐ์ฒด ์ €์žฅ์†Œ (Persistent Object Store)

์ดˆ๊ธฐ์—๋Š” ์ง์ ‘ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋””๋ฒ„๊น…์— ์šฉ์ดํ•œ XML ์ €์žฅ์†Œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์•ฑ์„ ๋ฐฐํฌํ•  ๋‹น์‹œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์šฉ์ด
ํƒ€์ž…
์„ค๋ช…
์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ ํƒ€์ž… (NSInmemoryStoreType)
๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์ €์žฅ ๋ฐฉ์‹(์˜๊ตฌ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ) ์•ฑ ์ข…๋ฃŒ์‹œ ๋ฐ์ดํ„ฐ ๋ณด์กด์ด ๋˜์ง€ ์•Š์Œ
ํ”Œ๋žซ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ €์žฅ์†Œ ํƒ€์ž… (NSBinaryStoreType)
๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ˆœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ํ˜•์‹์œผ๋กœ ์ €์žฅ ์žฅ์ ์€ ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ , ๋‹จ์ ์€ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„ ์ฆ๊ฐ€
XML ์ €์žฅ์†Œ ํƒ€์ž… (NSXMLStoreType)
์›์ž์„ฑ ์žฅ์ ์€ ์ง์ ‘ ์—ด์–ด๋ณด๊ณ  ํ™•์ธ ๊ฐ€๋Šฅ(์ดˆ๊ธฐ ๋””๋ฒ„๊น… ์šฉ์ด), ๋‹จ์ ์€ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ฆผ
SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (NSSQLiteStoreType)
๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ์ค‘ ์ผ๋ถ€๋งŒ ๋กœ๋”ฉ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ

โ—๏ธCore Data์˜ ํ•œ๊ณ„

ย In-momory ๋ฐฉ์‹

๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋ง๋œ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ๋งŒ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค
(SQLite๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ์ฒด ๋ชจ๋‘๋ฅผ ๋กœ๋”ฉํ•˜์ง€ ์•Š์•„๋„, ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋กœ๋“œํ•œ๋‹ค)

ย ๋ฐ์ดํ„ฐ ๋กœ์ง์—์„œ์˜ ํ•œ๊ณ„

์ค‘๋ณต๋œ ๊ฐ’์˜ ์ž…๋ ฅ์„ ๋ฐฉ์ง€ํ•˜๋Š” โ€˜Uniqueโ€™ ํ‚ค๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ด์•ผ ๊ฐ€๋Šฅํ•˜๋‹ค.

ย thread-safe ํ•˜์ง€ ์•Š๋‹ค (์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ)

thread ๋ผ๋ฆฌ Lock ๊ธฐ๋Šฅ(๋‹ค๋ฅธ thread๊ฐ€ ์นจ๋ฒ•ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ)์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. (๋‹จ Lock์„ ๊ฑธ์ง€ ์•Š์Œ์œผ๋กœ์จ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค)
โ†’ SQLite ์—ญ์‹œ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋งŒ ์ง€์›ํ•œ๋‹ค

ย Reference

[iOS - swift] 12. ์ฝ”์–ด ๋ฐ์ดํ„ฐ(Core Data)์˜ ๊ฐœ๋… - (1)
* Core Data๋Š” DataBase๊ฐ€ ์•„๋‹˜ ( Core Data๋Š” ORM ๋งคํ•‘ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋งž๋Š” ์˜๋ฏธ, ๋ฐ์ดํ„ฐ ์ €์žฅ์— ๊ด€ํ•œ ์ผ์ข…์˜ ํ”„๋ ˆ์ž„์›Œํฌ ) 1. Core Data๋ž€? 1) In-Memory ๋ฐฉ์‹์ด ์กด์žฌ : ์‚ฌ์šฉ ํ•˜๋ ค๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์šฐ์„  ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜๋Š” ๊ณผ์ •์ด ์กด์žฌ - ์ฝ”์–ด ๋ฐ์ดํ„ฐ : ์ฝ๊ณ  ์“ฐ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์›์น™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ๋‹ค์Œ์— ์ฒ˜๋ฆฌ (์˜๊ตฌ ์ €์žฅ์†Œ๋ฅผ ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ) * In - Memory๋ž€? ๋ง ๊ทธ๋Œ€๋กœ, Disc์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ํœ˜๋ฐœ์„ฑ์œผ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ™์ด ์ž ๊น ์ด์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์— In-Memory๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ - ๋‹ค๋ฅธ DB๋ฐฉ์‹ : ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ์ฝ๊ธฐ ๋ชฉ์ ์˜ ๋ฐ์ดํ„ฐ ์ผ๋ถ€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ 2) *์—”ํ„ฐํ‹ฐ(Entity)๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ..