๊ฐ์ ์ฃผ์ ๐
์ด๋ค ๊ธฐ์ (๊ฐ๋
)์ ๋ฐฐ์ฐ๋์ง, ์ด๋ค ๋ถ์ผ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋์ง ๋ฑ์ ์ค๋ช
ํด์ฃผ์ธ์.
๊ตฌ์ฒด์ ์ธ ์ด๋ฏธ์ง๋ ๊ทธ๋ํ ๋ฑ ์ฐธ๊ณ ํ ์ ์๋ ์๋ฃ๊ฐ ์์ผ๋ฉด ๋ ํจ๊ณผ์ ์ผ๋ก ์๊ฐ์์ ์ค๋ํ ์ ์์ด์.
๊ฐ์ ์ฃผ์ : ๊ฐ์์์ ๋ฐฐ์ฐ๋ ํ ๊ฐ์ง ํต์ฌ ๋ด์ฉ
๊ฐ์ ๊ธฐํ ๋ฐฐ๊ฒฝ: ์๊ฐ์์ ์ค๋ํ ์ ์๋, ๊ฐ์ ์ฃผ์ ๋ฅผ ๋ค๋ฃจ๊ฒ ๋ ๋ฐฐ๊ฒฝ
๊ฐ์ ์ฃผ์
์ด ๊ฐ์์ ๋ชฉ์ ์ Android Jetpack์ ์ค์ฌ์ผ๋ก ํ ์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ฑ์ ์ ์ฉํ๋ ๋ฒ์ ์๊ธฐ์ฝ๊ฒ ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค.
๊ฐ์ ๊ธฐํ ๋ฐฐ๊ฒฝ
์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ๋ฒ์ ํ์ตํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ Google Developers์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด์ง๋ง, ์ค๋ช ์ด ๋ณต์กํ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ ํ๊ธ ๋ฌธ์๋ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ ๋์ง ์๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. ๊ทธ๋์ ์๊ธฐ์ฌ์ด ์๋๋ก์ด๋ ๊ฐ์๋ฅผ ํ ๋ฒ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
์๊ฐ ํ๊ฒ/๊ฐ์ ๋ชฉ์ ๐
์ด ๊ฐ์๋ฅผ ๋ค์ด์ผ ํ๋ ์ฌ๋์ ๋๊ตฌ์ธ์ง ์ ๋ฆฌํด์ฃผ์ธ์.
๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํ ์๋ก ๊ฐ์๊ฐ ํ์ํ๊ณ ์ ๋ง๋ ์ฌ๋๋ค์ด ๊ฐ์๋ฅผ ์๊ฐํ๊ฒ ๋ฉ๋๋ค.
์ง์๊ณต์ ์๊ฐ ์๊ฐํ๋ ์๊ฐ์ ์ ํ: ์ด ๊ฐ์๋ฅผ ๋ค์ด์ผ ํ๋ ์ฌ๋๋ค
์๊ฐ์์ ๊ณ ๋ฏผ: ์ด ๊ฐ์๋ฅผ ๋ค์ ์๊ฐ์๋ค์ด ๋๋ผ๋ ๊ณ ๋ฏผ๊ณผ ๊ณ ์ถฉ
์๊ฐ์์ ๊ณ ๋ฏผ ํด๊ฒฐ ๋ฐฉ๋ฒ: ์๊ฐ์์ ๊ณ ๋ฏผ์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์๊ฐ ์ ์ํ๋ ๋ฐฉ๋ฒ
์ง์๊ณต์ ์๊ฐ ์๊ฐํ๋ ์๊ฐ์ ์ ํ
์๋๋ก์ด๋ ์ฑ์ Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ MVVM ์ํคํ ์ฒ๋ฅผ ์ ์ฉํด ๋ณด๊ณ ์ถ์ผ์ ์ฃผ๋์ด ๊ฐ๋ฐ์ ๋ถ๋ค.
์๊ฐ์์ ๊ณ ๋ฏผ
์๊ฐ์์ ๊ณ ๋ฏผ ํด๊ฒฐ ๋ฐฉ๋ฒ
๊ฐ์ ํน์ง โจ
์ด ๊ฐ์๋ ๋ค๋ฅธ ๊ฐ์์ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? ์ด๋ค ์ ์์ ๋งค๋ ฅ์ ์ธ ๊ฐ์์ธ๊ฐ์?
๋ค์ํ ์ค์ต๊ณผ ์์ , ์ดํดํ๊ธฐ ์ฌ์ด ์ค๋ช
, ๊น์ด์๋ ๊ฐ๋
์ค๋ช
๋ฑ ์ด ๊ฐ์์ ์ฅ์ ์ ์ค๋ช
ํด์ฃผ์ธ์.
์ ์ ๊ณผ์ ์์ ํนํ ์ ๊ฒฝ์ผ๊ฑฐ๋ ๊ฐ์กฐํ๊ณ ์ถ์ ๊ฐ์์ ํต์ฌ ํน์ง (2~4๊ฐ์ง) ์ ์ ์ด์ฃผ์ธ์.
ํต์ฌ ํน์ง ์ธ์๋ ์ปค๋ฆฌํ๋ผ์์ ์ด๋ก ๊ณผ ์ค์ต์ ๋น์ค์ด ์ด๋ป๊ฒ ๋๋์ง, ๋์ด๋, ์ฌ์ฉํ๋ ํด์ด๋ ๊ธฐ์ , ์ ์ ์ง์ ๋ฑ ์๊ฐ์์ด ์์์ผ ํ ๊ฐ์์ ํน์ง ๋ฑ์ ์๋ ค์ฃผ๋ฉด ๋์ฑ ์ข์์.
๊ฐ์ ํน์ง
๊ฐ์๋ฅผ ๋ค์ ํ ์๊ฐ์์ ๋ณํ ๐
๊ฐ์๋ฅผ ๋ฃ๊ณ ๋๋ฉด ๋ฌด์์ ์ดํดํ๊ณ , ์ ํ ์ ์๊ฒ ๋๋์?
์๊ฐ์์ด ์ด๋ป๊ฒ ๋ณํํ ์ ์๋์ง์ ๋ํด ์ต๋ํ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
ํด์ค๋๋ค.
์์ํ ์ค์ต ๊ฒฐ๊ณผ๋ฌผ์ด๋ ํฌํธํด๋ฆฌ์ค ๋ฑ์ด ์๋ค๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ์ถ๊ฐํด์ฃผ์ธ์!
ํ์ต ๋ด์ฉ ๐
๊ฐ์์์ ์ด๋ค ์์๋ก ๋ฌด์์ ๋ฐฐ์ฐ๊ฒ ๋๋์ง ์๋ ค์ฃผ์ธ์.
๊ฐ์๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์น์
์ผ๋ก ๋๋ ๋ค, ์น์
๋ง๋ค ์ด๋ค ๋ด์ฉ์ ๋ฐฐ์ฐ๋์ง ์ค๋ช
ํฉ๋๋ค.
ํ๋์ ์น์
๋ง๋ค ์ ๋ชฉ(ํ์) - ์ค๋ช
(ํ์) - ์ด๋ฏธ์ง(์ ํ) ์์ผ๋ก ์์ฑํด์ฃผ์ธ์.
์๊ฐ๊ธ์ ๋ค์ด๊ฐ๋ ์ด๋ฏธ์ง๊ฐ ์๊ฐ์ ์ฒญ์ ์ข์ฐํ๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์๋์?
์น์
๋ณ๋ก ๋ฐฐ์ฐ๋ ๋ด์ฉ์ ๋ํ ์์ ์ด๋ฏธ์ง๊ฐ ์๋ค๋ฉด, ํจ์ฌ ๋งค๋ ฅ์ ์ธ ๊ฐ์ ์๊ฐ๋ฅผ ๋ง๋ค ์ ์์ด์.
ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ธฐ๊น์ง์ ๊ณผ์ ์ ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง๋ก ๋ณด์ฌ์ค๋ ์ข์์.
MVC, MVP, MVVM ๊ตฌ์กฐ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ๊ณ Jetpack์ด ์๊ธด ์ด์ ๋ฅผ ์์๋ด ๋๋ค.
Android Architecture Components(AAC)์ธ ViewBinding, ViewModel, Lifecycle, LiveData, DataBinding์ ์๋ฆฌ์ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ๋ Repository ํจํด์ ์ฌ์ฉ๋ฒ์ ๋ํด์๋ ์ค๋ช ํฉ๋๋ค.
์น์ 1์์ ๋ฐฐ์ด ๋ด์ฉ์ ์ ์ฉํ์ฌ ์ฑ ๊ฒ์์ ํ๋ ์ฑ์ ๋ง๋ค์ด ๋ด ๋๋ค.
์น์ 2์์ ์ฑ์ ๋ง๋ค๋ ์ ์ฉํ ๊ธฐ์ ์ค AAC์ ์ํ์ง ์๋ ๊ธฐ์ ์ ์ด๋ก ์ ์ถ๊ฐ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
Jetpack Navigation์ ์ฑ์ ์ ์ฉํ์ฌ ํ๋ฉด์ ํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
Jetpack Room์ ์ฑ์ ์ ์ฉํ์ฌ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
LiveData ๋์ Kotlin Flow๋ฅผ ์ด์ฉํด UI๋ฅผ ๊ฐฑ์ ํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
SharedPreferences ๋์ Jetpack DataStore๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
Jetpack Paging์ ์ด์ฉํด ๋ฌดํํ ์คํฌ๋กค๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ตฌ์ถํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
Jetpack WorkManager๋ฅผ ์ด์ฉํด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ํํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
์์กด์ฑ ์ฃผ์ ์ด ์ ์ค์ํ์ง ์ค๋ช ํ๊ณ Hilt๋ก ์์กด์ฑ์ ์ฃผ์ ํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
Kotlin์ผ๋ก build.gradle ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
์ง๊ธ๊น์ง ๋ง๋ค์ด ๋ณธ ์ฑ์ MAD Score๋ฅผ ํ๊ฐํด ๋ด ๋๋ค.
์์ ์ง๋ฌธ Q&A ๐ฌ
๊ฐ์๋ฅผ ์๊ฐํ๊ธฐ ์ , ์๊ฐ์๋ค์ด ๊ถ๊ธํดํ ์ ์๋ ์ง๋ฌธ๊ณผ ๋ต๋ณ์ 3๊ฐ ์ด์ ์์ฑํด์ฃผ์ธ์.
๋ปํ๊ณ ํ์์ ์ธ ๋ต๋ณ๋ณด๋ค๋ ์ง์๊ณต์ ์์ ๊ฐ์ฑ์ด ๋ฌป์ด๋์ค๋ ๋ต๋ณ์ ๊ถ์ฅํฉ๋๋ค.
Q. ์ ์ด ๊ฐ์๋ฅผ ๋ค์ด์ผ ํ๋์?
A. Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์ ๋ง ์๊ธฐ์ฝ๊ฒ ์ค๋ช
ํด ๋๋ฆฝ๋๋ค.
Q. Jetpack Library์ ํน์ง์ ๋ฌด์์ธ๊ฐ์?
A. ์๋๋ก์ด๋๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ์์ ํ๊ฒ ํ๋ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ๊ตฌ๊ธ์ด ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์ ์ ์ธ ์ ์ง๋ณด์๊ฐ ์ด๋ฃจ์ด์ง๋ ์ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค.
Q. ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ ์ค๋นํด์ผ ํ ๊ฒ์ด ์๋์?
A. ์ปดํจํฐ์ ์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ์ค์นํด ์ฃผ์ธ์. ์ฝํ๋ฆฐ์ ๊ธฐ๋ณธ๋ฌธ๋ฒ์ ๋ฏธ๋ฆฌ ๊ณต๋ถํ๊ณ ์ค์๋ฉด ๋ ์ข์ต๋๋ค.