Focus On Develop ๐ŸคŸ๐ŸคŸ

[Swift] Core Data(1) ๊ฐœ๋…์ •๋ฆฌ ๋ณธ๋ฌธ

iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!

[Swift] Core Data(1) ๊ฐœ๋…์ •๋ฆฌ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2020. 12. 21. 15:42

iOS, Swift ๋ฅผ ์‹œ์ž‘ํ–ˆ์œผ๋‹ˆ ์•„๋ฌด๋ฆฌ ๊ฐ„๋‹จํ•œ ์•ฑ์ด๋ผ๋„ ๋‚ด ์•ฑ์€ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์ถœ์‹œํ•ด๋ด์•ผ๊ฒ ๋‹ค! ๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋‚˜.. ์‹œ์ž‘๋ถ€ํ„ฐ ์˜ค์ž‰?? ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์–ด๋””์— ์ €์žฅํ•˜์ง€..!? (์—…๋ฌดํ• ๋•Œ๋Š” ๊ทธ๋ƒฅ B/E์—์„œ DB๊ตฌ์„ฑํ•˜๊ณ  API๋งŒ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด ๋˜์—ˆ์œผ๋‹ˆ ์•Œ ๋ฆฌ๊ฐ€ ์žˆ๋‚˜ ๐Ÿ˜ญ)

Data๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ €์žฅํ• ๋•Œ๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, (FileManager, CoreData, SQLite ๋“ฑ) ๋‚˜๋Š” Apple์—์„œ ์ œ๊ณต๋˜๋Š” Framework์ธ Core Data๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ทธ๋งŒํผ Apple์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ Library, App๊ณผ์˜ ํ˜ธํ™˜์„ฑ๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์žฅ๋ ํ„ฐ๋ผ.. ใ…‹ใ…‹

์•”ํŠผ ์ฒ˜์Œ ๊ณต๋ถ€ํ•ด๋ณด๋ฉด์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋Š” ๊ฑด ์ง€๊ทนํžˆ ์™•์™•์™•์ดˆ๋ณด๐Ÿ’๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๊ณ .. ๋‚ด ์œ„์ฃผ๋กœ, ๋‚ด ์–ธ์–ด๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค.๐ŸคŸ

๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋…์ •๋ฆฌ๋‚˜ ์‹ค์Šต๊ณผ์ •์—์„œ ์ž˜๋ชป๋œ ์ ์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€์„ ํ†ตํ•œ ์ง€์ ๊ณผ ํ›ˆ์ˆ˜ ์–ธ์ œ๋“ ์ง€ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘๐Ÿ‘


Core Data ๊ฐœ๋…

์ƒ์„ธ ๋‚ด์šฉ : Core Data | Apple Document

 

 

Core Data๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ฐ”์ด์Šค์— permenent data(์˜๊ตฌ๋ณด๊ด€ ๋ฐ์ดํ„ฐ)๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. (๋‹น์—ฐํžˆ ์•ฑ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „๊นŒ์ง€.)

UserDefaults๋„ Apple์—์„œ ์ œ๊ณตํ•˜๋Š” ์ €์žฅ์†Œ์ด์ง€๋งŒ, UserDefaults๋Š” app setting์ด๋‚˜ ๊ฐ„๋‹จํ•œ ์œ ์ €์ •๋ณด ์ •๋„๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์ ํ•ฉํ•œ๋ฐ ๋ฐ˜๋ฉด, Core Data๋Š” ์ข€ ๋” ํฌ๊ณ  ๋ณต์žกํ•œ Data๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

์‰ฝ๊ฒŒ ์ดํ•ด๋ ค๋ฉด Database๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ์ง€๋งŒ.. ์‚ฌ์‹ค ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด Core Data๋Š” Database๋Š” ์•„๋‹ˆ๊ณ , Model (NSManagerObjectModel)์„ NSManagedObjectContext๋ฅผ ํ†ตํ•ด Persistent Container์— ๋ฐ์ดํ„ฐ๋ฅผ CRUD ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” Framework๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๋ฒŒ์จ NS ์–ด์ฉŒ๊ณ  ์ €์ฉŒ๊ณ .. ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„๋‹ค.๐Ÿ˜ญ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ๋ญ”์ง€ ์•Œ์•„๋ณด์ž.

 

์Œ.. ์ด๋ ‡๊ฒŒ Diagram์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. Core Data์˜ Persistent Container์— ์ ‘๊ทผํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Managed Object Context๋ฅผ ํ†ตํ•˜๋ฉด ๋œ๋‹ค. ๊ฐ„๋žตํžˆ ๊ฐœ๋…์€ ์‚ดํŽด๋ดค์œผ๋‹ˆ, ์ด์ œ ์ง์ ‘ Core Data๋ฅผ ์‹ค์Šตํ•ด๋ณด์ž! 

 

Core Data ์‹ค์Šตํ•˜๋Ÿฌ ๊ฐ€๊ธฐ ๐Ÿ‘‰  2020/12/21 - [iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!] - [Swift] Core Data(2) ์‹ค์Šตํ•ด๋ณด๊ธฐ

 

 

Comments