#1 ๊ฐ์
build.gradle์ ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์์กด์ฑ)๋ค์ ์ฃผ์ ๋ฐ ๋ฒ์ ์, ๋ฒ์ ์นดํ๋ก๊ทธ(libs.versions.toml)๊ฐ ์์ ํ ๊ด๋ฆฌํ๊ฒ ํ๋ค.
#2 ๊ฐ์ ํ ํฌ์ธํธ
#2-1 ๋ฒ์ ์นดํ๋ก๊ทธ๋ก ์์ ์ ํ
๋ฒ์ ์นดํ๋ก๊ทธ๋ก ๋น๋ ์ด์ | Android Studio | Android Developers
Gradle ๊ตฌ์ฑ ํ์ผ์ Gradle ๋ฒ์ ์นดํ๋ก๊ทธ๋ก ์ด์ ํฉ๋๋ค.
developer.android.com
์ง๊ธ๊น์ง์ Nutri Capture๋ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๋ฒ์ ์นดํ๋ก๊ทธ๊ฐ ๊ด๋ฆฌํ์๋ค. ์ด์ ๋ kapt๋ฅผ ์ ์ธ(#3-2 ์ฐธ์กฐ)ํ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฒ์ ์นดํ๋ก๊ทธ๊ฐ ๊ด๋ฆฌํ๊ฒ ๋ณ๊ฒฝํ๋ค.
#2-2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ ํ
# in libs.versions.toml
[versions]
... # ๋ณ๊ฒฝํ ๋ถ๋ถ
[libraries]
...
[plugins]
...
๋ฒ์ ์นดํ๋ก๊ทธ๊ฐ ์ข์ ์ด์ ์ค ํ๋๋, "versions" ํ ์ด๋ธ์ ์๋ ํค-๊ฐ ์์ ๊ฐ ๋ถ๋ถ๋ง ๋ฐ๊ฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ ์ด๋ค. ํ์ง๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ฆฌ์ ๋ฒ์ ํธํ์ฑ์ ์ฌ์ ํ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ํ์ ํด์ผ ํ๋ค.
#3 ๋ฒ์ ์นดํ๋ก๊ทธ๋ก ์์ ์ ํ
#3-1 ์ฝ๋ ์ค๋ํซ
// in ":app" ๋ชจ๋์ build.gradle.kts
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
id("org.jetbrains.kotlin.kapt") // ํน๋ณ๋์ฐ (#3-2 ์ฐธ์กฐ)
alias(libs.plugins.hilt)
}
android {
...
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
...
}
ํ๋ฌ๊ทธ์ธ์ alias ํค์๋๋ฅผ ์จ์ '๋ฒ์ ์นดํ๋ก๊ทธ์ ํ๋ฌ๊ทธ์ธ ํญ๋ชฉ (libs.plugins)'์ ํญ๋ชฉ์ ์ฐธ์กฐํ๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ implementation์ ์ธ์์ '๋ฒ์ ์นดํ๋ก๊ทธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํญ๋ชฉ (libs)'์ ํญ๋ชฉ์ ์ ๋ฌํ๋ค.
#3-2 kapt๋ฅผ ํน๋ณ๋์ฐ ํ๋ ์ด์
#3-1์ ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด, kapt๋ ๋ฒ์ ์นดํ๋ก๊ทธํ ์ํค์ง ์์๋ค. Gradle Sync ๋ฌธ์ ๋๋ฌธ์ด๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ผ๋๋ฐ ์๋ฌ๊ฐ ๋ฌ๋ค.
...
[plugins]
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
kapt์ ๋ฒ์ ์ 'org.jetbrains.kotlin.android ํ๋ฌ๊ทธ์ธ' (← ์ฝํ๋ฆฐ ์ฝ๋๋ฅผ ์ปดํ์ผํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ)์ ์ํด ์ด๋ฏธ ์ง์ ๋์์ผ๋ฏ๋ก ๋ฒ์ ์ ๋ช ์ํ๋ฉด ์ถฉ๋์ด ๋๋ค๋ ์ด์ ๋ค. ๊ทธ๋์ version.ref๋ผ๋ key๋ฅผ ์์ ์ ๊ฑฐํ๊ณ Gradle Sync๋ฅผ ํด๋ณด๋ฉด, ์ด๊ฑด ์ด๊ฑฐ๋๋ก version.ref๊ฐ ์๋ค๋ ์๋ฌ๊ฐ ๋๋ค. ์๋ง ๋ฌด๊ฒฐ์ฑ ์ฐจ์์์ ๋ง์๋ ๋ฏํ๋ค.
ํ์ง๋ง ๋๋ถ์ (org.jetbrains.kotlin.android ํ๋ฌ๊ทธ์ธ์ ์ฝํ๋ฆฐ ๋ฒ์ ์ ์ข ์๋๋ฏ๋ก) "kapt๋ ์ฝํ๋ฆฐ ๋ฒ์ ๊ณผ ์๋์ผ๋ก ์ฐ๋"๋๋ค๋ ๊ฑธ ์์๋ค. ๊ทธ๋์ ๋ฒ์ ์นดํ๋ก๊ทธ์ ๊ด๋ฆฌ ๋ชฉ๋ก์์ ๋บ๋ค(์์ธ๋ก ๋๋ค).
#4 ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ ํ
#4-1 ๋ฒ์ ๋ณ๊ฒฝ ์ฌํญ
# in libs.versions.toml
# ๋ณ๊ฒฝ ์ฌํญ ์๋ ์ค์ ์๋ต(...)ํจ
[versions]
agp = "8.9.3" # <- "8.5.1" (androidGradlePlugin)
hiltNavigationCompose = "1.3.0" # <- "1.2.0" (androidxHiltNavigationCompose)
hiltVersion = "2.56.2" # <- "2.46" (hilt)
kotlin = "2.1.20" # <- "1.9.21" (๋์ผ)
coreKtx = "1.17.0" # <- "1.13.1" (androidxCore)
junitVersion = "1.3.0" # <- "1.2.1" (Now in Androidd์ ํด๋น ํ๋กํผํฐ๊ฐ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์)
espressoCore = "3.7.0" # <- "3.6.1" (androidxEspresso)
lifecycleRuntimeKtx = "2.9.4" # <- "2.8.6" (androidxLifecycle)
activityCompose = "1.11.0" # <- "1.9.2" (androidxActivity)
composeBom = "2025.09.01" # <- "2024.04.01" (๋์ผ)
navigationRuntimeKtx = "2.9.5" # <- "2.8.1" (androidxNavigation)
roomRuntime = "2.8.1" # <- "2.6.1" (room)
ksp = "2.1.20-1.0.31" # <- "1.9.0-1.0.13" (๋์ผ)
...
[libraries]
...
[plugins]
...
๊ฐ๋ฅํ ์ต์ ๋ฒ์ ์ผ๋ก ๋ชจ๋ ํ๋ฌ๊ทธ์ธ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ค. ์ฃผ์(#)์์ ํ์ดํ ๋ค๋ ๋ณ๊ฒฝ ์ ์ ๋ฒ์ ์ด๊ณ , ๊ดํธ ์์ ์ด๋ฆ์ Now in Android์์ ์ฌ์ฉํ๋ ํ๋กํผํฐ๋ช ์ด๋ค (์ฐธ๊ณ : ์ ์ฒด libs.versions.toml ๋ณด๊ธฐ)
#4-2 "kotlin" ๋ฒ์ ๋ณ๊ฒฝ์ ์ฌํ ๋์
":app" ๋ชจ๋์ build.gradle.kts
plugins {
...
// Compose Compiler ์ถ๊ฐ
alias(libs.plugins.kotlin.compose)
}
android {
...
// ์ด์ ๋ ํ์์๋ ๊ตฌ๋ฌธ ์ญ์
// composeOptions {
// kotlinCompilerExtensionVersion = "1.5.6"
// }
...
}
dependencies {
...
}
Kotlin 1.x ์์ ์๋ Compose Compiler ๋ฒ์ ์ ๋ณ๋๋ก (composeOptions.kotlinCompilerExtensionVersion์์) ๊ด๋ฆฌํด์ผ ํ์ง๋ง, ์ด์ Kotlin 2.0 ์ดํ Compose Compiler๊ฐ ๋ณ๋ Gradle Plugin์ผ๋ก ๋ถ๋ฆฌ๋์๋ค. ๋ฐ๋ผ์ composeOptions.kotlinCompilerExtensionVersion๋ ์ด์ ํ์ ์๋ค.
๋ฒ์ ์นดํ๋ก๊ทธ (libs.versions.toml)
[versions]
...
[libraries]
...
[plugins]
...
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } # Compose Compiler
build.gradle์์ ํธ์ถํ libs.plugins.kotlin.compose๋ฅผ ์กด์ฌ์ํจ(?)๋ค.
#4-3 "agp" ๋ฒ์ ๋ณ๊ฒฝ์ ์ฌํ ๋์
# in gradle-wrapper.properties
...
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
...
Android Gradle Plugin์ ๋ฒ์ ์ 8.9.3์ผ๋ก ์ฌ๋ ธ๋๋ฐ, 8.9.x ๋ฒ์ ์ด์์ Android Gradle Plugin์ ์ต์ 8.11.1 ๋ฒ์ ์ด์์ Gradle์ ๊ธฐ๋ฐํด์ผ ํ๋ค. ๋ฐ๋ผ์ Gradle ๋ฒ์ ์ ์์ ๊ธฐ์กด 8.7์์ 8.11.1๋ก ๋ณ๊ฒฝํ๋ค.
#4-4 "composeBom" ๋ฒ์ ๋ณ๊ฒฝ์ ์ฌํ ๋์
# in libs.versions.toml
[versions]
...
materialIconsExtended = "1.7.8"
[libraries]
...
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "materialIconsExtended" }
[plugins]
...
๊ธฐ์กด composeBom์ ๋ฒ์ ์ "2024.04.01"์ด์๋ค. composeBom ๋ฒ์ ์ "2025.09.01"์ผ๋ก ์ฌ๋ฆฌ์, ์๋ ์ฝ๋์์ ์๋ฌ๊ฐ ๋ฌ๋ค.
// in NutrientChatBar.kt
import androidx.compose.material.icons.Icons // e: Unresolved reference 'icons'.
...
'icons' ํจํค์ง๋ฅผ ์ฐพ์ ์ ์๋ค๋ ์๋ฌ ๋ฉ์์ง์๋ค. composeBom์ ์ด๋ค ๋ณํ๊ฐ ์๊ฒผ๊ธฐ ๋๋ฌธ์ด๋ฆฌ๋ผ. ํ์ง๋ง BOM to library version mapping์์ "2024.04.01" ๋ฒ์ ์ mapping ์ ๋ณด๊ฐ ๋์ ์์ง ์์๋ค. ๋๋ฌด ์ค๋๋๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ค. ๊ทธ๋๋ ๊ฒ์์ ํตํด ์ด๋ฐ ๊ฒฝ์ฐ์๋ "androidx.compose.material:material-icons-extended" ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค๋ ์ ๋ณด๋ฅผ ์ฐพ์๊ณ , ๋ฐ๋ผ ํด๋ดค๋๋ ํด๊ฒฐํ ์ ์์๋ค.
๋คํํ BOM to library version mapping์๋ "2025.09.01" ๋ฒ์ composeBom์ mapping ์ ๋ณด๋ ๋์ ์์๋๋ฐ, ์ฌ๊ธฐ์ ์๋ฌธ์ ํด๊ฒฐํ ์ ์์๋ค. "2025.09.01" ๋ฒ์ ๋ถํฐ๋ ์ต์ด๋ก, 1.4.0 ๋ฒ์ ์ "androidx.compose.material3:material3"๋ฅผ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ 1.4.0 ๋ฒ์ ์ ์ค๋ช ํ๋ ๊ณต์ ๋ฌธ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ช ์ด ๋์จ๋ค.
1. (androidx.compose.material.icons๊ฐ ์ ๊ณตํ๋) Material Icons๋ ์๋ก์ด ๋์์ธ์ธ Material Symbols๋ก ๋์ฒด๋์๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ์ง์ ์ ํจ
2. androidx.compose.material.icons ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋ ์์ด์ฝ ์ธํธ๋ฅผ ์ ๋ถ ํฌํจํ๊ณ ์์ด์, ์ค์ ๋ก๋ ์ฐ์ง๋ ์๋ ์์ด์ฝ๊น์ง ๋น๋ํ๋๋ผ ๋น๋ ์๊ฐ์ ์ ์ํฅ์ ์ฃผ๊ธฐ์ ๋ ์ด์ ์ง์ ์ ํจ
๊ทธ๋ฌ๋ ์ ๋ง ํ์ํ ์ฌ๋๋ง ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(androidx.compose.material:material-icons-extended)๋ฅผ ๋ค์ด๋ก๋ํด์ ์ฐ๋ผ๋ ๋ง์ด๋ค.
#4-5 ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ๋ณ๊ฒฝ์ ์ฌํ ๋์
// in ":app" ๋ชจ๋์ build.gradle.kts
plugins {
...
}
android {
...
compileSdk = 36
...
}
dependencies {
...
}
๊ฑฐ์ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ฌ๋ ธ๋๋, Gradle Sync ์ 35 ๋๋ 36์ complieSdk๋ฅผ ์๊ตฌํ๋ค (๊ธฐ์กด์ 34). ๊ทธ๋์ ๊ต์งํฉ์ธ 36๋ก compileSdk๋ฅผ ์ฌ๋ ธ๋ค.
Gradle Sync ์ ๋ด๋ ์๋ฌ ๋ฉ์์ง ์ ๋ฌธ
1. Dependency 'androidx.hilt:hilt-navigation-compose:1.3.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
2. Dependency 'androidx.hilt:hilt-lifecycle-viewmodel-compose:1.3.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
3. Dependency 'androidx.navigation:navigation-compose-android:2.9.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
4. Dependency 'androidx.compose.material3:material3-android:1.4.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
5. Dependency 'androidx.compose.ui:ui-tooling-data-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
6. Dependency 'androidx.compose.material:material-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
7. Dependency 'androidx.compose.foundation:foundation-layout-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
8. Dependency 'androidx.compose.material:material-ripple-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
9. Dependency 'androidx.compose.foundation:foundation-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
10. Dependency 'androidx.compose.animation:animation-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
11. Dependency 'androidx.compose.animation:animation-core-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
12. Dependency 'androidx.compose.ui:ui-text-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
13. Dependency 'androidx.compose.ui:ui-tooling-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
14. Dependency 'androidx.compose.ui:ui-graphics-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
15. Dependency 'androidx.core:core:1.17.0' requires libraries and applications that depend on it to compile against version 36 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 36, for example 36.
16. Dependency 'androidx.activity:activity-ktx:1.11.0' requires libraries and applications that depend on it to compile against version 36 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 36, for example 36.
17. Dependency 'androidx.compose.runtime:runtime-saveable-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
18. Dependency 'androidx.lifecycle:lifecycle-runtime-compose-android:2.9.4' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
19. Dependency 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.4' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
20. Dependency 'androidx.compose.ui:ui-android:1.9.2' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 35, for example 36.
21. Dependency 'androidx.activity:activity:1.11.0' requires libraries and applications that depend on it to compile against version 36 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 36, for example 36.
22. Dependency 'androidx.activity:activity-compose:1.11.0' requires libraries and applications that depend on it to compile against version 36 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 36, for example 36.
23. Dependency 'androidx.core:core-ktx:1.17.0' requires libraries and applications that depend on it to compile against version 36 or later of the Android APIs.
:app is currently compiled against android-34.
Recommended action: Update this project to use a newer compileSdk of at least 36, for example 36.
#5 ์์ค ์ฝ๋
#5-1 ๋ฒ์ ์นดํ๋ก๊ทธ๋ก ์์ ์ ํ
GitHub - Kanmanemone/nutri-capture-new
Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.
github.com
#3์ด ์ ์ฉ๋ ์ปค๋ฐ
#5-2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ต์ ํ
GitHub - Kanmanemone/nutri-capture-new
Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.
github.com
(#3๊ณผ) #4๊ฐ ์ ์ฉ๋ ์ปค๋ฐ
#5-3 ๋ณธ ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ต์ Commit
GitHub - Kanmanemone/nutri-capture-new
Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.
github.com
'๊ฐ๋ฐ ์ผ์ง ๐ป > Swemo' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Nutri Capture - Entry point๋ฅผ Now in Android ์คํ์ผ๋ก ๋ณ๊ฒฝ (0) | 2025.10.31 |
|---|---|
| Nutri Capture - ํ๋ก์ ํธ ๋ชจ๋ํ ๋ฐ ์ฝ๋ ์ฌ๋ฐฐ์น (0) | 2025.10.31 |
| Nutri Capture - NutrientBottomSheet ๋ถ๋ถ ๊ตฌํ (0) | 2025.03.26 |
| Nutri Capture - NutritionInfo (๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ) ๋ฆฌํฉํ ๋ง (0) | 2025.03.26 |
| Nutri Capture - 'ํผ์' ์์ด์ฝ ์์ ์ ์ฉ (0) | 2025.03.25 |