[Swift] Core Data(1) ๊ฐ๋ ์ ๋ฆฌ
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) ์ค์ตํด๋ณด๊ธฐ