-
Notifications
You must be signed in to change notification settings - Fork 0
๐ฆ ์ DataStore ์ธ๊ฐ?
saeyoung Oh edited this page Dec 13, 2023
·
1 revision
- ๋น๋๊ธฐ API ์ง์ ๋ถ์กฑ
- ๊ฐ์ด ๋ณ๊ฒฝ๋์์ ๋ listener ๋ฅผ ํตํด์ ์ฝ๋ฐฑ์ ๋ฐ์ ์ ์๋ ๊ฒ ๋ง๊ณ ๋ ์ง์ํ์ง ์์.
- ํธ์ถ๋ ์ค๋ ๋์์ ๋ฐ๋ก write ์ด ๊ฐ๋ฅํจ.
- UI ์ค๋ ๋์์๋ ํธ์ถ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ UI ์ค๋ ๋ ๋ธ๋กํน์ผ๋ก ์ธํ ANR ๋ฐ์์ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํจ.
- Runtime exception ์ ์ทจ์ฝ
- exception ํธ๋ค๋ง์ ์ ๊ณตํ์ง ์์, runtime์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์ดํ์ด ์ข ๋ฃ๋๋ ๋ฌธ์ .
- ์ฝ๋ฃจํด๊ณผ Flow ๋ฅผ ํตํ ๋น๋๊ธฐ API ๋ฅผ ์ง์ํ๊ณ , ์ผ๊ด๋ ํธ๋์ญ์ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
-
Dispatcher.IO
์์์ ์์ ์ด ๋ณด์ฅ๋๊ธฐ ๋๋ฌธ์ UI ์ค๋ ๋์์ ํธ์ถ๋์ด๋ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์. - ์ ํ
- Preferences DataStore
- key-value ํ์์ผ๋ก ๋ฐ์ดํฐ ์ ์ฅํ๋ฉฐ, ์ฌ์ ์ ์๋ ์คํค๋ง๊ฐ ํ์ํ์ง ์์.
- ํ์ ์์ ์ฑ์ ์ ๊ณตํ์ง ์์.
- Proto DataStore
- ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ด ์ง์ ๋ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ฉฐ, ์ฌ์ ์ ์๋ ์คํค๋ง๊ฐ ํ์ํจ.
- ํ์ ์์ ์ฑ์ ์ ๊ณตํ๋ฉฐ, Preferences DataStore ๋ณด๋ค ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ์ ํฉ.
- Preferences DataStore
- ๊ธฐ์กด ์๋๋ก์ด๋์์ ์ฌ์ฉํ๋ SQLite ๋ฅผ ๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌ์ถ๋ ORM (Object Relational Mapping) ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Entity (๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ), DAO (ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ํด๋์ค๋ก ๋ฉ์๋๋ฅผ ์ ๊ณตํจ), Database (๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ์์ธ์ค ํฌ์ธํธ ์ญํ ์ ํจ) ๋ก ๊ตฌ์ฑ๋์ด ์์.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ณต์กํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๊ณ์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์์.
-> Preferences DataStore ๋ฅผ ์ ํํ ์ด์
- ์์์ ์ธ๊ธํ ๋๋ก SharedPreferences ์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ ํํ์ง ์์.
- ์ ์ฅํด์ผ ํ ๋ฐ์ดํฐ๋ ์ ์ ์ accessToken / refreshToken ์ด ์ ๋ถ. ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์์๊ณ ,
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ฟผ๋ฆฌ ํ ํ์๊ฐ ์์์.
- ์ด๋ฌํ ์ด์ ๋ก Preferences DataStore ๊ธฐ์ ์ ์ฑํํ์ฌ accessToken / refreshToken ์ ๊ด๋ฆฌํจ.
-
๐ฌ ํ ํ๊ณ
-
๐โโ๏ธ ๊ฐ์ธ ํ๊ณ