์น์ ํ JETPACK ๊ฐ์!
์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ,
Jetpack์ ๋ฐฐ์๋ณผ๊น์?
![](https://developer.android.com/images/hero-assets/android-jetpack.svg?hl=ko)
Jetpack์ ๊ฐ๋ฐ์๊ฐ ๊ด์ฌ ์๋ ์ฝ๋์ ์ง์คํ ์ ์๋๋ก ๊ถ์ฅ์ฌํญ ์ค์, ์์ฉ๊ตฌ ์ฝ๋ ์ถ์, ๋ชจ๋ Android ๋ฒ์ ๋ฐ ๊ธฐ๊ธฐ์์ ์ผ๊ด๋๊ฒ ์๋ํ๋ ์ฝ๋ ์์ฑ์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์์
๋๋ค.
์ด ๊ฐ์๋ ์๋๋ก์ด๋(Android) ์ฑ ๊ฐ๋ฐ์ ๋ง์ด ์ฌ์ฉํ๋ Jetpack์ ํ์ตํ๋ ๊ฐ์์
๋๋ค. Jetpack์ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์ ํ๋๋ฐ ๋ค์ํ ํธ์๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์๋๋ก์ด๋๊ฐ ๋ก์ผ์ ํ๊ณ ๋ ์๊ฐ๋ ๊ทธ๋ฆผ์์ ์ ์ถํ ์ ์๋ฏ์ด, Jetpack์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์ ํธ์์ฑ๊ณผ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค. ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ ๋จ๊ณ ๋ ์
๊ทธ๋ ์ด๋ ํ๊ณ ์ถ์ ๋ถ์๊ฒ ์ถ์ฒ๋๋ฆฝ๋๋ค.
์ด๋ฏธ ๋ง์ ๊ธฐ์
์์
Jetpack์ ์ฌ์ฉํ๊ณ ์์ด์.
![](https://cdn.inflearn.com/public/files/courses/328890/d095d80c-ce49-4806-be23-a85483aff84f/๋์ง 1.png)
์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ฑ์ฉ ์ง์์๊ฒฉ
์ง์์๊ฒฉ์ Android Jetpack ๊ฒฝํ ์๊ตฌ๋ฅผ ์์ฃผ ๋ณผ ์ ์์ด์.
"Google์ Android ์ํคํ
์ฒ ๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ์ฑ์ ๋ค์ ์ค๊ณํ๊ณ ์์ต๋๋ค. ๊ตฌ์ฑ ๋ณ๊ฒฝ์ ์ฝ๊ฒ ์ง์ํ๋ Android ์ฑ์ ๋น๋ํ ์ ์๋๋ก Google์์ ๋ณด์ฆํ๋ ๋
๋ณด์ ์ด๊ณ ๊น๋ํ ๋ฐฉ๋ฒ์ด ์์ด ๊ธฐ์ฉ๋๋ค."
๋๋ฃจ ํ๋ค์ด, LinkedIn์ ์ํํธ์จ์ด ์์ง๋์ด
"Android ๊ตฌ์ฑ์์ ์ํคํ
์ฒ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ฉด์ ๋ฏผ์ฒฉํ๊ฒ ๋์ํ ์ ์์๊ณ ๋ฉ๊ธฐ ์๊ฐ์ด ํฅ์๋์์ต๋๋ค. ๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํจ์ ๋ฐ๋ผ ์ ๋ฐ์ ์ธ ์๋๊ฐ ๊ณ์ ๋นจ๋ผ์ง๊ณ ์์ต๋๋ค."
๋น์์๋ํธ ๋ผ๋ง๋ผ์ค, Hike์ CTO
"์ฌ๋ฌ ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํด ์๋๋ฐ Room์ ํตํด ํฐ ๊ฐ์ ์ ์ด๋ฃฐ ์ ์์์ต๋๋ค. ํ
์คํธ ๊ธฐ๋ฅ์ ์ด์ ์ ๋ ์ ์ด ์ ์ผ ๋ง์ ๋ญ๋๋ค."
์ค๋ ๋กํผ, Tinder์ Android ํ๋ซํผ ์ฑ
์์
"Room์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ๊ณผ DAO ์์ฑ์ด ํจ์ฌ ๊ฐ๋จํด์ ธ ์ ํ์ ๋น ๋ฅด๊ฒ ๋น๋ํ ์ ์์ต๋๋ค. ํ
์คํธ ๊ธฐ๋ฅ์ ์ด์ ์ ๋ ์ ๋ ์ ํฌ์๊ฒ ์ค์ํฉ๋๋ค."
ํฉ์ธ์ฑ(๋ฐ๋ฏธ์ ํฉ), ์นด์นด์คํก์ ์นด์นด์คํก ๊ฐ๋ฐ์
๊ธฐ์
๋ณ Jetpack ์ด์ฉ ํ๊ธฐ โAndroide developers
๋ค์ํ ๊ธฐ์
์์ Jetpack์ ์ฌ์ฉ ์ค์ด์์.
๋๊ตฌ๋ฅผ ์ํ ๊ฐ์์ธ๊ฐ์?
์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์๋ก ์ทจ์ง ์ค๋น ์ค์ธ ๋ถ
JETPACK์ ํ์ต์ ์ด๋ ค์์ ๊ฒช์ ๋ถ
๊ตฌ๊ธ ๊ณต์๋ฌธ์๋ง์ผ๋ก๋ ๊ฐ์ ์ก๊ธฐ ์ด๋ ค์ด ๋ถ
๊ฐ์ ํน์ง โจ
โ๏ธ ๊ฐ์๋ฅผ ์์๋๋ก ํ์ตํ ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
๊ฐ๋จํ JETPACK์ ์ด์ฉํ ํ๋ก์ ํธ ๊ฐ์ ๊ฒฝ์ฐ ๋ง์ ๊ณณ์์ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ค๋ง, ์ฌ๋ฌ๊ฐ์ง ๊ฐ๋
์ด ํผํฉ๋์ด ์ฌ์ฉ๋๊ณ , ํ๋ฒ์ ํ๋์ฉ ์์ฐจ์ ์ผ๋ก ํ์ตํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ฐ์๋ฅผ ํตํด ์์๋๋ก ๊ด๋ จ ๊ฐ๋
์ ํ๋์ฉ ํ์ตํ ์ ์๋๋ก ํ์์ต๋๋ค.
โ๏ธ ์ ์ฐ๋์ง์ ๋ํด์ ๋ง์ด ๋ฃ์ผ๋ ค๊ณ ํ์ต๋๋ค.
๋จ์ํ ๊ธฐ๋ฅ ์ค๋ช
์์ ๋ฒ์ด๋, '์' ์ฐ๋์ง์ ๋ํด ์์ธํ ์์๋ด
๋๋ค. ์ง๊ด์ ์ผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉํ๊ณ ์ ์ฌ์ฉํ๋์ง์ ๋ํด ๋น ๋ฅด๊ฒ ํ์ตํ์ค ์ ์๋๋ก ๊ฐ์๋ฅผ ๊ตฌ์ฑํ์ด์.
โ๏ธ ์๊ฐ ํธ์๋ฅผ ์ํ์ฌ ๋
ธ์
์ผ๋ก ๊ฐ์์ฝ๋๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค.
๊ฐ๊ฐ์ ์์ ๋ณ๋ก ๋
ธ์
์ ์ฝ๋๋ฅผ ์ ๋ฆฌํด์ ๋น ๋ฅด๊ฒ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ํ์ตํ ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
์ด๋ฐ ๊ฑธ ๋ฐฐ์์!
- View์ ๋ํ ์ ๊ทผ(ViewBinding / DataBinding / ViewModel / LiveData)
- View์ ViewModel
- View / ViewModel๊ณผ LiveData ํจ๊ป ์ฌ์ฉ
- Retrofit (์ฝ๊ฐ์ Coroutine๊ณผ ViewModelScope)
- ROOM
- WorkManager
- Navigation
์์ ์ง๋ฌธ Q&A ๐ฌ
Q. ์ ์์ง์์ด ํ์ํ ๊น์?
A. Kotlin์ผ๋ก ๊ฐ๋จํ ์๋๋ก์ด๋ ์ฑ์ ๊ฐ๋ฐํด๋ณด์ ๋ถ์ด ๋ค์ด์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ฌด ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ์ธ ์ฌํญ์ ๋ํด์๋ ์ค๋ช
ํ์ง ์์ต๋๋ค.
Q. ์ ์๊ฒ ๋์์ด ๋๋ ๊ฐ์์ผ์ง ๋ชจ๋ฅด๊ฒ ์ด์.
A. ์ด๋ฐ ๋ถ๋ค์๊ฒ ์ถ์ฒ๋๋ ค์.
- ์๋๋ก์ด๋ ๊ธฐ๋ฅ์ ์ด๋ก ์ ์ธ ๋ถ๋ถ์ ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ
- ์๋๋ก์ด๋ ๊ฐ๋ฐ์๋ก ์ทจ์
์ ์ค๋นํ๊ณ ์์ผ๋, JETPACK ๊ด๋ จ ํญ๋ชฉ์ ๋ํด ๋ฐฐ์ด ์ ์ด ์๋ ๋ถ
- ๊ตฌ๊ธ ๊ฐ๋ฐ์ ๊ณต์๋ฌธ์ ๋ง์ผ๋ก ํ์ต์ ์ด๋ ค์์ ๊ฒช์ผ์๋ ๋ถ
Q. ๊ฐ์์ ์์ค์ฝ๋๋ ๋ชจ๋ ์ ๊ณตํ๋์?
A. ์น์
0. ๊ฐ์์๊ฐ - ์์
์๋ฃ์ ๋ณด์๋ฉด ๋
ธ์
๋งํฌ์์ ๋ชจ๋ ๋ณด์ค ์ ์์ต๋๋ค.
Q. ๊ฐ์์ ์ฝ๊ฐ์ ์ฝ๋ฃจํด์ ๋ํ ๊ณผ์ ์ด ์๋๋ฐ ์ฝ๋ฃจํด์ ์ผ๋ง๋ ๊น๊ฒ ์ค๋ช
ํ๋์?
A. ์ ํฌ ๊ฐ์ ๊ณผ์ ์ ์๋ ViewModel / ROOM / Retrofit / WorkManager์ ํจ๊ป ์ฐ๋ ๋ฐฉ๋ฒ ์ค์ฌ์ผ๋ก ๊ณต์ ๋๋ฆฝ๋๋ค. ์ฝ๋ฃจํด์ ๋ํ ์ด๋ก ์ด ๋ง์ง๋ ์์ต๋๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด ์ฝ๋ฃจํด์ ์ค์ฌ์ผ๋ก ํ๋ ํ์ ๊ฐ์๋ฅผ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
Q. ๊ฐ์ ๋์ด๋๊ฐ [์ค๊ธ]์ธ๋ฐ, ์ค๋ฌด์ ์ธ ํ
ํฌ๋์ด ๋ง์ด ์๋์?
A. ๊ฐ์ ๋ถ๋ฅ ํธ์์ "์ค๊ธ"์ผ๋ก ์ค์ ํด๋จ์ต๋๋ค๋ง, JETPACK ๊ฐ๋ก ์ด๋ผ๋ ์ด๋ฆ์ฒ๋ผ ์ ์ฒด์ ์ธ ๋ด์ฉ์ ๋ค์ํ๊ฒ ๋ณด๊ณ ๋์ด๊ฐ๋ ํํ๋ก ๊ตฌ์ฑํ์ต๋๋ค. ๋ด์ฉ์ ์์ฒญ๋๊ฒ ๊น๊ฒ ํ๊ณ ๋ค์ด๊ฐ์ง๋ ์์ต๋๋ค.
Q. <์> ํธ๊ณผ <ํ> ํธ์ด ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?
A. <์>ํธ์์ ๋ค์ํ ์ด๋ก ์ ์ธ ๋ถ๋ถ๊ณผ ์์ ๋ฅผ ํ์ตํ๊ณ <ํ> ํธ์์ ๋ฐฐ์ด ๊ฒ๋ค์ ํตํด์ ์ฑ์ ์ฌ๋ฌ๊ฐ์ง ๋ง๋ค์ด๋ณผ ๊ณํ์
๋๋ค.
์๋ฆฌ์ฆ ๊ณผ์ ์ผ๋ก
์ฐจ๊ทผ์ฐจ๊ทผ ํ์ต ๐งฐ
์ด ๊ฐ์๋ฅผ ์๊ฐํ์๊ณ , ์ข ๋ ์ค์ ์ ์ธ ๋ถ๋ถ์ ๋ฐฐ์ฐ๊ณ ์ถ์ผ์ ๋ถ๋ค์ ์ํด ์๊ฐํ์๊ณ ๋ ๋์๊ฐ๊ธฐ ๊ณผ์ ์ ์ค๋น์ค์
๋๋ค.
์๋์ ์์๋๋ก ๊ฐ์๋ฅผ ์ ์์ค์ด๋ ์๊ฐ์ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
- [์
๋ฌธํธ] ์๋๋ก์ด๋๋ฅผ ์ํ ์ฝํ๋ฆฐ ๋ฌธ๋ฒ
- [์์ด๋ณดํธ] ์ฑ 8๊ฐ๋ฅผ ๋ง๋ค๋ฉด์ ๋ฐฐ์ฐ๋ ์๋๋ก์ด๋ ์ฝํ๋ฆฐ
- [์ด๊ธํธ] ์ปค๋ฎค๋ํฐ ์ฑ ๋ง๋ค๊ธฐ
- [์ด์ค๊ธํธ] ๋ฐ์ดํ
์ฑ ๋ง๋ค๊ธฐ
- [์ค๊ธํธ] ์น์ ํ JETPACK ๊ฐ๋ก <์> ํ์ฌ ๊ฐ์
- [์ค๊ธํธ] ์ฝ์ธ ๊ฐ๊ฒฉ ๋ชจ๋ํฐ๋ง ์ฑ ์ ์
- [์ค๊ธํธ] ์น์ ํ JETPACK ๊ฐ๋ก <ํ>
๊ฐ์๋ฅผ ๋ง๋
์ง์๊ณต์ ์๋ฅผ ์๊ฐํฉ๋๋ค ๐จโ๐ป
![](https://cdn.inflearn.com/public/files/courses/327300/9dbd2d3a-a471-42cf-adca-01cc7ab04013/blob)
2015๋
์คํํธ์
์ฐฝ์
์ ๊ณ๊ธฐ๋ก ๋ค์ํ ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ์์ต๋๋ค.
ํ์ฌ๋ ํํ
ํฌ ํ์ฌ์์ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์ ํ๊ณ ์์ต๋๋ค.