๊ฐ๋ฐ์์ ์ผ์ผ ํ์ต ๊ธฐ๋ก(TIL: Today I Learned)์ ๊ด๋ฆฌํ๊ณ , AI๊ฐ ์๊ฐ ํ๊ณ ๋ฅผ ์์ฑํด ์ฃผ๋ ์๋๋ก์ด๋ ์ฑ์ ๋๋ค.
- TIL ์์ฑ ๋ฐ ๊ด๋ฆฌ: ๋งค์ผ ๋ฐฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ Room Database๋ฅผ ํตํด ๋ก์ปฌ ํ๊ฒฝ์์ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
- ํ์ต ๋์๋ณด๋ (Chart): ์ฃผ๊ฐ/์๊ฐ ํ์ต ํต๊ณ๋ฅผ ์ฐจํธ๋ก ์๊ฐํํ์ฌ ์ง๊ด์ ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- AI ์๊ฐ ํ๊ณ ์์ฑ (Review): ์ฌ์ฉ์๊ฐ ๊ธฐ๋กํ ํ ๋ฌ ์น์ TIL ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก OpenAI API๋ฅผ ํ์ฉํ์ฌ ๋ง์ถคํ ์๊ฐ ํ๊ณ ํผ๋๋ฐฑ์ ์๋ ์์ฑํด ์ค๋๋ค.
- ๋ก๋ฉ ํผ๋๋ฐฑ: AI ๋ถ์ ๋ฑ ์ผ์ ์๊ฐ์ด ์์๋๋ ์์ ์งํ ์, Material 3์ ๋ก๋ฉ ์ธ๋์ผ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
- Layered Clean Architecture:
data(์ธํ๋ผ ๋ฐ ๋ ํฌ์งํ ๋ฆฌ ๊ตฌํํ),domain(๋น์ฆ๋์ค ๋ก์ง, ๋ชจ๋ธ ๋ฐ ์ ์ค์ผ์ด์ค ๊ตฌํ),presentation(UI ๋ฐ ์ํ ๊ด๋ฆฌ) ๊ณ์ธต์ ๋ช ํํ ์ญํ ๋ถ๋ฆฌ - MVI (Model-View-Intent): Orbit MVI ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํตํด ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ ํ๊ณ ๋ทฐ ์ํ(State) ๋ฐ ์ฌ์ด๋ ์ดํํธ(Side Effect) ์ฒ๋ฆฌ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
- ์์กด์ฑ ์ฃผ์ (DI): Dagger Hilt๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์๋ ์์กด์ฑ ์ฃผ์ ์ ๊ตฌํํ์์ต๋๋ค.
- Kotlin (Target JVM 17)
- Android SDK 35 (Min SDK 26)
- Android Gradle Plugin (AGP) 8.7.3 (ktlint ์ ์ ๋ถ์ ํธํ์ฑ์ ์ํ ๊ณ ์ ๋ฒ์ )
- Jetpack Compose & Material 3
- Navigation Compose
- Orbit MVI (Core, ViewModel, Compose ์ก์คํ ์ )
- Hilt (Dependency Injection)
- Vico Compose (Compose ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- Coroutines & Flow
- Room Database (Local Storage)
- Retrofit2 & OkHttp3 (Network API Calls)
- Kotlinx Serialization (JSON Serialization)