์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์์ ํด๋์ค ๊ฐ์ ์ข
์์ฑ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ด๋ ๋ฐ ๋งค์ฐ ์ค์ํ๋ค.
๋ณธ ๊ธ์์๋ ์ข
์ ํญ๋ชฉ ๊ด๋ฆฌ์ ๊ฐ๋
๊ณผ DI(Dependency Injection) ํจํด ์ ์ฉ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ , Hilt๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ค.
์ข ์ ํญ๋ชฉ ๊ด๋ฆฌ๋?
์ฑ์ ํด๋์ค๋ค์ ์ํํ ๋์์ ์ํด ๋ค๋ฅธ ํด๋์ค์ ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ค. ์ด๋ฌํ ์ข ์ ํญ๋ชฉ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง ์ ์๋ค. ์ข ์ ํญ๋ชฉ์ ํจ๊ณผ์ ์ผ๋ก ์์งํ๊ณ ๊ด๋ฆฌํ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. ์ข ์ ํญ๋ชฉ ์ฃผ์ (Dependency Injection, DI)
DI๋ ํด๋์ค๊ฐ ์ง์ ์ข ์ ํญ๋ชฉ์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ถ์์ ์ ๊ณต๋ฐ๋ ๋ฐฉ์์ด๋ค. ์ฆ, ํด๋์ค ๋ด๋ถ์์ ์ข ์ ํญ๋ชฉ์ ๊ด๋ฆฌํ์ง ์์ผ๋ฏ๋ก ์ฝ๋์ ์ ์ฐ์ฑ์ด ์ฆ๊ฐํ๊ณ ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค.
์์ ์ฝ๋ (Hilt ์ฌ์ฉ)
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
@Singleton
fun provideRepository(apiService: ApiService): Repository {
return Repository(apiService)
}
}
๐ Hilt๋ฅผ ์ฌ์ฉํ๋ฉด DI๋ฅผ ์๋ํํ์ฌ ์ข ์ ํญ๋ชฉ์ ๋ณด๋ค ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
2. ์๋น์ค ๋ก์ผ์ดํฐ(Service Locator)
์๋น์ค ๋ก์ผ์ดํฐ๋ ํด๋์ค๊ฐ ์ข ์ ํญ๋ชฉ์ ์ง์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ํ์ํ ๊ฐ์ฒด๋ฅผ ๋ ์ง์คํธ๋ฆฌ์์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ด๋ค. DI๋ณด๋ค ๋ ์ ์ฐํ์ง๋ง, ๋น๊ต์ ๊ฐ๋จํ๊ฒ ์ข ์์ฑ์ ๊ด๋ฆฌํ ์ ์๋ค.
์์ ์ฝ๋
object ServiceLocator {
val repository: Repository by lazy { Repository(ApiService()) }
}
๐ ํ์ง๋ง, ์๋น์ค ๋ก์ผ์ดํฐ๋ ์ข ์ ํญ๋ชฉ์ด ์จ๊ฒจ์ง ์ ์์ด ์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ ํ์ํฌ ์ํ์ด ์๋ค.
์๋๋ก์ด๋ ์ฑ์์ DI๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์
1. ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ ํฅ์
DI๋ฅผ ์ ์ฉํ๋ฉด ํด๋์ค ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๊ณ , ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ์ด ์ฌ์์ง๋ค.
2. ํ ์คํธ ์ฉ์ด์ฑ ์ฆ๊ฐ
DI๋ฅผ ์ฌ์ฉํ๋ฉด Mock ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ์ฃผ์ ํ ์ ์์ด ์ ๋ ํ ์คํธ๊ฐ ํธ๋ฆฌํด์ง๋ค.
3. ์ข ์ ํญ๋ชฉ์ ๋ช ํํ ๊ด๋ฆฌ
Hilt์ ๊ฐ์ DI ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ๋ฉด ์ข ์ ํญ๋ชฉ์ด ์ด๋์ ์์ฑ๋๊ณ ์ฌ์ฉ๋๋์ง ํ๋์ ํ์ ํ ์ ์๋ค.
Hilt๋ฅผ ์ฌ์ฉํ DI ์ ์ฉ ๋ฐฉ๋ฒ
1. Hilt ์ค์ ํ๊ธฐ
Gradle ํ์ผ์ Hilt ์์กด์ฑ์ ์ถ๊ฐํ๋ค.
dependencies {
implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"
}
2. Application ํด๋์ค์ Hilt ์ด๊ธฐํ
@HiltAndroidApp
class MyApp : Application()
3. ์ข ์ ํญ๋ชฉ ์ ๊ณต์ ์ํ ๋ชจ๋ ์์ฑ
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
@Singleton
fun provideApiService(): ApiService {
return ApiService()
}
}
๐ ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ์ข ์ ํญ๋ชฉ์ ์ค์์์ ๊ด๋ฆฌํ ์ ์๋ค.
4. ViewModel์์ ์ข ์ ํญ๋ชฉ ์ฌ์ฉ
@HiltViewModel
class MainViewModel @Inject constructor(
private val repository: Repository
) : ViewModel() {
fun fetchData() { repository.getData() }
}
๐ @Inject ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด Hilt๊ฐ ์๋์ผ๋ก ์ข ์ ํญ๋ชฉ์ ์ ๊ณตํ๋ค.
์ผ๋ฐ์ ์ธ ์ข ์ ํญ๋ชฉ ๊ด๋ฆฌ ๊ถ์ฅ์ฌํญ
1. ๋ฐ์ดํฐ๋ฅผ ์ฑ ๊ตฌ์ฑ์์์ ์ ์ฅํ๋ค.
Activity, Fragment, Service ๋ฑ์ ๋ฐ์ดํฐ ์์ค ์ญํ ์ ํด์๋ ์ ๋ฉ๋๋ค. ViewModel๊ณผ Repository๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ๋ถ๋ฆฌํ๋ค.
2. Android ํด๋์ค์ ์ข ์ ํญ๋ชฉ์ ์ต์ํํ๋ค.
Context, Toast ๋ฑ์ Android ํ๋ ์์ํฌ API๋ ํ์ํ ๋๋ง ์ฌ์ฉํ๊ณ , ๋๋จธ์ง ๋ก์ง์ ์ผ๋ฐ Kotlin ํด๋์ค๋ก ๋ถ๋ฆฌํ๋ค.
3. ์ฑ์ ๋ชจ๋ ๊ฐ ์ฑ ์์ ๋ช ํํ๊ฒ ์ ์ํ๋ค.
๋คํธ์ํฌ ์์ฒญ, ๋ฐ์ดํฐ ์บ์ฑ, ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ชจ๋์ ๋ฐฐ์นํ์ฌ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ๋ง๋ ๋ค.
4. ๋ชจ๋์ ๋ด๋ถ ๊ตฌํ์ ์ต์ํ์ผ๋ก ๋ ธ์ถํ๋ค.
๋ชจ๋ ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ๋ฅํ ํ ์ ๊ทผ ์ ์ด์๋ฅผ ์ ํํ๋ค.
5. ๋ฐ๋ณต์ ์ธ ์ฝ๋ ๋์ Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๋ค.
Hilt, Room, LiveData, ViewModel ๋ฑ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทน ํ์ฉํ๋ฉด ์ฝ๋ ํ์ง์ด ํฅ์๋๋ค.
6. ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธํ ์ ์๋๋ก ์ค๊ณํ๋ค.
๋ชจ๋ ๊ฐ์ ์ฑ ์์ด ๋ถ๋ฆฌ๋๋ฉด, ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ๊ฐ ํจ์ฌ ์ฌ์์ง๋ค.
7. ๋คํธ์ํฌ ๋ฐ ๋์ ์คํ ์ ์ฑ ์ ๊ณ ๋ คํ๋ค.
์ฅ๊ธฐ ์คํ ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฒ๋ฆฌํ๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ํ์ฉํ์ฌ ์ฑ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ค.
8. ์คํ๋ผ์ธ ๋ชจ๋์์๋ ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ค.
๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋๊ฒจ๋ ์ฑ์ด ์ํํ๊ฒ ๋์ํ๋๋ก ๋ก์ปฌ ์บ์ฑ ๋ฐ Room์ ์ ๊ทน ํ์ฉํ๋ค.
๊ฒฐ๋ก
- DI๋ฅผ ํ์ฉํ๋ฉด ์ฑ์ ์ข ์ ํญ๋ชฉ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ด ํฅ์๋๋ค.
- Hilt๋ฅผ ์ ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ค.
- ๊ฐ ๋ชจ๋ ๊ฐ์ ์ฑ ์์ ๋ช ํํ ์ ์ํ๋ฉด ํ์ฅ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ์ฆ๊ฐํ๋ค.
'๐ค ์๋๋ก์ด๋ > ์ํคํ ์ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ํคํ ์ฒ ๊ถ์ฅ์ฌํญ (0) | 2025.03.26 |
---|---|
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ข ์ ํญ๋ชฉ ์ฝ์ (DI) (0) | 2025.03.25 |
[์๋๋ก์ด๋] Android 4๋ ์ปดํฌ๋ํธ๋ฅผ ๋งค๋ํ์คํธ ์์ ์ ์ธํ๋ ๋ฐฉ๋ฒ (0) | 2025.03.24 |
[์๋๋ก์ด๋] ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ (0) | 2025.03.23 |
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ฑ ์ํคํ ์ฒ (0) | 2025.03.21 |
์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์์ ํด๋์ค ๊ฐ์ ์ข
์์ฑ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ด๋ ๋ฐ ๋งค์ฐ ์ค์ํ๋ค.
๋ณธ ๊ธ์์๋ ์ข
์ ํญ๋ชฉ ๊ด๋ฆฌ์ ๊ฐ๋
๊ณผ DI(Dependency Injection) ํจํด ์ ์ฉ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ , Hilt๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ค.
์ข ์ ํญ๋ชฉ ๊ด๋ฆฌ๋?
์ฑ์ ํด๋์ค๋ค์ ์ํํ ๋์์ ์ํด ๋ค๋ฅธ ํด๋์ค์ ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ค. ์ด๋ฌํ ์ข ์ ํญ๋ชฉ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง ์ ์๋ค. ์ข ์ ํญ๋ชฉ์ ํจ๊ณผ์ ์ผ๋ก ์์งํ๊ณ ๊ด๋ฆฌํ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. ์ข ์ ํญ๋ชฉ ์ฃผ์ (Dependency Injection, DI)
DI๋ ํด๋์ค๊ฐ ์ง์ ์ข ์ ํญ๋ชฉ์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ถ์์ ์ ๊ณต๋ฐ๋ ๋ฐฉ์์ด๋ค. ์ฆ, ํด๋์ค ๋ด๋ถ์์ ์ข ์ ํญ๋ชฉ์ ๊ด๋ฆฌํ์ง ์์ผ๋ฏ๋ก ์ฝ๋์ ์ ์ฐ์ฑ์ด ์ฆ๊ฐํ๊ณ ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค.
์์ ์ฝ๋ (Hilt ์ฌ์ฉ)
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
@Singleton
fun provideRepository(apiService: ApiService): Repository {
return Repository(apiService)
}
}
๐ Hilt๋ฅผ ์ฌ์ฉํ๋ฉด DI๋ฅผ ์๋ํํ์ฌ ์ข ์ ํญ๋ชฉ์ ๋ณด๋ค ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
2. ์๋น์ค ๋ก์ผ์ดํฐ(Service Locator)
์๋น์ค ๋ก์ผ์ดํฐ๋ ํด๋์ค๊ฐ ์ข ์ ํญ๋ชฉ์ ์ง์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ํ์ํ ๊ฐ์ฒด๋ฅผ ๋ ์ง์คํธ๋ฆฌ์์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ด๋ค. DI๋ณด๋ค ๋ ์ ์ฐํ์ง๋ง, ๋น๊ต์ ๊ฐ๋จํ๊ฒ ์ข ์์ฑ์ ๊ด๋ฆฌํ ์ ์๋ค.
์์ ์ฝ๋
object ServiceLocator {
val repository: Repository by lazy { Repository(ApiService()) }
}
๐ ํ์ง๋ง, ์๋น์ค ๋ก์ผ์ดํฐ๋ ์ข ์ ํญ๋ชฉ์ด ์จ๊ฒจ์ง ์ ์์ด ์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ ํ์ํฌ ์ํ์ด ์๋ค.
์๋๋ก์ด๋ ์ฑ์์ DI๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์
1. ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ ํฅ์
DI๋ฅผ ์ ์ฉํ๋ฉด ํด๋์ค ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๊ณ , ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ์ด ์ฌ์์ง๋ค.
2. ํ ์คํธ ์ฉ์ด์ฑ ์ฆ๊ฐ
DI๋ฅผ ์ฌ์ฉํ๋ฉด Mock ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ์ฃผ์ ํ ์ ์์ด ์ ๋ ํ ์คํธ๊ฐ ํธ๋ฆฌํด์ง๋ค.
3. ์ข ์ ํญ๋ชฉ์ ๋ช ํํ ๊ด๋ฆฌ
Hilt์ ๊ฐ์ DI ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ๋ฉด ์ข ์ ํญ๋ชฉ์ด ์ด๋์ ์์ฑ๋๊ณ ์ฌ์ฉ๋๋์ง ํ๋์ ํ์ ํ ์ ์๋ค.
Hilt๋ฅผ ์ฌ์ฉํ DI ์ ์ฉ ๋ฐฉ๋ฒ
1. Hilt ์ค์ ํ๊ธฐ
Gradle ํ์ผ์ Hilt ์์กด์ฑ์ ์ถ๊ฐํ๋ค.
dependencies {
implementation "com.google.dagger:hilt-android:2.44"
kapt "com.google.dagger:hilt-compiler:2.44"
}
2. Application ํด๋์ค์ Hilt ์ด๊ธฐํ
@HiltAndroidApp
class MyApp : Application()
3. ์ข ์ ํญ๋ชฉ ์ ๊ณต์ ์ํ ๋ชจ๋ ์์ฑ
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
@Singleton
fun provideApiService(): ApiService {
return ApiService()
}
}
๐ ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ์ข ์ ํญ๋ชฉ์ ์ค์์์ ๊ด๋ฆฌํ ์ ์๋ค.
4. ViewModel์์ ์ข ์ ํญ๋ชฉ ์ฌ์ฉ
@HiltViewModel
class MainViewModel @Inject constructor(
private val repository: Repository
) : ViewModel() {
fun fetchData() { repository.getData() }
}
๐ @Inject ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด Hilt๊ฐ ์๋์ผ๋ก ์ข ์ ํญ๋ชฉ์ ์ ๊ณตํ๋ค.
์ผ๋ฐ์ ์ธ ์ข ์ ํญ๋ชฉ ๊ด๋ฆฌ ๊ถ์ฅ์ฌํญ
1. ๋ฐ์ดํฐ๋ฅผ ์ฑ ๊ตฌ์ฑ์์์ ์ ์ฅํ๋ค.
Activity, Fragment, Service ๋ฑ์ ๋ฐ์ดํฐ ์์ค ์ญํ ์ ํด์๋ ์ ๋ฉ๋๋ค. ViewModel๊ณผ Repository๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ๋ถ๋ฆฌํ๋ค.
2. Android ํด๋์ค์ ์ข ์ ํญ๋ชฉ์ ์ต์ํํ๋ค.
Context, Toast ๋ฑ์ Android ํ๋ ์์ํฌ API๋ ํ์ํ ๋๋ง ์ฌ์ฉํ๊ณ , ๋๋จธ์ง ๋ก์ง์ ์ผ๋ฐ Kotlin ํด๋์ค๋ก ๋ถ๋ฆฌํ๋ค.
3. ์ฑ์ ๋ชจ๋ ๊ฐ ์ฑ ์์ ๋ช ํํ๊ฒ ์ ์ํ๋ค.
๋คํธ์ํฌ ์์ฒญ, ๋ฐ์ดํฐ ์บ์ฑ, ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ชจ๋์ ๋ฐฐ์นํ์ฌ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ๋ง๋ ๋ค.
4. ๋ชจ๋์ ๋ด๋ถ ๊ตฌํ์ ์ต์ํ์ผ๋ก ๋ ธ์ถํ๋ค.
๋ชจ๋ ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ๋ฅํ ํ ์ ๊ทผ ์ ์ด์๋ฅผ ์ ํํ๋ค.
5. ๋ฐ๋ณต์ ์ธ ์ฝ๋ ๋์ Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๋ค.
Hilt, Room, LiveData, ViewModel ๋ฑ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทน ํ์ฉํ๋ฉด ์ฝ๋ ํ์ง์ด ํฅ์๋๋ค.
6. ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธํ ์ ์๋๋ก ์ค๊ณํ๋ค.
๋ชจ๋ ๊ฐ์ ์ฑ ์์ด ๋ถ๋ฆฌ๋๋ฉด, ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ๊ฐ ํจ์ฌ ์ฌ์์ง๋ค.
7. ๋คํธ์ํฌ ๋ฐ ๋์ ์คํ ์ ์ฑ ์ ๊ณ ๋ คํ๋ค.
์ฅ๊ธฐ ์คํ ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฒ๋ฆฌํ๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ํ์ฉํ์ฌ ์ฑ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ค.
8. ์คํ๋ผ์ธ ๋ชจ๋์์๋ ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ค.
๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋๊ฒจ๋ ์ฑ์ด ์ํํ๊ฒ ๋์ํ๋๋ก ๋ก์ปฌ ์บ์ฑ ๋ฐ Room์ ์ ๊ทน ํ์ฉํ๋ค.
๊ฒฐ๋ก
- DI๋ฅผ ํ์ฉํ๋ฉด ์ฑ์ ์ข ์ ํญ๋ชฉ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ด ํฅ์๋๋ค.
- Hilt๋ฅผ ์ ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ค.
- ๊ฐ ๋ชจ๋ ๊ฐ์ ์ฑ ์์ ๋ช ํํ ์ ์ํ๋ฉด ํ์ฅ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ์ฆ๊ฐํ๋ค.
'๐ค ์๋๋ก์ด๋ > ์ํคํ ์ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ํคํ ์ฒ ๊ถ์ฅ์ฌํญ (0) | 2025.03.26 |
---|---|
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ข ์ ํญ๋ชฉ ์ฝ์ (DI) (0) | 2025.03.25 |
[์๋๋ก์ด๋] Android 4๋ ์ปดํฌ๋ํธ๋ฅผ ๋งค๋ํ์คํธ ์์ ์ ์ธํ๋ ๋ฐฉ๋ฒ (0) | 2025.03.24 |
[์๋๋ก์ด๋] ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ (0) | 2025.03.23 |
[์๋๋ก์ด๋] ์๋๋ก์ด๋ ์ฑ ์ํคํ ์ฒ (0) | 2025.03.21 |