๐ 24๋ 5์ 6์ผ ~ 5์ 12์ผ |
|||||
์์์ผ |
ํ์์ผ |
์์์ผ | ๋ชฉ์์ผ | ๊ธ์์ผ ๋ฐ ์ฃผ๋ง | |
์ฌํ ๊ฐ์ ์๊ฐ | โ Shared Preference โ Room โ ์ฌ์ฉ์์์น โ ๊ตฌ๊ธ์ง๋์ฑ โ Retrofit โ ๊ฐ๋ฐํ๋ก์ธ์ค โ ๋๋ฒ๊น |
โก ๋ฏธ์ธ๋จผ์ง์ฑ | โก ๋ฏธ์ธ๋จผ์ง์ฑ | ||
๊ฐ์ธ ๊ณผ์ | โ ๊ฐ์ธ ๊ณผ์ ์์ | โ ๊ฐ์ธ ๊ณผ์ ๊ตฌํ | โ ๊ฐ์ธ ๊ณผ์ ์ ์ถ โก ๊ฐ์ธ ๊ณผ์ ์๋ฃ |
||
Fragment ์ดํด - ๋ฐ์ดํฐ ์ ๋ฌ - ํ๋ฉด ์ด๋ |
โก ํ๋ฉด ์ด๋ | โก ๋ฐ์ดํฐ ์ ๋ฌ | |||
์๊ณ ๋ฆฌ์ฆ | โ ์๊ณ ๋ฆฌ์ฆ | ||||
์๋ จ ์ฃผ์ฐจ ํํ๋ก์ ํธ ์ฝ๋ ๋ถ์ | โก ์ฝ๋ ๋ถ์ | ||||
์คํ ๋ค๋๋ฐ | ํ์ฃผ โ ๋ฒ ์ด์ง ์ด๋ |
||||
๋ฒ ์ด์ง๋ฐ ๊ฐ์ ๋ค์ด๋ณด๊ธฐ |
|||||
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
[Android ๊ธฐ์ด] 17. ์ฌ์ฉ์ ์์น ์ป๊ธฐ
์์น ์ธ์ ์ฑ ๋น๋ | Sensors and location | Android Developers์์น ์ธ์ ์ฑ ๋น๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ์ ํ ๊ธฐ๋ฅ ์ค ํ๋๋ ์์น ์ธ์ ๊ธฐ๋ฅ์ ๋๋ค. ๋ชจ๋ฐ์ผ ์ฌ์ฉ์๋ ์ด๋์๋ ๊ธฐ๊ธฐ๋ฅผ ํด๋ํ๊ธฐ
limheejin.tistory.com
- ๊ฐ์ ์๊ฐ์ ๋ค ํ์ผ๋, ๋ธ๋ก๊ทธ์ ๋ด์ฉ ์ ๋ฆฌ๋ ๋ ํ๋ค. ๊ณผ์ ๋ฅผ ๋ค ์ํํ ๋ค์ ์ถ๊ฐ ๋ด์ฉ์ ์ ๋ฆฌํ ์๊ฐ์ด๋ค.
2. Joyce ์๋๋ก์ด๋ ์์ ๋ ํ ๋ฐ ํ๋ก์ ํธ ์ค์ต
1~4. ์ด์ ์ ๊ณต๋ถํ๋ ๋ด์ฉ : ์ด์ TIL์ ์ ๋ฆฌ
[Android TIL] 240415 (Joyce ์์ ๊ณต๋ถ, ์คํ ๋ค๋๋ฐ 4์ฃผ์ฐจ ๊ณผ์ UI ๊ตฌํ, ๋ฒ ์ด์ง ๋ฐ ์คํ ๋ค๋๋ฐ 3ยท4์ฃผ์ฐจ
๐ฑ Today I Learned (์ง์ค์๊ฐ : 9์๊ฐ 5๋ถ) (09:25 ~ 11:00 / 1์๊ฐ 30๋ถ) ๋ฐ์ผ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ํ์ด ๋ฐ ํ ์คํฌ๋ผ (11:00 ~ 12:10 / 1์๊ฐ 10๋ถ) ๋ฒ ์ด์ง๋ฐ ๊ฐ์ 3์ฃผ์ฐจ, 4์ฃผ์ฐจ ์๊ฐ (12:10 ~ 13:00 / 50๋ถ) ์คํ ๋ค๋๋ฐ ๊ฐ์ 3
limheejin.tistory.com
5. ํ๋ฉด ๊ตฌ์ฑํ๊ธฐ : ๋ทฐ(์์ ฏ)
- ๋ค ์๋ ๋ด์ฉ์ด๋ผ ๋ค์ ํ๋ ์ฐจ์์์ ์ฝ์๋ค.
- DPI(Dot per Inch) = 1์ธ์น ๋น ๋ค์ด๊ฐ๋ ํฝ์ ๊ฐ์. DPI๊ฐ ๋์ ์๋ก ํด์๋๊ฐ ๋์
- ํจ๋ฉ(Padding) : ๋ด์ฉ(์ฝํ
์ธ )๊ณผ ์ธ๊ณฝ ์ฌ์ด์ ์ฌ๋ฐฑ
๋ง์ง(margin) : ๋ทฐ์ ๋ทฐ ์ฌ์ด์ ์ฌ๋ฐฑ - scaleType : fitCenter, fitXY, center, centerCrop
- edittext์ ์ธํํ์ ์ textPassword๋ก ํ๊ธฐํ๋ฉด ๊ฐ๋ฆผ ํ๊ธฐ
6. ํ๋ฉด ๊ตฌ์ฑํ๊ธฐ : ๋ทฐ(๋ทฐ ๊ทธ๋ฃน)
- ์ญ์ ๋ค ์๋ ๋ด์ฉ์ด์๋ค.
- Linear layout: orientation ์ค์ , ๋ ๋ฆฝ์ ์ผ๋ก ์์น ์ง์ (layout_gravity), ๋น์ค ์ง์ (layout_weight, weightsum)
- Relative layout: ๋ถ๋ชจ ๋ ์ด์์ ํน์ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ ์์น ์ง์
- Constraint layout: 0dp๋ก ์ค์ ํ๋ ๊ฒ = match_constraint (์ ์ฝ์ ๋ทฐ ํฌ๊ธฐ๋ฅผ ๋ง์ถ๋ ๊ฒ)
๋ฐ์ํ UI๋ฅผ ๋ง๋ค๊ธฐ ์ํด Guideline์ ์ ์ฉํ๊ฒ ์ฌ์ฉ
7. ์คํฑ์์น ํ๋ก์ ํธ
'Thread'๋ฅผ ๋ณต์ตํ๊ธฐ ์ํ ๊ฐ๋จํ ์คํฑ์์น ํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ค.
[Android] ๊ฐ๋จํ ์คํฑ์์น ์ฑ ๋ง๋ค๊ธฐ : ์ฐ๋ ๋
์ฐ๋ ๋๋ฅผ ๋ณต์ตํ๊ธฐ ์ํ ๊ฐ๋จํ ์คํฑ์์น ํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ค. (Joyce ์์ ์์)๋ฉ์ธ ์ค๋ ๋- ์ฑ์ด ์ฒ์ ์์๋ ๋ ์์ฑ๋๋ ์ค๋ ๋- ์กํฐ๋นํฐ์ ๋ชจ๋ ์๋ช ์ฃผ๊ธฐ ๊ด๋ จ ์ฝ๋ฐฑ ์คํ์ ๋ด๋น- ๋ฒํผ,
limheejin.tistory.com
8. ๋ฎค์ง ํ๋ ์ด์ด ํ๋ก์ ํธ
๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฑ์ด ๋์ํ๊ธฐ ์ํ 'Service'๋ฅผ ์ดํดํ๊ธฐ ์ํด ๊ฐ๋จํ ๋ฎค์ง ํ๋ ์ด์ด๋ฅผ ์ ์ํ๋ค.
๋ํ ์ค๋์ค ์ฌ์์ ์ํด MediaPlayer API๋ฅผ ์ด์ฉํ๋ค.
[Android] ๊ฐ๋จํ ๋ฎค์ง ํ๋ ์ด์ด ์ฑ ๋ง๋ค๊ธฐ : Service, MediaPlayer API
์ด๋ฒ์ Service๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋ฎค์ง ํ๋ ์ด์ด ์ฑ์ ๋ง๋ค์ด ๋ณด์๋ค. ์ญ์ Joyce๋์ ์์ ์ ์ฐธ๊ณ ํ์๋ค. ๐ก ์์ ์ฌ์ ๋ฐฉ๋ฒ(1) Raw ๋ฆฌ์์ค๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ (res/raw ํด๋์ ์์ ํ์ผ์ ์ง์ ์ฝ์ )va
limheejin.tistory.com
9. QR ์ฝ๋ ๋ฆฌ๋๊ธฐ ํ๋ก์ ํธ
์๋๋ก์ด๋ JetPack ์ค CameraX ๋ผ์ด๋ธ๋ฌ๋ฆฌ์, ๊ตฌ๊ธ ML ํคํธ๋ฅผ ์ฌ์ฉํด๋ณด๊ธฐ ์ํด QR์ฝ๋ ๋ฆฌ๋๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ณด์๋ค.
[Android] ๊ฐ๋จํ QR ์ฝ๋ ๋ฆฌ๋๊ธฐ ๋ง๋ค๊ธฐ : JetPack, CameraX, Google ML kit
์๋๋ก์ด๋ JetPack ์ค CameraX ๋ผ์ด๋ธ๋ฌ๋ฆฌ์, ๊ตฌ๊ธ ML ํคํธ๋ฅผ ์ฌ์ฉํด๋ณด๊ธฐ ์ํด QR์ฝ๋ ๋ฆฌ๋๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ณด์๋ค. ์ญ์ Joyce๋์ ์์ ์ ์ฐธ๊ณ ํ์๋ค. ๐ก Android Jetpack Android Jetpack ๊ฐ๋ฐ์ ๋ฆฌ์์ค - A
limheejin.tistory.com
์ด์ Room๊ณผ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ์ด์ฉํ Todolist ํ๋ก์ ํธ,
Retrofit, JSON, Google Map API, Firebase๋ฅผ ์ด์ฉํ ๋ฏธ์ธ๋จผ์ง ํ๋ก์ ํธ๊น์ง ํ๋ฉด ์์ ๋
ํ์ด ๋๋๋ค.
3. ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ (์์ ์ํธ)
[Kotlin] ์์ ์ํธ (ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ)
๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12926 ์ ๊ทผ ์์คํค ์ฝ๋๋ฅผ ์ด์ฉํด์ ํ๋ฉด ๋์ง ์์๊น? ์๊ฐํ๋ฉฐ ์๋์ ๊ฐ์ด ๊ตฌ์ํ๋ค.๋์ถฉ ๊ตฌ์ํ ์ฝ๋ class Solution { fun solution(s: String, n:
limheejin.tistory.com
- ์์ ์ํธ์์ ์ค์ํ ๊ฒ์ ๋ด๊ฐ ์ฒ์ ๊ตฌ์ํ๋ ๊ฒ์ฒ๋ผ ๋จ์ํ ์์คํค ์ฝ๋๊ฐ์์ n๊ฐ(๊ฑฐ๋ฆฌ)๋ฅผ ๋ํ์ง ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ฒ ๊ตฌ์ฑํ๋ฉด ์ํ๋ฒณ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ ์ด์ํ ๊ฐ์ด ์ถ๋ ฅ๋ ๊ฒฝ์ฐ์ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ฐ๋ผ์ 26('Z' - 'A' + 1 ๊ฐ)์ ์ด์ฉํด์ ์ํ๋ฒณ์ ๋ฒ์ด๋ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ด ์ค์ํ๋ค.
4. ์นด์นด์ค ์ด๋ฏธ์ง ๊ฒ์ API ์ด์ฉ ๊ณผ์ ๊ตฌํ
(1) Bottom navigation ์ถ๊ฐ
https://velog.io/@dabin/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9CButton-Navigation
[์๋๋ก์ด๋]Bottom Navigation
BottomNavigation ๋ํ๋จผํธ(https://developer.android.com/reference/android/support/design/widget/BottomNavigationView- ์๋๋ก์ด๋ ์ปดํ์ผ ๋ฒ์ 26.1.0 ๋ถํฐ ์ถ๊ฐ๋์๊ณ , c
velog.io
<android.support.design.widget.BottomNavigationView // ์๋ํ์ง ์์
<com.google.android.material.bottomnavigation.BottomNavigationView // ์ผ๋ก ๊ต์ฒด
- ์ฐธ๊ณ ๋ก ๊ฐ์ด๋์์ xmlํ์ผ์ ๋ผ๊ณ ์์ฑํ๋ผ๋๋ฐ, ์ค์ ๋ก ๋นจ๊ฐ์์ด ๋ ์ ์์ ๊ฐ์ด ์์ ํด์ค์ผ ์๋ํ๋ค.
package com.limheejin.kakaoimagesearch
..
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
replaceFragment(ImageSearchFragment())
setupBottomNavigation()
}
private fun setupBottomNavigation() {
binding.bottomNavigation.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.action_search -> {
replaceFragment(ImageSearchFragment())
return@setOnItemSelectedListener true
}
R.id.action_storage -> {
replaceFragment(MyStorageFragment())
return@setOnItemSelectedListener true
}
else -> return@setOnItemSelectedListener false
}
}
}
private fun replaceFragment(fragment: Fragment) {
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.replace(binding.fragmentContainerView.id, fragment)
fragmentTransaction.commit()
}
}
- ๋ทฐํ์ด์ ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์ผ๋จ ๋ค๋น๊ฒ์ด์ ์ ํด๋ฆญํ์ ๋ Fragment์ ์ด๋์ ๊ตฌํํ๋ค.
(2) ๋ทฐํ์ด์ 2
https://todaycode.tistory.com/26
์ฝํ๋ฆฐ viewPager2 : ์ฌ์ฉ๋ฒ, ์ ๋๋ฉ์ด์ ๋ฑ
1. viewPager2 1-1. viewPager๋? 1-2. viewPager์ ํ์ฉ 2. ์ฌ์ฉ ๋ฐฉ๋ฒ 2-1. ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ 2-2. ์ ๋๋ฉ์ด์ ์ค์ 2-3. ์ฌ๋ฐฑ ์ค์ 1. viewPager2 1-1. viewPager๋? ํ์ด์ง๋ฅผ ๋๊ธฐ๋ฏ์ด ์ด๋ ๊ฒ ์-์- ๋๊ธฐ๋ ๊ฒ์ viewPager(๋ทฐ ํ
todaycode.tistory.com
(3) ์นด์นด์ค ์ด๋ฏธ์ง ๊ฒ์ API + Retrofit
https://hanyeop.tistory.com/225
[Android] ์นด์นด์ค ์ด๋ฏธ์ง ๊ฒ์ API ์ฌ์ฉํ๊ธฐ (+Retrofit)
https://developers.kakao.com/ Kakao Developers ์นด์นด์ค API๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํด๋ณด์ธ์. ์นด์นด์ค ๋ก๊ทธ์ธ, ๋ฉ์์ง ๋ณด๋ด๊ธฐ, ์น๊ตฌ API, ์ธ๊ณต์ง๋ฅ API ๋ฑ์ ์ ๊ณตํฉ๋๋ค. developers.kakao.com ์นด์นด์ค
hanyeop.tistory.com
(4) Edittext ๊ฒ์์ฐฝ
[Android] EditText ๊ฒ์์ฐฝ์ผ๋ก ์ฌ์ฉํ๊ธฐ (+ Enter Key Event ์ ์ด)
์๋๋ก์ด๋์ EditText๋ฅผ ๊ฒ์์ฐฝ์ฒ๋ผ 1. ์ ๋ ฅ์ด ํ์ค๋ง ๊ฐ๋ฅํ๋๋ก 2. ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ํค๋ณด๋๊ฐ ๋ด๋ ค๊ฐ๋๋ก 3. ํค๋ณด๋ ์ํฐ์ชฝ์ "Enter"๋ผ๋ ๊ธ์๊ฐ ์๋ ๋๋ณด๊ธฐ ์์ด์ฝ์ด ๋์ค๊ฒ ํ๋๋ก ํ๊ธฐ ์ํ ๋ฐฉ
sovovy.tistory.com
์์ง ๊ตฌํ์ค์ด๋ผ, ๋ค์์ฃผ ์ค์ ํด๋น ๋ด์ฉ์ ์์ ํ๊ฒ ๋ค.
5. ๊ธฐํ ๋ด์ฉ ์ ๋ฆฌ
์ต์ข ํ๋ก์ ํธ์ ๋ํ ๊ธฐ์ ์คํ์ ์๊ฐํ๋ฉด์, ํ์๋ถ๊ณผ ๋ํํ ๋ช๋ช ๋ด์ฉ๋ค์ ๋ํด ์ ๋ฆฌํด๋ณด์๋ค.
1. Firebase Realtime Database VS Firestore
[Firebase]๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๊ต(Realtime vs Cloud Firestore)
๋ฆฌ์ผํ์์ด๋ ํ์ด์ด์คํ ์ด์ค์ ๋ญ์ฐ๋ฉด ์ข์๊น๋๋ฆฌ์ก์ ?
velog.io
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ: Cloud Firestore ๋๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค | Firebase
5์ 14์ผ, Google I/O์์ Firebase๋ฅผ ๋ค์ ๋ง๋๋ณด์ธ์. ์ง๊ธ ๋ฑ๋กํ๊ธฐ ์๊ฒฌ ๋ณด๋ด๊ธฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ: Cloud Firestore ๋๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปฌ๋ ์ ์ ์ฌ์ฉํด ์ ๋ฆฌํ๊ธฐ ๋ด ํ๊ฒฝ์ค์ ์ ๊ธฐ์ค์ผ๋ก ์ฝํ
firebase.google.com
- ์ผ๋ฐ์ ์ผ๋ก ์ต๊ทผ์ firestore๊ฐ realtime database๋ฅผ ๋๋ถ๋ถ ๋์ฒดํ์๊ณ , ํนํ ์ผ์ผ์ ๋ฐ์ดํธ๊ฐ ์ ๊ณ read ์์ฃผ๋ก ๋์ํ๋ค๋ฉด ๋๋์ฑ firestore๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
2. Clean Architecture

[Android] ์์ฆ ํซํ Clean Architecture ์ ์ฐ๋ ๊ฑฐ์ผ? : NHN Cloud Meetup
[Android] ์์ฆ ํซํ Clean Architecture ์ ์ฐ๋ ๊ฑฐ์ผ?
meetup.nhncloud.com
๋ง์ผํฐ๋ ์ฝ๊ฒ ์ดํดํ๋ โํด๋ฆฐ ์ํคํ ์ฒโ | ์์ฆIT
์๋ผ๋ฏธ๋ ์ ์ ๋ค์ ๋ค์ํ ๋์ฆ๋ฅผ ์ถฉ์กฑํ ์ ์๋๋ก ์๋ ์๋ฆฌ๋ฅผ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ์ปค์คํ ํ ์ ์๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ ๋ ์ต๊ทผ ์๋๋ก์ด๋ ์๋ผ๋ฏธ ์ฑ์ ์ธํ๋ฃจ์ธ์ ๋ฒจ์๋ฆฌ ๊ธฐ๋ฅ์
yozm.wishket.com
Architecture & Clean Architecture - part.2
์ํคํ ์ฒ์ ํด๋ฆฐ ์ํคํ ์ฒ 2
velog.io
- ํ์๋ถ์ด ์ํคํ ์ฒ ์ค ํ์ ์์ ์ ๋ง ๋ง์ด ์ฐ์ธ๋ค๋ ํด๋ฆฐ ์ํคํ ์ฒ์ ๋ํด ์์ธํ ์ค๋ช ํด์ฃผ์ จ๋ค.
- ํด๋ฆฐ์ํคํ
์ฒ์ ํต์ฌ์ ์์กด์ฑ ๋ฐฉํฅ์ ์๋ค. ์์ชฝ์ ์์ ๋ฐ๊นฅ์ชฝ์ ์ ๋ณด๋ฅผ ์๊ฑฐ๋ ์ ๊ทผํ๋ฉด ์ ๋๋ค.
๋ฐ๊นฅ์ ์๋ ์์ผ์๋ก ์ฝ๊ฒ ๋ณํ๋ ๊ฒ๋ค์ด๋ค.
๊ตฌ์กฐ๋ ํฌ๊ฒ ๋๋ฉ์ธ ๋ ์ด์ด(์ํฐํฐ, ์ ์ฆ์ผ์ด์ค), ์ด๋ํฐ ๋ ์ด์ด, ์ธํ๋ผ์คํธ๋ญ์ฒ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋๋ค. - MVVM์ ์ด์ ๋ง ๋ฐฐ์ฐ๊ณ ์๋ ๋จ๊ณ์ง๋ง, ํด๋ฆฐ ์ํคํ ์ฒ์ ์ฌ์ฉ ์ด์ ์ ๋ํด์ ์ดํด๊ฐ ์ ๋๋ค.
3. Gson VS Moshi
[Android] Gson์ ๋์ฒดํ๋ Moshi
์ฃผ์! ๋ณธ ํฌ์คํ ์ ChatGPT๋ฅผ ํตํด ๋ง๋ค์์ต๋๋ค Caution! This Posting was made with ChatGPT Moshi๋? Moshi๋ Square์์ ๊ฐ๋ฐํ JSON ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Gson๊ณผ ์ ์ฌํ์ง๋ง, ์ฑ๋ฅ์ด ๋ ๋น ๋ฅด๊ณ ์ฝํ๋ฆฐ๊ณผ์ ํธ
ohdbjj.tistory.com
Moshi, Moshi~ ์ง๋ ฌํ๋ฅผ ์ํ์ ๋ค๊ตฌ์?
JSON ์ง๋ ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ธ Moshi๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ์ฅโ๋จ์ ์ด ์๋์ง, GSON๊ณผ๋ ์ด๋ค ์ฐจ์ด์ ์ด ์๋์ง์ ๋ํด ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
blog.imqa.io
- ์ฌํ ๊ฐ์์์๋ Json ๋ฐ์ดํฐ์ ์๋ฐ ๊ฐ์ฒด ๊ฐ์ ์ง๋ ฌํ/์ญ์ง๋ ฌํ๋ฅผ ์ํด Gson์ ์ฌ์ฉํ์๋ค.
- ๊ทธ๋ฐ๋ฐ ์ด Gson๋ ์ฌ์ค์ ์๋ ๊ธฐ์ ์ด๊ณ , ์ต๊ทผ์ Moshi๋ก ์ ํํ๋ ์ถ์ธ๋ผ๊ณ ํ๋ค.
์๋ง Moshi๋ฅผ ๋ฐ๋ก ๋ฐฐ์์ ์ฌ์ฉํด์ผ ํ ๊ฒ ๊ฐ๋ค.
๐ญ Retrospect
์ ๋ฒ์ฃผ/์ด๋ฒ์ฃผ๋ ํด์ธ ์ฌํ๋ ๋ค๋ ์ค๊ณ , ํด์ผ๋ ๋ง๊ณ , ๊ทธ ์์ค์ ๋ชธ๊น์ง ๋ง์ฝ์ด๋ผ ๋ณ๊ฐ๊น์ง ๋ด์ ์บ ํ ์์ ์ด๋๋ก ์ถ๊ฒฐ๋ ์ ์ผ ์๋ง์ด๋ฉฐ ์๊ฐ๋ ๋งค์ฐ ๋ถ์กฑํ๋ ์ฃผ๋ค. ๊ทธ ๋ถ์กฑํ ์๊ฐ์ ๋งํํ๊ธฐ ์ํด ๊ธ์์ผ๋ถํฐ ์ฃผ๋ง์ ๋ค ๊ณต๋ถ์ ํฌ์ํ๊ณ ์๋ค.
์ฌ์ ๋กญ๊ฒ ๊ฐ์ธ ๊ณต๋ถ ์๊ฐ์ด ์ฃผ์ด์ง๋ค๋ฉด ๊ธ๋ฐฉ ๋ฐ๋ผ์ก์ ์ ์์ ๊ฒ ๊ฐ๊ธดํ๋ฐ, ๋ถํธ์บ ํ๋ผ๋ ๊ฒ ์์ฒด๊ฐ ์ง๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ณ ํํ๋ก์ ํธ ์ฃผ๊ฐ์ด ๊ณ์ ๋์์์ (์ ์ฃผ๊น์ง๋ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ, ๋ทฐ๋ฐ์ธ๋ฉ, ๋ค์ด์ผ๋ก๊ทธ์ ๊ฐ์ ๊ฒ๋ค์ ๋ฐฐ์ฐ๋ค๊ฐ ๊ทธ ๋ค์์ฃผ๋ถํฐ๋ Retrofit, MVVM, ๋ฐ์ดํฐ๋ฒ ์ด์ค(Room ๋ฑ), API ๋ฑ์ ์ด์ฉ) 1์ฃผ์ผ์ ๋์น๋ฉด ๋ค๋ฅธ ์๊ฐ์ ์์ค๊น์ง ๋ฐ๋ผ๊ฐ๊ธฐ๊ฐ ์๋นํ ๋ฒ ์ฐจ๋ค. ๋ฐ๋ผ์ ๋ฏธ๋์ ์ด ๊ธ์ ๋ณผ ์บ ํ์๊ฐ์๊ฐ ์๋ค๋ฉด ์ต๋ํ ํ๋ฃจ 12์๊ฐ์ ์จ์ ํ ์ฝ๋ฉ ๊ณต๋ถ์ ํฌ์ํ๊ณ ์ถ๊ฒฐ ๊ด๋ฆฌ ์ํด์ ๋์ฒ๋ผ ๊ณ ์ํ์ง ์๊ธธ ๋ฐ๋๋ค.
๋ฒ ์ด์ง๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ ๊ฒ์ ์ต์ข ํ๋ก์ ํธ๊ฐ ์งํ๋๊ธฐ ์ ๋จ์ 2์ฃผ๋์์ ์ ๋ง ๊ทธ๋์ ๋ชป ๋ฐ๋ผ๊ฐ๋ ๋ด์ฉ์ ์์ธํ ํํค์น๊ณ ์๋ฒฝํ๊ฒ ๋ง์คํฐํ๊ณ ์ถ์ด์๋ค. ๋น๋ถ๊ฐ UI๋ ๋ค๋ฅธ ๋ชฉํ์ ๋ํ ์ ๊ฒฝ์ ์ข ๋๊ณ , ์ ๋ง ์ฝ๋ ๊ตฌํ์๋ง 2์ฃผ๋ฅผ ์์๋ถ์ ๊ฒ์ด๋ค. ์ต์ข ํ๋ก์ ํธ๋ ์ ๋ง ์๋ฒฝํ๊ฒ ์งํํด๋ณด๊ณ ์ถ๋ค. ๋น์ฐํ ์๋ฆฌ์ง๋ง, ์กฐ๊ธ์ด๋ผ๋ ์ด๋ ต๊ฒ ๋๊ปด์ง๋ค๋ฉด ๋จ๋ค๋ณด๋ค ๋ฐฐ๋ ์ด์ฌํ ํด์ผํ๋ค.
โ