2024 11 04_daily_scrum - boostcampwm-2024/and04-Nature-Album GitHub Wiki
์ผ์: 2024-11-04
์ฐธ์์: ์ ์ ์ง, ์ํ์ค, ๋ ธ์งํ, ๊น๋์ค, ๊น์ ํธ
๐ก ์งํํ ์ฌํญ
- ๋ฉํ ๋ง ์ผ์ ์ ํ๊ธฐ (์์์ผ2๋ช ๊ธ์์ผ 3๋ช )
- ์์์ผ ์ค๊ธฐ ์ : ์๋ฃ ์กฐ์ฌ ์๊ธฐ
- ์นด๋ฉ๋ผ, GPS, ๊ถํ, Room, Firebase(๊ธฐ์ด, ๋ก๊ทธ์ธ ์ ) ๋ฑ๋ฑ ๊ธฐ์ ์กฐ์ฌ ๊ฐ ๊ธฐ์ ๋ณ ํ์ด์ง ํ๊ธฐ
- ์ ์ผ ๋จผ์ ์กฐ์ฌํ๊ธฐ ์์ํ ์ฌ๋
- ํ ๊ธ๋ก ์์ ์ด ์กฐ์ฌํ๋ ๊ฒ ์ ์ด๋๊ธฐ
- ํด๋ฆฐ ์ํคํ ์ฒ, ๊ตฌ๊ธ ๊ถ์ฅ ์ํคํ ์ฒ, MVVM, MVI, MVP(Most Valuable Player), MVC ๋ฑ ๊ณต๋ถํ๊ณ ์ ๋ฆฌํด๋ณด๊ธฐ
- ๋ฌธ์ ์ ๋ฆฌ ๋ฐ ๋ฐํ ์ค๋น
- ์นด๋ฉ๋ผ, GPS, ๊ถํ ๋ฑ๋ฑ ๊ธฐ์ ์กฐ์ฌ ํด์จ ๊ฒ ํ ๋ก ๋ฐ ๊ธฐ์ ์คํ ์ ์
- Gradle, SDK ๋ฑ ๋ฒ์ ์ ํ๊ธฐ
- ์ฝ์๋ผ vs ๋ฌด๋น๋ฒ๋ โ ์ฝ์๋ผ
- ๋ค์ด ๋งํฌ : https://developer.android.com/studio?hl=ko
- ์ ํธ : Android Studio Koala | 2024.1.1 Patch 1
- ์ฝ์๋ผ vs ๋ฌด๋น๋ฒ๋ โ ์ฝ์๋ผ
- ๊ธฐ์ ํ์ , ํ๋ก์ ํธ ์์ฑ
- ui composable ์์ฑ ๋ฐ ์ฑ ์์ํ๊ธฐ, ๋๊ฐ ๊ตฌํ ์งํ
- ์ฃผ๊ฐ ๋ฐฑ๋ก๊ทธ ์์ฑํ๊ธฐ
๐ก๊ธฐ์ ์คํ ์ ํ๊ธฐ
1๏ธโฃ ์นด๋ฉ๋ผ
์์คํ ์นด๋ฉ๋ผ
- CameraX๋ฅผ ์ ๊น ์จ๋ดค์ ๋ ํ์ง์ด ์ข์ง ์์์๋ค.
- AI๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๋งค ํ๋ ์๋ง๋ค ๋๋ฆฌ๋ ๊ฒ์ด ์๋ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ๋ง์ผ๋ก ์ฒ๋ฆฌํ๋ฉด ๋๋ ๊ฒ ์๋๊ฐ?
- CameraX๋ฅผ ์คํํด๋ณด์์ผ๋ compile SDK ๋ฒ์ ์ 34 ์ด์์ผ๋ก ์คํํ๊ฑฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ๋ฎ์ถฐ์ผ ํ๋ค. https://developer.android.com/jetpack/androidx/releases/camera
- ๊ทธ๋ฅ ๋ด์ฅ ์นด๋ฉ๋ผ ์ฐ๋ ๊ฒ์ด ์คํ๋ ค ๋ ๊น๋ํ๊ณ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ.
- ๋ฌผ๋ก ๊ทธ๋ ๊ฒ๋๋ฉด GPS์ํ๋ฅผ ๋ ๋ฒ ํ์ธํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์โฆ
- ๋ด์ฅ ์นด๋ฉ๋ผ ์ฐ๋ฉด ์ทจ์, ํ์ธ ๊ฐ์ ์ฒ๋ฆฌ๋ ๊ฐ๋จํ๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค..? โ ์ข ๋ ํ์ธํด์ผํจ
CameraX
- ํ์ ๋์ ํ AI๋ ํน์ GPS ์ํ์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ CameraX๊ฐ ๋์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ.
- Intent๋ฅผ ํตํ ์นด๋ฉ๋ผ ์ ํ ๊ด๋ จ ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํ๋๋ฐ ์๊ฐ๋ณด๋ค ์๋ฃ๊ฐ ์์๋ค.
- ์ฌ์ง์ด ๊ณต์๋ฌธ์์๋ deprecated๋ ์ฝ๋๊ฐ ์์ง๋,,,
- GPS ์ํ๋ฅผ ์นด๋ฉ๋ผ์ UI๋ก ํ์ํ์ฌ ์๋ดํ ์ ์๋ค. ๋ํ, ์ฐ๋ฆฌ ์ฑ๋ง์ ๋์์ธ์ ์นด๋ฉ๋ผ์ ์ ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
Google Play ์ถ์ ๊ด๋ จ
-
Google Play์ ์ถ์๋ฅผ ํ๊ธฐ ์ํด์๋ targetSdk๊ฐ Android 14 (API ์์ค 34) ์ด์์ ํ๊ฒํ ํด์ผ ํ๋ค.
https://developer.android.com/google/play/requirements/target-sdk?hl=ko
https://support.google.com/googleplay/android-developer/answer/11926878?hl=ko
๋ฌธ์ ์ํฉ
- 2๋ 2์ ์ํฉ
- Google Play ์ถ์๊น์ง ๊ณ ๋ คํ๋ค๋ฉด targetSdk๋ 34 ์ด์์ด ์ถฉ์กฑ๋์ด์ผ ํจ์ผ๋ก CameraX ์ ์ฉ์ด ๊ฐ๋ฅํด์ง๋ค. ๊ทธ๋ฌ๋ 34 ๋ฏธ๋ง์ ๊ธฐ๊ธฐ๋ CameraX๊ฐ ์ ๋๋ก ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์ด SDK ๋์์ด ํ์ํ๋ค.
๊ฒฐ๋ก
- Intent ๋จผ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ ํ targetSdk 34์ด์์ CameraX ์ ์ฉํด๋ณด๊ธฐ
2๏ธโฃ ์ํคํ ์ฒ
- ๊ตฌ๊ธ ๊ถ์ฅ ์ํคํ ์ฒ vs ํด๋ฆฐ ์ํคํ ์ฒ
https://f-lab.kr/insight/clean-architecture-vs-google-recommended-architecture-20240905
https://holy0823.tistory.com/4
- ์๋๋ก์ด๋ ๊ถ์ฅ ์ํคํ
์ฒ
-
๋๋ฉ์ธ ๋ ์ด์ด ์ ํ
-
๋จ๋ฐฉํฅ flow
-
- ํด๋ฆฐ ์ํคํ
์ฒ
- ๋๋ฉ์ธ ๋ ์ด์ด ํ์
- ๋๋ฉ์ธ ๋ ์ด์ด๋ฅผ ์๋ก ๋ฐ๋ผ๋ด = UI ๋ ์ด์ด์ Data ๋ ์ด์ด๊ฐ Domain ๋ ์ด์ด์ ์์กด
์๊ฒฌ
- ์ฐ๋ฆฌ ์ฑ์ ๋ณต์ก์ฑ์ ๋์ ํธ์ด ์๋๋ค. ๋น์ฆ๋์ค ๋ก์ง์ด ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ ๋ ์ด์ด๊ฐ ๊ตณ์ด ํ์ ์์ด ๋ณด์ธ๋ค. ๋ฐ๋ผ์ ๊ตฌ๊ธ ๊ถ์ฅ ์ํคํ ์ฒ๋ก ๊ฐ๋๊ฒ ์ข๋ค๊ณ ์๊ฐํ๋ค.
- ์ฐ๋ฆฌ ์ฑ์์ ์ฌ์ฉํ ๋ ํฌ์งํ ๋ฆฌ์ ์ข ๋ฅ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒ์ด ์๋๋ฉฐ, ์ด๋ฅผ ํ์ฉํด์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ค์ํ๊ฒ ๊ตฌ์ฑํ๋ ๊ฒ ๋ํ ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ฌ ํ๋ก์ ํธ์์๋ ํด๋ฆฐ์ํคํ ์ฒ๊น์ง๋ ํ์ํ์ง ์์ ๋ณด์ธ๋ค.
- ํด๋ฆฐ ์ํคํ ์ฒ์ ๋ํด ์ ๋๋ก ํ์ ํ์ง ๋ชปํ๋ค.
- ๊ตฌ๊ธ ์ํคํ ์ฒ๋ ์ ๋ชจ๋ฅด๋๋ฐ ํด๋ฆฐ ์ํคํ ์ฒ๋ ๋์ฑ ๋ ๋ชจ๋ฅธ๋คโฆ โ ์ง๊ธ๊น์ง ๋๋ฉ์ธ ๋ ์ด์ด์ ํ์์ฑ์ ๋จ 1๋ ๋๋ผ์ง ๋ชปํ๋ค. โ ๊ทธ๋ฅ google android์์ ๊ถ์ฅํ๋ค๋ ์ํคํ ์ฒ๋ฅผ ์ฐ๋๊ฒ์ด ๋์๋ณด์ธ๋ค. (๊ฐ์ธ์ ์ธ ์๊ฒฌ) ๐
๊ฒฐ๋ก
- ๊ตฌ๊ธ ๊ถ์ฅ ์ํคํ ์ฒ
3๏ธโฃ ์ฌ์ง ์ ์ฅ ๋ฐฉ์
- Room DB(= ์ฑ DB)์ ์ฌ์ง๋ง Bitmap ๋ง๊ณ URI๋ก ์ ์ฅํ๊ณ ์ฌ์ง ์์ฒด๋ ์ฑ ํด๋์ ์ ์ฅํ์.
- ์งํ๋ ์์ด๋์ด ์ข์์.
- Bitmap์ Room DB์ ์ ์ฅํด๋ณด๊ณ ๋ฌด์จ ์ฐจ์ด์ ์๋์ง ํ์ธ ํ ์ฑ ํด๋์ ์ ์ฅํ์ฌ URI๋ก ๊ด๋ฆฌํ๊ธฐ.
- Bitmap์ผ๋ก RoomDB์ ์ ์ฅํ๋ ๊ฒฝ์ฐ
- ๋ ์ง, ์์น ๋ฑ ๋ฐ๋ก RoomDB์ ์ ์ฅ ํ์
- ์ผ๋จ Bitmap์ผ๋ก ์ ์ฅํด๋ณด๊ณ ์ดํ์ ํ๋จํ๊ธฐ
4๏ธโฃ Firebase
- ์ต๋ช
ํ์ ๊ด๋ จ
- ์ต๋ช ํ์์ผ๋ก SNS ์ธ์ฆ ํ์ง ์๊ณ Friebase ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- ์ค์ ๊ณ์ ์ผ๋ก ์ ํ ๊ฐ๋ฅ
- ์ถ๊ฐ ์กฐ์ฌ ํ์
- ๋ง์ฝ ์ด๋ค๊ณ ํ๋ฉด ๋นํ์๋ Room์ ๋ ์ฐ๊ณ ์๋ฒ์ ์ ์ฅํ ์ ์์ง ์์๊น? โ ์ถํ ์๊ฐ
5๏ธโฃ ๋ก๊ทธ์ธ ๊ด๋ จ
- ๋ก๊ทธ์ธ์ ์ค์ด๋ ๊ฒ์ด ์ด๋ค๊ฐ ๋ผ๋ ํผ๋๋ฐฑ๊ณผ id-pw๋ก ๊ฐ๋จํ ๊ตฌํํ๋ ๊ฒ์ด ์ด๋ค๊ฐ ๋ผ๋ ํผ๋๋ฐฑ์ ๋ฐ์๋ค. ์ด์ ๋ํด์ ์ด๋ป๊ฒ ์๊ฐํ๋๊ฐ?
- id-pw ์์ฒด์ ์ผ๋ก ๋ง๋ ๋ค๋ฉด UI ๊ตฌ์ฑ ๋ฐ FLOW ๊ตฌ์ฑ์ด ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๊ฒ ๋๋ค.
- SNS๋ก๊ทธ์ธ์ด ๋ง๊ธฐ๋ ํ๋ค.
๊ฒฐ๋ก
- ๊ตฌ๊ธ SNS ๋ก๊ทธ์ธ๋ง ๋จ๊ฒจ๋๊ณ ๋๋จธ์ง ์ ๊ฑฐ
๐กํ๋ก์ ํธ ์์ฑ ํ์
1๏ธโฃ ๋ผ๋ฒจ, ๋ง์ผ์คํค
- ์ํฝ๊ณผ ๋์ผํ ์ด๋ฆ์ผ๋ก ๋ง์ผ์คํค ์์ฑ. ์ถํ ์ํฝ ์์ฑ ์ญ์
- ๋ผ๋ฒจ(๊ธฐ๋ณธ์ผ๋ก ์๋ ๊ฒ ๊ทธ๋๋ก + ์คํ ๋ฆฌ ์ถ๊ฐํ์ฌ ์ฌ์ฉ)
-
๊ธฐ๋ณธ ๋ผ๋ฒจ
-
์คํ ๋ฆฌ
-
refactor
-
document
-
2๏ธโฃ ๋ฒ์
- app โ gradle
kotlinOptions {
jvmTarget = "1.8"
}
- lib.versions.toml
[versions]
kotlin = "2.0.0"
๐ก์ฃผ๊ฐ ๋ฐฑ๋ก๊ทธ ์์ฑ
1์ฐจ ๋ฆด๋ฆฌ์ฆ ๋ชฉํ (0.0.1) - ์ต์ ๋จ์ ๊ธฐ๋ฅ
- ๋นํ์ ๋์
- ์ฑ ๋ด๋ถ DB(Room)์ ์ ์ฅ
- ์ฌ์ฉ์๊ฐ ๋ผ๋ฒจ, ์ฌ์ง, ์ค๋ช ์ถ๊ฐ ๋ฐ ์์
- ๋๊ฐ ๊ตฌ์ฑ (+ ํฌ๋กญ)
๐ก์ ๋ฌด ๊ด์ฌ
๊ฒน์น๋ฉด ํ์ดํ๋ก๊ทธ๋๋ฐ ํ๋ฉด ๋จ
-
๋์ค โ ๋ผ๋ฒจ
-
์ ํธ โ ๊ทธ๋ฆฌ๋ + ๊ถํ
-
์งํ โ ์นด๋ฉ๋ผ ์ฐ๊ณ ์ฌ์ง ์ ์ฅ
-
ํ์ค โ Room DB
-
์ ์ง โ ์ฌ์ง ํฌ๋กญํด์ ๋ณด์ฌ์ฃผ๊ธฐ + ์นด๋ฉ๋ผ
-
ํ๋ก์ ํธ ์์ฑ ๋ฐ ํ ๋ง ์ ์ฅ commit โ ์ ํธ (ํ ๋ง ์ฅ์ธ)