๐ Flutter ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๊ตํ
๊ตฌ๋ถ | DB ์ด๋ฆ | ํ์ | ์ฅ์ | ๋จ์ | ์ฌ์ฉ ์์ |
Key-Value | shared_preferences | Key-Value Storage | - ์ค์ ๊ฐ ๋ฑ ๊ฐ๋จํ ๋ฐ์ดํฐ - ๋น ๋ฅธ ์๋ |
- ๋ณต์กํ ๊ตฌ์กฐ ์ ์ฅ ๋ถ๊ฐ- ๋น๋๊ธฐ ๋์ ์ ํ | ๋ก๊ทธ์ธ ์ ๋ณด, ํ ๋ง ์ค์ ๋ฑ |
Key-Value | Hive | Key-Value + Box ๊ธฐ๋ฐ NoSQL | - ๋งค์ฐ ๋น ๋ฆ - ๊ตฌ์กฐํ๋ ์ ์ฅ ๊ฐ๋ฅ - ์น/๋ฐ์คํฌํ ์ง์ |
- ๋๊ท๋ชจ ๊ด๊ณํ ๋ฐ์ดํฐ์ ๋ถ์ ํฉ | ๋ฉ๋ชจ ์ฑ, ์บ์ ์ ์ฅ์ ๋ฑ |
Key-Value + DB | Isar | ๊ณ ์ฑ๋ฅ NoSQL DB | - Hive๋ณด๋ค ๋น ๋ฆ - ์ฟผ๋ฆฌ ๋ฌธ๋ฒ ์ง๊ด์ - ๊ด๊ณํ ๊ตฌ์กฐ ์ผ๋ถ ์ง์ |
- ์๋์ ์ผ๋ก ์ํ๊ณ ์์ | ์ค๊ฐ ๊ท๋ชจ ์ฑ, ๊ฐ์ฒด ์งํฅ DB |
SQLite ๊ธฐ๋ฐ | sqflite | ๊ด๊ณํ DB | - ์ ํต์ ์ธ SQL ์ง์ - ์ ์ฝ ์กฐ๊ฑด, ๊ด๊ณํ ํํ ์ฐ์ |
- ๋ณต์กํ ์ฟผ๋ฆฌ ์๋ ์์ฑ ํ์ - ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ง์ ํด์ผ ํจ |
์ผ์ ๊ด๋ฆฌ, ์ผ๊ธฐ์ฅ, ๊ธ์ต ์ฑ ๋ฑ |
ORM ๊ธฐ๋ฐ | Drift (moor) | SQLite + ORM | - SQL + Dart ํตํฉ- ํ์
์์ ์ฑ - ๊ด๊ณํ ๊ตฌ์กฐ ์ง์ |
- ์ค์ ๋ณต์ก - ๋น๋ ๋จ๊ณ ํ์ |
๋ณต์กํ ์คํค๋ง ๊ด๋ฆฌ, ๋ถ์ ์ฑ |
ORM ๊ธฐ๋ฐ | Floor | SQLite + ๊ฐ๋จ ORM | - ๊ฐ๋จํ ORM ์ฌ์ฉ- Android Room ์ ์ฌ | - ๊ธฐ๋ฅ ์ ํ์ - ๊ด๊ณ ๋ณต์ก์ฑ ์ทจ์ฝ | ๋จ์ CRUD ์ฑ |
๊ฐ์ฒด DB | ObjectBox | ๊ณ ์ฑ๋ฅ ๊ฐ์ฒดํ DB | - ๋น ๋ฅธ ์ฐ๊ธฐ/์ฝ๊ธฐ - ๊ด๊ณํ ๊ฐ์ฒด ์ฐ๊ฒฐ ์ฐ์ |
- ํฌ๋ก์ค ํ๋ซํผ ์ง์ ์ ํ์ - ์ํ๊ณ ์์ |
IoT ์ฑ, ์ผ์ ๋ก๊ทธ, ์ค๋ํ ์ฑ |
๐ ์ถ์ฒ ๊ธฐ์ค
๐ ๊ฐ๋จํ ๋ฐ์ดํฐ (์ค์ , ํ ๊ธ, ๋ก๊ทธ์ธ ์ ๋ณด):
- shared_preferences → ๋ณต์กํ ๊ตฌ์กฐ ํ์ ์๋ค๋ฉด ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๋น ๋ฆ.
๐ ๋น ๋ฅธ ์ฑ๋ฅ + ๊ฐ๋จ ๊ตฌ์กฐ (์ค์ํ ์ฑ):
- Hive
→ ํ์ต ๋์ด๋ ๋ฎ๊ณ ์๋ ๋น ๋ฆ. ๊ฐ์ฒด ์ ์ฅ ๊ฐ๋ฅ.
→ ๋จ์ ์ ๊ด๊ณํ ๊ตฌ์กฐ๊ฐ ์ฝํจ.
๐ Hive๋ณด๋ค ๊ฐ๋ ฅํ ๋์ฒด์ ์ฐพ๋๋ค๋ฉด:
- Isar
→ ์ฑ๋ฅ, ๊ตฌ์กฐํ, ๊ด๊ณ์ฑ, ์ฟผ๋ฆฌ ์ธ์ด ๋ชจ๋ ๊ท ํ ์กํ.
→ ์ต๊ทผ ํธ๋ ๋์์ Hive๋ณด๋ค ๋ ์ถ์ฒ๋๋ ๊ฒฝ์ฐ ๋ง์.
๐ SQL ๋ฌธ๋ฒ์ ์ต์ํ๊ณ ์ ํต์ ์ธ DB ์ค๊ณ๊ฐ ํ์ํ๋ค๋ฉด:
- sqflite → ๋ช ํํ ๊ด๊ณ ์ค์ , ์ ์ฝ ์กฐ๊ฑด ํ์ํ ๋ ์ข์.
๐ SQL + ORM ์คํ์ผ, ํ์ ์์ ์ฑ ํ์:
- Drift → ๋น์ฆ๋์ค ๋ก์ง์ด ๋ณต์กํ๊ฑฐ๋ ์คํค๋ง ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ.
๐ Android์ Room DB์ ์ ์ฌํ ๊ตฌ์กฐ ์ํ๋ค๋ฉด:
- Floor → ๊ฐ๋จํ ORM ๊ตฌ์กฐ ์ํ ๋ ์ฌ์ฉ.
๐ ๊ด๊ณํ ๊ฐ์ฒด ์งํฅ + ์ด๊ณ ์ ์ฐ๊ธฐ/์ฝ๊ธฐ ์ํ๋ค๋ฉด:
- ObjectBox → ๋๊ท๋ชจ ๋ก๊น , ์ค์๊ฐ DB ์ฒ๋ฆฌ ๋ฑ์ ์ ํฉ.
โ ์ผ๊ธฐ ์ฑ – ์ด๋ค DB๊ฐ ์ ํฉํ ๊น?
์ถ์ฒ DB – Isar
์ผ๊ธฐ ์ฑ์ ๊ตฌ์กฐํ๋ ๊ธ, ๋ ์ง๋ณ ์ ๋ ฌ, ๊ฐ์ ๋ฐ ํ๊ทธ ๊ฒ์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์๊ตฌํ๋ฏ๋ก, ๊ฐ์ฒด ๊ธฐ๋ฐ ์ ์ฅ๊ณผ ๊ฐ๋ ฅํ ์ฟผ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ Isar๊ฐ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
์ด์ – ์ฑ๋ฅ๊ณผ ์ ์ฐ์ฑ ๋ชจ๋ ์ฐ์
Isar๋ ๊ธด ํ
์คํธ(2000์ ์ด์)๋ ๋ฌธ์ ์์ด ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๊ฐ์ , ํ๊ทธ, ๋ ์ง ๋ฑ์ ์กฐํฉํ ๊ฒ์๊ณผ ์ ๋ ฌ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํ์
์์ ์ฑ๊ณผ ๋ง์ด๊ทธ๋ ์ด์
์ง์ ๋๋ถ์ ์ ์ง๋ณด์๋ ์ฉ์ดํฉ๋๋ค.
์ฅ์ – ํ์ฅ์ฑ ์๋ ๊ตฌ์กฐํ๋ ์ ์ฅ์
Dart ๊ฐ์ฒด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ณ , ์ฟผ๋ฆฌ ๊ธฐ๋ฅ(where, filter, sortBy ๋ฑ)์ด ๋ฐ์ด๋๋ฏ๋ก ๊ฐ์ ํํฐ, ๋ ์ง ์ ๋ ฌ, ํ๊ทธ ๊ฒ์ ๋ฑ์ ๊ตฌํํ๊ธฐ ์ฝ์ต๋๋ค. ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ด๋ฏธ์ง ์ฒจ๋ถ, ์ ๊ธ ๊ธฐ๋ฅ ๋ฑ ํฅํ ๊ธฐ๋ฅ ํ์ฅ๋ ์ ์ฐํ๊ฒ ๋์ ๊ฐ๋ฅํฉ๋๋ค.
๋จ์ – ์ด๊ธฐ ์ค์ ํ์
์ฝ๋ ์์ฑ(build_runner)์ด ํ์ํ๊ณ ๋ชจ๋ธ ์ ์ ์ ์ฝ๊ฐ์ ์ง์
์ฅ๋ฒฝ์ด ์์ ์ ์์ต๋๋ค.
๋์ – Hive (๋จ์ ๊ตฌ์กฐ์ผ ๊ฒฝ์ฐ)
Hive๋ ์ค์ ์ด ๊ฐ๋จํ๊ณ ๋น ๋ฅด์ง๋ง, ๊ตฌ์กฐ๊ฐ ๋จ์ํ ์ฑ์์๋ง ํจ์จ์ ์
๋๋ค. ์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ด ์ ํ์ ์ด๋ฏ๋ก ๊ฐ์ /ํ๊ทธ ๊ฒ์, ์ ๋ ฌ ๋ฑ์๋ ๋ถํธํจ์ด ์์ต๋๋ค.
โ ์์น ๊ธฐ๋ฐ ๊ธธ์ฐพ๊ธฐ ์ฑ – ์ด๋ค DB๋ฅผ ์จ์ผ ํ ๊น?
์ถ์ฒ DB – Isar
๊ธธ์ฐพ๊ธฐ ์ฑ์์๋ ์ขํ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ์ ๋ ฌ, ๊ฒฝ๋ก ์บ์ ์ ์ฅ, ์กฐ๊ฑด ๊ฒ์ ๋ฑ์ด ์ค์ํ๋ฐ, Isar๋ ์ด๋ฌํ ์กฐ๊ฑด์ ์ต์ ํ๋ ์ฑ๋ฅ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์ด์ – ๊ณ ์ ์ฑ๋ฅ + ์์น ์ ๋ ฌ ์ง์
Isar๋ Hive๋ณด๋ค 2~5๋ฐฐ ๋น ๋ฅธ ์ฝ๊ธฐ/์ฐ๊ธฐ ์๋๋ฅผ ์ ๊ณตํ๋ฉฐ, startLat, startLng ๊ฐ์ ์ขํ ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ ์ฉํด ๋น ๋ฅธ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฒ ์์ด๋ ์คํ๋ผ์ธ ๊ฒฝ๋ก ์บ์๋ฅผ ์ ์ฅํ๊ณ ํ์ฉํ๋ ๋ฐ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค.
์ฅ์ – ๊ฒฝ๋ก ์บ์ ๋ฐ ์ค์๊ฐ ํํฐ๋ง์ ๊ฐํจ
์ด์ ๊ฒฝ๋ก, ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ต๊ทผ ๋ฐฉ๋ฌธ ๊ธฐ๋ก ๋ฑ์ ์ ๋ ฌํ๊ฑฐ๋ ๊ฒ์ํ ๋ ๋งค์ฐ ํจ์จ์ ์
๋๋ค. API๋ก ๋ฐ์ ๊ฒฝ๋ก ๋ฐ์ดํฐ๋ฅผ JSON ํํ๋ก ์ ์ฅํด ๋ฐ๋ณต ๊ฒฝ๋ก ์์ฒญ์ ์ค์ผ ์ ์์ต๋๋ค.
๋จ์ – ์ด๊ธฐ ์ค๊ณ ํ์
์ขํ ๊ธฐ๋ฐ ๊ฒ์, ์ธ๋ฑ์ค ์ค๊ณ, ์ค๋ณต ๊ฒฝ๋ก ์ฒ๋ฆฌ ๋ฑ ์ฑ ํน์ฑ์ ๋ง๋ ๊ตฌ์กฐ ์ค๊ณ๊ฐ ์ค์ํฉ๋๋ค.
๋์ – Hive (์ฆ๊ฒจ์ฐพ๊ธฐ๋ง ์ ์ฅ ์)
์ฆ๊ฒจ์ฐพ๊ธฐ ์์น ์ ์ฅ ๋ฑ ๋จ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์๋ Hive๋ ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ๊ฒฝ๋ก ๊ฒ์์ด๋ ์ ๋ ฌ์๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
๐ ์ฐธ๊ณ ํ ๋ฐ ๊ณ ๋ ค ์ฌํญ
์ธ๋ถ API ์ฐ๋ – ์ค์๊ฐ ๊ฒฝ๋ก ๊ณ์ฐ์ ์ธ๋ถ API ์ฌ์ฉ
๊ธธ์ฐพ๊ธฐ๋ Kakao, Google ๋ฑ ์ง๋ API๋ฅผ ํ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํ๊ณ , ๊ฒฐ๊ณผ๋ง DB์ ์ ์ฅํ๋ฉด ์๋ฒ ๋ถ๋ด์ ์ค์ผ ์ ์์ต๋๋ค.
DB ํ์ฉ – ์บ์ ๋ฐ ์ฌ์ฉ์ ๊ธฐ๋ก ์ ์ฅ ์ค์ฌ
DB๋ ๊ฒฝ๋ก ์บ์, ์ฆ๊ฒจ์ฐพ๊ธฐ, ๋ฐฉ๋ฌธ ์ด๋ ฅ ๋ฑ์ ์ ์ฅํ๋ ๋ฐ ์ง์คํ๊ณ , ์ค์๊ฐ ๊ณ์ฐ์ ์ธ๋ถ์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ํจ์จ์ ์
๋๋ค.
'Flutter + Dart > Flutter + Dart ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Flutter์์ ๋ฒํผ์ผ๋ก ํ๋ฉด ์ ํํ๋ ๋ฒ(๋ค๋ฅธ ํ์ผ์ ์๋ ํ๋ฉด์ผ๋ก ์ด๋) (0) | 2025.05.12 |
---|---|
ํ ํ์ผ ๋ด์์ ํ๋ฉด ์ ํํ๊ธฐ (0) | 2025.05.12 |
flutter ๋น๋ํ๊ธฐ (0) | 2025.05.07 |
Widget์ ์ข ๋ฅ (1) | 2025.05.07 |
UI ์์ - ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋ฅ, ์์ด์ฝ, ๋ ์ด๋ธ, ํ๋ฉด ์ ํ (0) | 2025.05.07 |