๐ฑ Today I Learned
- (10:00 ~ 10:30 / 30๋ถ) ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋์นดํ
- (11:00 ~ 12:40 / 1์๊ฐ 40๋ถ) ํ์ดํ ๋ฏธ๋ ํน๊ฐ
- (12:40 ~ 13:30 / 50๋ถ) TIL ์ด๋ฒ ์ฃผ ๋ชฉํ ์์ฑ ๋ฐ ์ ๋ฆฌ
- (19:30 ~ 20:00 / 30๋ถ) Room ์ ๋ฆฌ
- (20:00 ~ 20:20 / 20๋ถ) ๋ฐ์ผ๋ฆฌ ํ๊ณ
*** ์ ์ฌ 13:00 ~ 14:00 / ์ ๋ 18:00 ~ 19:00 ์ ์ธ
โ
๐ ์ด๋ฒ ์ฃผ ๋ชฉํ |
|||||
์ง์ค์๊ฐ โฐ ์ด 0์๊ฐ 0๋ถ |
ํ์์ผ (โฐ 3:10) |
์์์ผ (โฐ 0:00) |
๋ชฉ์์ผ (โฐ 0:00) |
๊ธ์์ผ (โฐ 0:00) |
์ฃผ๋ง (โฐ 0:00) |
์ฌํ ๊ฐ์ ์๊ฐ | โ Shared Preference |
โก Room โก ์ฌ์ฉ์์์น โก ๊ตฌ๊ธ์ง๋์ฑ |
โก Retrofit โก ๋ฏธ์ธ๋จผ์ง์ฑ โก ๊ฐ๋ฐํ๋ก์ธ์ค โก ๋๋ฒ๊น |
โก ๋ณต์ต | |
๊ฐ์ธ ๊ณผ์ ์์ | โก ๊ฐ์ธ ๊ณผ์ ์์ | โก ๊ฐ์ธ ๊ณผ์ ๊ตฌํ | |||
Fragment ์ดํด - ๋ฐ์ดํฐ ์ ๋ฌ - ํ๋ฉด ์ด๋ |
โก ํ๋ฉด ์ด๋ | โก ๋ฐ์ดํฐ ์ ๋ฌ | |||
์๊ณ ๋ฆฌ์ฆ | โก ์๊ณ ๋ฆฌ์ฆ | โก ์๊ณ ๋ฆฌ์ฆ | โก ์๊ณ ๋ฆฌ์ฆ | ||
์๋ จ ์ฃผ์ฐจ ํํ๋ก์ ํธ ์ฝ๋ ๋ถ์ | โก ์ฝ๋ ๋ถ์ | โก ์ฝ๋ ๋ถ์ | |||
์คํ ๋ค๋๋ฐ | โ 7์ฃผ์ฐจ ๊ฐ์ | โก 7์ฃผ์ฐจ ๊ฐ์ ๋ณต์ต โก MVVM๊ณผ์ ๋ณต์ต |
|||
๋ฒ ์ด์ง๋ฐ ๊ฐ์ ๋ค์ด๋ณด๊ธฐ |
โก 5ํ์ฐจ ๊ฐ์ | โก 6ํ์ฐจ ๊ฐ์ | โก 7ํ์ฐจ ๊ฐ์ | ||
Joyce ์์ ๋ ํ | โก 151 ~ 217p (๋ทฐ, ๋ ์ด์์) |
โก ์คํฑ์์น | โก ๋ฎค์ง ํ๋ ์ด์ด | โก QR ๋ฆฌ๋๊ธฐ | |
๊ธฐํ ์ฌํญ | โ ํ์ดํ ํน๊ฐ | โก ์ ์ฐฝ๊ฒฝ ์ ๋ฆฌ | |||
์ฌํ ๋ชฉํ | |||||
- KIA ๊ฐ๋
ํ๊ธฐ - Android Developer ์ฝ๊ธฐ - ๊ฐ์ธํ๋ก์ ํธ UI ๊ตฌํ - ์ ๋ฒ ํ๋ก์ ํธ ์ฝ๋ ๋ฏ์ด๋ณด๊ธฐ - ๋งํฌ ์๊ฐ |
1. ์๋๋ก์ด๋ ์ฌํ ๊ฐ์ ์๊ฐ ๋ฐ ์ ๋ฆฌ
[Android ๊ธฐ์ด] 15. SharedPreferences
์๋๋ก์ด๋์์์ ์๊ตฌ(๋นํ๋ฐ์ฑ) ๋ฐ์ดํฐ ์ ์ฅ๋ฒSharedPreference (์ค์ ์ ๋ณด ์ ์ฅํ ๋ ๋ง์ด ์ฌ์ฉ)๋ฐ์ดํฐ๋ฒ ์ด์คํ์ผ<p data-ke-size="si..
limheejin.tistory.com
[Android ๊ธฐ์ด] 16. Room (๋ฐ์ดํฐ๋ฒ ์ด์ค)
์๋๋ก์ด๋์์์ ์๊ตฌ(๋นํ๋ฐ์ฑ) ๋ฐ์ดํฐ ์ ์ฅ๋ฒSharedPreference๋ฐ์ดํฐ๋ฒ ์ด์คํ์ผ 1) Room ๊ฐ์SQLite๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ๋งคํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฝ๊ฒ Query๋ฅผ ์ฌ์ฉํ ์ ์๋ API๋ฅผ
limheejin.tistory.com
2. ์คํ ๋ค๋๋ฐ 7์ฃผ์ฐจ
api ํ ์คํธ
- ํฌ์คํธ๋งจ (Postman)
- ์ (CURL, Client URL) (๋ธ๋ก๊ทธ ์ฐธ๊ณ ๋งํฌ)
Json์ด๋?
- ํค-๊ฐ(key-value)๋ก ์ด๋ฃจ์ด์ง ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํ ๋ฌธ์ ๊ธฐ๋ฐ์ ํ์ค ํฌ๋งท(๋ฐ์ดํฐ ํ์)
- ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ๋์ ๋ฐ์ดํฐ ๊ตํ ํ์
- JSON์ ๋ฐ์ดํฐ ํฌ๋งท์ผ ๋ฟ์ด๋ฉฐ ์ด๋ ํ ํต์ ๋ฐฉ๋ฒ๋, ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ๋ ์๋ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ํํ ๋ฐฉ๋ฒ
Json Converting ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Gson (Json์ ์๋ฐ ๊ฐ์ฒด๋ก ์ปจ๋ฒํ
)
- Moshi
Repository Pattern
- ์ฃผ๋ ๋ชฉ์ ์ Data Layer๋ฅผ ์บก์ํํ๊ธฐ ์ํจ
- ๋ฐ์ดํฐ ๋ ์ด์ด์ ํ๋ ์ ํ ์ด์ ๋ ์ด์ด์ ๊ฒฐํฉ๋(Coupling)๊ฐ ์ค์ด๋ฆ - Data์ ์ถ์ฒ(network, local data, file ๋ฑ)์ ๊ด๊ณ ์์ด ๋์ผํ ์ธํฐํ์ด์ค๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ํจํด
- repository → datasource ์์กด์ฑ ํํผ
: ์์กด์ฑ์ ์์ ๋ฉด dataSource ๋ณ๊ฒฝ์ (ex. network → local data๋ก ๋ณ๊ฒฝ ์) repository์๋ ์ํฅ์ด ์์ - ํ๋ ์ ํ
์ด์
๋ ์ด์ด์์ ๋ฐ์ดํฐ ๋ ์ด์ด์ ์ง์ ์ ๊ทผํ์ง ์์๋, ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๋ฐ์ดํฐ ์์ฒญ๋ง ํ๋ฉด ๋จ
-> ์๋ก์ด Data ์ถ๊ฐ๊ฐ ์ฌ์ - ๋ฐ์ดํฐ ๋ ์ด์ด์ Data class๋ง ๋์ผํ๋ค๋ฉด, cache, remote ๊ฒฐ๊ณผ ๊ฐ์ธ Data class๋ง ๋ฆฌํฌ์งํ ๋ฆฌ ๊ตฌํ์ฒด์ ๋ณด๋ด์ฃผ๋ฉด ๋จ
๋คํธ์ํฌ ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๊ตฌ์กฐ
LiveData์ ํจ๊ป ์ฝ๋ฃจํด ์ฌ์ฉ
์๋ช ์ฃผ๊ธฐ ์ธ์ ๊ตฌ์ฑ์์๋ก Kotlin ์ฝ๋ฃจํด ์ฌ์ฉ | Android ๊ฐ๋ฐ์ | Android Developers
์ด ํ์ด์ง๋ Cloud Translation API๋ฅผ ํตํด ๋ฒ์ญ๋์์ต๋๋ค. ์๋ช ์ฃผ๊ธฐ ์ธ์ ๊ตฌ์ฑ์์๋ก Kotlin ์ฝ๋ฃจํด ์ฌ์ฉ ์ปฌ๋ ์ ์ ์ฌ์ฉํด ์ ๋ฆฌํ๊ธฐ ๋ด ํ๊ฒฝ์ค์ ์ ๊ธฐ์ค์ผ๋ก ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฅํ์ธ์. Kotlin ์ฝ
developer.android.com
- ๋ผ์ด๋ธ ์ฝ๋ฉํ์ค ๋ data, extension, network(retrofit์ค์ ), presentation ์ผ๋ก ํจํค์งํ์๋ ๊ฑธ ํ์ธ
3. ํ์ดํ ๋ฏธ๋ ํน๊ฐ
๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๊ฒฐ์ ํ๋ ์ด์
- ๊ฐ์ธ์ ์ฑ์ฅ : ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ฉฐ ์๊ธฐ๊ณ๋ฐ์ ์ง์
- ์ฌํ์ ๊ธฐ์ฌ : ๊ธฐ์ ์ ํตํด ์ฌํ์ ๋ฌธ์ ํด๊ฒฐ, ๋ค๋ฅธ ์ด๋ค์ ์ํ ๊ฐ์
- ์ฐฝ์ ๊ธฐํ : ๊ธฐ์ ๋ ฅ์ ๋ฐํ์ผ๋ก ์ฐฝ์ ํ๊ฑฐ๋ ์คํํธ์ ์ฐธ์ฌํ ๊ธฐํ ๋ง์
- ์ทจ๋ฏธ์ ์ง์ ์ ์ฐ๊ฒฐ : ์ฝ๋ฉ์ด ์ทจ๋ฏธ์ธ ์ฌ๋๋ค์ด ์์ ์ ์ด์ ์ผ๋ก ์ง์ ์ ํ
๊ฐ๋ฐ์๋ก ์ด๋ฉด์ ์ข์ ์
- ์ฐฝ์๋ ฅ ๋ฐํ, ์์ด๋์ด ์ค์ ๋ก ๊ตฌํ
- ์ง์์ ์ธ ํ์ต, ๊ณ์ ์๋ก์ด ๊ฑธ ๋ฐฐ์
- ๋ฌธ์ ํด๊ฒฐ, ์ฑ์ทจ๊ฐ
- ์ ์ฐํ ๊ทผ๋ฌด ํ๊ฒฝ, ๊ทผ๋ฌด ์๊ฐ
- ๋์ ์์, ๋น๊ต์ ์์ ์
- ๋์ ๊ธ์ฌ
๊ฐ๋ฐ์ ์ ์ฑ ์ฒดํฌ๋ฆฌ์คํธ
- ๋ฐฉํ์ถ ๊ฒ์์ฒ๋ผ ์ ํด์ง ๋ฌธ์ ๋ฅผ ๋๊ณ ํ์ด ๋ด๋ ๊ฒ์ ์ฑ์ทจ๊ฐ
- ๋ฌธ์ ๋ฅผ ํ ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์๋ํ๊ณ ์ด ๊ณผ์ ์ ์ฆ๊น
- ์์ ๊ณผ ๊ฐ์ ํ๋์ ์ธ ์ผ๋ณด๋ค๋ ์ฌ๋ฌด์ค์์ ํ๋ฃจ ์ข ์ผ ์์ ์ผํ๋ ๊ฒ ์ข์
- ํ์ ๋ณด๋ค๋ ํผ์ ์ผํ๋ ๊ฒ ํธํ์ง๋ง ์ปค๋ฎค๋์ผ์ด์ ์ด ์ด๋ ต์ง ์์
- ๋ชจ๋ฅด๋ ๊ฒ์ ๊ณต๋ถํ๊ฑฐ๋ ์๊ธฐ๊ณ๋ฐํ๋ ๊ฒ์ ์ฆ๊น
- ํ๋์ ์ผ์ด ํ๋ฆฌ์ง ์์ผ๋ฉด ํด๊ฒฐํ ๋๊น์ง ๋งค๋ฌ๋ฆฌ๋ ํธ
- ๋๊ตฐ๊ฐ๋ฅผ ์ค๋ํด์ผํ ๋ ๊ฒฝํ์ด๋ ๊ฐ์ ์ผ๋ก ์ค๋ํ๋ ๊ฒ ์๋๋ผ ์ ํํ ์๋ฃ๋ฅผ ์ค๋นํด ๋งํ๋ ํธ์ด๋ค
- ๋ด ์์ผ๋ก ๋ฌด์ธ๊ฐ ๋ง๋ค์ด ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด ๋ด๋ ๊ฒ์์ ์ฑ์ทจ๊ฐ์ ๋๋
- ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฑฐ๋ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ดค์ ๋, ๊ทผ์์ ์ฐพ์๊ฐ ์์ธ์ ๋ถ์ํ๋ ๊ฒ์ ์ข์ํจ
Q&A
- ํ๋ฆฌ๋์ ์ ํ์ ๋ณดํต 1~2๋
์ ์๊ณ 5๋
์ฐจ๋ถํฐ ๋ง์
์ ์ฒ ๋ง์์ฉ ๊ฐ์ ธ๊ฐ์ง๋ง, ๊ฐ์ ์ด ์๋ ๊ฒฝ์ฐ ๊ณ ์ฉ๋ถ์์ ๋๋ฌธ์ ๋๋ถ๋ถ ์ ๊ท์ง์ ์ ํธ
ํ์ฌ๋ง๋ค ํน์ ๊ธฐ๋ฅ ํ๋ฆฌ๋์๋ค์ด ์กด์ฌํ ์ ์์ - ๊ฐ๋ฅํ๋ฉด ํํ๋ก์ ํธ๋ณด๋ค ๊ฐ์ธํ๋ก์ ํธ๊ฐ ๋ณด๊ธฐ์ ์ข์
- ๋น์ฐํ์ง๋ง ์บ ํ ๋๋๋ ๊ณต๋ถ ๊ณ์ ํด์ผ ํจ
- ์ ํํ ๊ฑฐ ์๊ฐํ๊ณ ์ฒ์์ ์ด๋ ํ์ฌ๋ ๋ค์ด๊ฐ๊ณ 3~5๋
์ฐจ์ ์นด์นด์ค๋ฑ
ํฌ ๊ฐ์ ๋ฐ ๊ฒฝ๋ ฅ์ง์ผ๋ก ์ ํ ๊ฐ๋ฅ
๐ญ Retrospect
์์ฑ์ค์ด๋ค. ๋ชฉํ๋ฅผ ๋ชฉ๋ก์์ผ๋ก ๋์ดํ๋ ์ฐ์ ์์๋ ์์ผ๋ณ ๊ตฌ๋ถ์ด ํ๋ค์ด์, ํ ํ์์ผ๋ก ๋๋์ด๋ณด์๋ค.
์ค๊ฐ์ ๋ชธ์ด ์ข ์ ์ข์๋ค.
โ