2024_11_06_meeting_minute - boostcampwm-2024/and04-Nature-Album GitHub Wiki
์ผ์: 2024-11-06
์ฐธ์์: ์ ์ ์ง, ์ํ์ค, ๋ ธ์งํ, ๊น๋์ค, ๊น์ ํธ
๐ก ์งํ ์ฌํญ
1๏ธโฃ [PR] Room Database ์ถ๊ฐ ๋ฐ Hilt ์ ์ฉย #83
- RoomDB+Hilt ๊ด๋ จ PR ์ฝ๋ ๋ฆฌ๋ทฐ
- ๊ฒํ ํ dev์ Merge
-
๋ฏธ์ฌ์ฉ ํด๋์ค (User, UserDao) ์ ๊ฑฐ
-
ํ์์๋ Flow ์ ๊ฑฐ
-
์๊พธ ๋ฑ์ฅํ๋
it
์ ๊ฑฐ (also๋ฅผ ์ ๊ฑฐํ๊ธฐ)-
synchronized ํ์ฉ โ ํ์ง๋ง ์ฌ๋ฌ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์์
- ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์?
- ํ์ฌ
synchronized(this)
๋ก companion object ์ ๊ทธ๊ณ ์๋ ์ํฉ. ํด๋์ค์ ๋ค๋ฅธ ๋ถ๋ถ์์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๋๊ธฐํ ๋์์ผ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋๋ฝ ๋ฐ์ ๊ฐ๋ฅ
- ํ์ฌ
companion object { @Volatile private var INSTANCE: WordRoomDatabase? = null fun getDatabase(context: Context): WordRoomDatabase { return INSTANCE ?: synchronized(this) { val instance = Room.databaseBuilder( context.applicationContext, WordRoomDatabase::class.java, "word_database" ).build() INSTANCE = instance // return instance instance } } }
์ฐธ๊ณ ๋งํฌ
[Double-checked Locking Pattern (DCLP) ์ ์ฐ์ง ๋ง์์ผ ํ๋ ์ด์ ](https://herdin.github.io/2020/12/25/about-double-check-locking)
- ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์?
-
Holder ํ์ฉ
class Singleton private constructor() { // Singleton ์ธ์คํด์ค companion object { // Lazy ์ด๊ธฐํ๋ฅผ ์ํ ๋ด๋ถ ํด๋์ค private class Holder { companion object { val INSTANCE = Singleton() } } // ์ธ์คํด์ค์ ์ ๊ทผํ๋ ํจ์ val instance: Singleton get() = Holder.INSTANCE } }
-
-
2๏ธโฃ Hilt ์ฌ์ฉ ์๋ด
DataRepository์์ labelDao์ ๋ฐํํ์ ์ ํ์ธํ์ฌ ์์์ ์ฃผ์ ํด์ค
๊ทธ๋์ RoomModule์ ํด๋น๋๋ provider๊ฐ ์์์ ์ฃผ์ ํด์ฃผ๊ณ ์๋ ๊ฒ.
๋ค๋ฅธ Injection์ Module์ ์ถ๊ฐํ์ฌ ๊ด๋ฆฌ
ViewModel์์ @Inject ๋ฅผ ์์ฑํ๋ฉด Repository๋ฅผ ๊ฐ์ ธ์์ ์ฃผ์ ํด์ค.
Repository๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ Module์ ๋ฃ์ด์ ๊ด๋ฆฌ
3๏ธโฃย ContentDescription์๋ ๋ฌด์์ ์ ์๊น?
โ ์ถํ ๋ ผ์ ํ์
4๏ธโฃ Label์ ์ ์ฅ๋ #์๋ String์ ์ด๋ป๊ฒ Color๋ก?
- ์ ์ง
ackage com.and04.naturealbum.utils
import androidx.compose.ui.graphics.Color
fun String.toColor(): Color {
val colorInt = android.graphics.Color.parseColor("#$this")
return Color(colorInt)
}
- ์งํ
fun String.toColor() = Color(this.toLong(16))
- ๋์ค
// color์ # ํฌํจ
Color(parseColor(color))
โ ์ถํ ํต์ผ ํ์
๐กย ๋ด์ผ ํด์ผํ ๊ฒ
- ๊ฐ์ ๊ฐ๋ฐํ ๊ฒ๋ค ๋ฌธ์ ์ ๋ฆฌ ๋ฐ wiki ์ ๋ก๋
- ์ค๋(11/6) PR ๋ณด๋ธ ๊ฒ๋ค ๊ฒํ ํ๊ณ dev์ merge
- ์ ์ฒด์ ์ธ ๊ฐ๋ฐ ๋ฌธ์ ์ ๋ฆฌ
- GitHub Project ์ ๋ฆฌ(๊ฐ๋ฐ ๋๋ ์ด์๋ค ๋ด๋น์์ ์๊ฐ ์ ๋ ฅํ์ฌ close)
- ๋ฐ๋ชจ ์ค๋นํ๊ธฐ
- ๋ฐ๋ชจ ๊ด๋ จ
- ๋งค์ฃผ ํ๋ก์ ํธ ์งํ์ํฉ์ ๊ณต์ ํ๊ณ ๊ฐ์ ์ ์ํ ํผ๋๋ฐฑ์ ์ทจํฉํ๋ ์๊ฐ์
๋๋ค.
- ํธ๋๋ณ๋ก ์งํํ๋ฉฐ, ํธ๋ ํธ์ฑ์ ๋งค์ฃผ ๋ชฉ์์ผ ์ ๋ ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ํ ๋น ๋ฐํ(15๋ถ)์ ์ง์์๋ต(5๋ถ)์๊ฐ์ ๊ฐ์ต๋๋ค. (์ด 20๋ถ)
- ๋ชฉํ ๊ธฐ๋ฅ๊ณผ ์ค์ ๊ตฌํ ๊ฒฐ๊ณผ ๋ฐ ๊ธฐ์ ์ ๊ฒฝํ์ ๋ํด ๋ฐํํฉ๋๋ค.
- ๋งค์ฃผ 1๋ช ์ด์์ ํ์์ด ๋์๊ฐ๋ฉฐ ๋ฐํํด์ผ ํฉ๋๋ค. (๋ชจ๋๊ฐ ํ ๋ฒ์ฉ์ ๋ฐํํ ์ ์๊ฒ ํด์ฃผ์ธ์. ํ ์ฌ๋์ด ์ฐ์ ๋ฐํํ๋ ๊ฒ์ ์ง์ํฉ๋๋ค.)
- ๋ค์ ๋ฐํ ์์์ธ ํ์์ ๋ฐํ์๊ฐ์ ์ฌ๊ณ 5๋ถ, 10๋ถ๋ง๋ค ์ค ์ฑํ ์ฐฝ์ ์๊ฐ์ ์๋ ค์ค๋๋ค. (ex. 5๋ถ ์ง๋ฌ์ต๋๋ค.)
- ๋์ฑ ์๋ฏธ์๋ ๊ณต์ ๋ฅผ ์ํด ์ ๊ทน์ ์ธย
ํผ๋๋ฐฑ
์ด ํ์ํฉ๋๋ค.- ํ ๋ณ ํผ๋๋ฐฑ์ ์์ฑํ ์ ์๋ ํผ๋๋ฐฑ ๋ ธํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ๋ฐํ์ ๋ํ ๊ฐ๋จํ ์๊ฐ๊ณผ ํจ๊ป ์๋์๋ ๊ฒฉ๋ ค์ ์นญ์ฐฌ์ ํด์ฃผ์ธ์.
- ๋ ์ข์ ํ๋ก์ ํธ๊ฐ ๋ ์ ์๋๋ก ์๋ก์ด ๊ด์ ์์ ํผ๋๋ฐฑ์ ๋จ๊ธธ ์ ์์ต๋๋ค.
- ๋๋ฃ๊ฐ ๋ฐํ ์ด๋ ค์์ ํจ๊ป ํด๊ฒฐํ๊ธฐ ์ํด์ ํน์ ๊ธฐ์ ์ ์ผ๋ก ๋ ๊ณ ๋ฏผํ๋ฉด ์ข์๋งํ ๋ด์ฉ์ ๋ํ ์๊ฒฌ ์ ์๋ ๋์ฑ ์ข์ต๋๋ค!
- ๋งค์ฃผ ํ๋ก์ ํธ ์งํ์ํฉ์ ๊ณต์ ํ๊ณ ๊ฐ์ ์ ์ํ ํผ๋๋ฐฑ์ ์ทจํฉํ๋ ์๊ฐ์
๋๋ค.
- ๋ฐ๋ชจ ๊ด๋ จ
- ๋ฐํ ์๋ฃ ๋ง๋ค๊ธฐ
- ๋ฐํ ์ค๋น ํ๊ธฐ โ ํ์ค
- ๋ฉํ ๋๊ณผ์ ๋ง์๋ ์ ๋ ๋ฉ๋ด ์ ํ๊ธฐ
- ๋ฉํ ๋๊ณผ ์ฆ๊ฑฐ์ด ์ ๋ ๋ณด๋ด๊ธฐ ๐