CoreData - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki
CoreData
- OwnMyWay ์๋น์ค๋ ๋คํธ์ํฌ ํต์ ์ ํ์๋ก ํ์ง ์๋ ์๋น์ค์ด๋ฏ๋ก CoreData์ Persistence๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ฌํํ ์ฅ์, ์ฌํ์ค ๋จ๊ธด ๊ธ์ ์ ์ฅํฉ๋๋ค.
- iOS Persistence๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ผ๋ก๋
UserDefault, SQLite, CoreData, Realm
์ด ์กด์ฌํ์ง๋ง ์ฌ๊ธฐ์ ์ ํฌ๋CoreData
๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.- Apple ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ ๋ขฐ์ฑ์ด ๋์ต๋๋ค.
- Realm์ ๊ฒฝ์ฐ ์ฑ๋ฅ ์์์ CoreData๋ฅผ ์์์ง๋ง, Third-Party ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ์ ์์ ์ฑ ์ด์์ ์ฑ์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ต๋๋ค.
- Realm๊ณผ ๋์ผํ๊ฒ Object ๊ด์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ถํ Realm์ผ๋ก ์ ํ์ด ๊ฐํธํ ํธ์ ๋๋ค.
CoreData
- CoreData๋ฅผ ํตํด ์ธ์คํด์ค๋ฅผ ์์ฑ, ์กฐํ, ์์ , ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋
Repository
๋ฅผ ์์ฑํ์ฌ ๋น์ฆ๋์ค๋ก์ง์ด CoreData์ ์ ๊ทผ์ด ํ์ํ ๊ฒฝ์ฐ ํด๋นRepository
๋ฅผ ์ฃผ์ ๋ฐ์ ์ฌ์ฉํ๋ ํํ๋ก ๊ตฌ์ฑํ์์ต๋๋ค.Usecase
๋Repository
์ ์์ธ๋ฅผ ์ ๊ทผํ๋ ๊ฒ์ด ์๋protocol
์ ํตํ ์ถ์ํ์ ์ ์ฃผ์ ๋ฐ์ ์ถํ์ CoreData๊ฐ ์๋ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ค ํ๋๋ผ๋ ์ ์ฐํ๊ฒ ํ์ฅํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ฑํํ์์ต๋๋ค. -
Travel-Landmark&Record
ํํ๋ก Relation์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ์๊ณ Entity๊ฐ์ One-To-Many Relation์ ์ ์ฉํ ๋Delete Cascade
์ต์ ์ ์ ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๊ณ ์ญ์ ๋ฅผ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์์์ต๋๋ค.