์ผ๋ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ: Android์ฉ ์ฑ ๋ง๋ค๊ธฐ
Android ์ฑ ๊ฐ๋ฐ ์ค์ ์ง๋ฉดํ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ ์ฐพ์๋ณด์ธ์. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ UI, ์ฑ๋ฅ, ๋๋ฒ๊น ๋ฑ๊ณผ ๊ฐ์ ์ฃผ์ ๋ฅผ ๋ค๋ฃน๋๋ค.

Android ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
์ํํ Android ์ฑ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ํด์๋ ์ ์ ํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์์ ์ ํจ์จ์ฑ๊ณผ ํจ์จ์ฑ์ ๋ณด์ฅํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
์ ํฉํ IDE ์ ํ
์์ํ๊ธฐ ์ ์ ํ๋ก์ ํธ์ ์ ํฉํ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ์ ํํ์ธ์. Android Studio ๋ Google์ด ๊ถ์ฅํ๋ ๊ณต์ IDE์ด๋ฉฐ ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ๊ณผ ์ง์์ ์ ๊ณตํฉ๋๋ค. ๋๋ ์ ํธ๋์ ๋ฐ๋ผ IntelliJ IDEA ๋๋ Visual Studio Code์ ๊ฐ์ ๋ค๋ฅธ IDE๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ๊ณผ Google์ ์ง์ ์ ์ธ ์ง์์ผ๋ก ์ธํด ์ผ๋ฐ์ ์ผ๋ก Android Studio ๊ถ์ฅํฉ๋๋ค.
ํ์ SDK ๋ฐ ๋๊ตฌ ์ค์น
ํจ์จ์ ์ธ ์ฑ ๊ฐ๋ฐ์ ์ํด์๋ ์ ์ ํ SDK(์ํํธ์จ์ด ๊ฐ๋ฐ ํคํธ) ๋ฐ ๋๊ตฌ๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. Android SDK ์ฑ ๊ตฌ์ถ, ํ ์คํธ, ๋๋ฒ๊น ์ ํ์ํ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํ์์ ์ ๋๋ค. ๋ํ Gradle ๋น๋ ์์คํ ์ด ํฌํจ๋ Android Studio ์ Java Development Kit (JDK) ํ์ํฉ๋๋ค.
AVD(Android ๊ฐ์ ์ฅ์น) ์ค์
๊ฐ๋ฐ ์ค์ ์ฑ์ ์ฑ๊ณต์ ์ผ๋ก ํ ์คํธํ๋ ค๋ฉด Android Virtual Device (AVD) ์ฌ์ฉํ์ธ์. ์ด ์๋ฎฌ๋ ์ดํฐ ์ฅ์น๋ ๋ค์ํ ์ ํ์ Android ์ฅ์น๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์ฑ์ ํธํ์ฑ, ์ฑ๋ฅ ๋ฐ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค. ์ต์ ๋ฒ์ ์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ๊ณ ๋ค์ํ ์ฅ์น ๊ตฌ์ฑ์ ๋ณต์ ํ๋๋ก ๋ค์ํ ์๋ฎฌ๋ ์ดํฐ ์ธ์คํด์ค๋ฅผ ๊ตฌ์ฑํ์ญ์์ค.
๋ฒ์ ์ ์ด ์์คํ ๊ตฌ์ฑ
๋ฒ์ ์ ์ด ์์คํ (VCS)์ ์ฝ๋ ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ํ ๊ตฌ์ฑ์๊ณผ ํ๋ ฅํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. GitAndroid Studio ์ ์ ํตํฉ๋๋ ์ธ๊ธฐ ์๋ VCS์ ๋๋ค. ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ํ์ ์ ์ํด Git ์ฌ์ฉํ๋ ค๋ฉด ๋ฆฌ๋ชจ์ปจ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํ๋์ง ํ์ธํ์ธ์.
UI ๋ฐ UX ๋ฌธ์ ํด๊ฒฐ
๊ณ ํ์ง์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ฉด ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ(UX) ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ UI ๋ฐ UX ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Android ๋์์ธ ์ง์นจ์ ๋ฐ๋ฅด์ธ์. ์ฑ์ด Android์ ๋์์ธ ์ง์นจ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋์ง ํ์ธํ์ธ์. ์ง์นจ์ ๋ฐ๋ฅด๋ฉด ์ฑ ์ ์ฒด์ ์ผ๊ด๋ ๋ชจ์๊ณผ ๋๋์ด ์์ฑ๋๊ณ ๋ค๋ฅธ Android ์ฑ๊ณผ์ ์ํํ ์ํธ ์์ฉ์ด ๋ณด์ฅ๋ฉ๋๋ค.
- ๋จ์์ฑ ์์น ํ์ฉ: ํต์ฌ ๊ธฐ๋ฅ์ ๋ช ํํ๊ฒ ์ด์ ์ ๋ง์ถฐ ์ฑ์ ๋์์ธํ๊ณ ๋ถํ์ํ ํผ๋์ ํผํ์ธ์. ํ์ ์์์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊น๋ํ๊ณ ๊ฐ๋จํ๊ฒ ์ ์งํ์ธ์. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์์ ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ๋ฐ์ํ ๋ ์ด์์ ์ ํ: ํ๋ฉด ํฌ๊ธฐ์ ํด์๋๊ฐ ๋ค์ํ Android ๊ธฐ๊ธฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ ์ด์์์ ์ ํํ๋ ๊ฒ์ด ํ์์ ๋๋ค. Android์ RelativeLayout, LinearLayout ๋๋ ConstraintLayout์ ์ฌ์ฉํ์ฌ ์ฑ์ UI๋ฅผ ๋์์ธํ๊ณ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์๋ ์กฐ์ ์ ํ์ฑํํ์ธ์.
- ํ์ ํ๋ฆ ๊ฐ์ : ์ํํ ํ์์ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ๋ ผ๋ฆฌ์ ์ด๊ณ ์ง๊ด์ ์ธ ํ์ ํ๋ฆ์ ๊ฐ์ถ ์ฑ์ ์ฌ์ฉ์์๊ฒ ๋์ฑ ์น์ํฉ๋๋ค. BottomNavigationView์ ๊ฐ์ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ํ์ฉํ์ฌ ์ฑ ์ ์ฒด์์ ๋ช ํํ๊ณ ๊ฐ๋จํ ํ์์ ๋ง๋ญ๋๋ค.
- ์ ๋ ฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ญ์์ค. ์ ๋ ฅ ์ฒ๋ฆฌ๋ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์นํ์ ์ธ ์ ๋ ฅ ํ๋๋ฅผ ์ ๊ณตํ๊ณ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ธํ์ธ์.
๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ๋ํด ์ ์ ํ ์ ๋ ฅ ํ๋๋ฅผ ๊ตฌํํ๊ณ , ์ ๋ ฅ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ์๋ดํ ์ ์๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.

์ฑ ์ฑ๋ฅ ๋ฐ ์ต์ ํ ๊ด๋ฆฌ
ํ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด์๋ ์ต์ ์ ์ฑ ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ฑ ์ฑ๋ฅ๊ณผ ์ต์ ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ๋กํ์ผ๋ง ๋๊ตฌ ์ฌ์ฉ: Android Studio Profiler์ ๊ฐ์ ํ๋กํ์ผ๋ง ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ์ฑ ์ฑ๋ฅ์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ธ์. CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋คํธ์ํฌ ํธ๋ํฝ๊ณผ ๊ฐ์ ์งํ๋ฅผ ๋ถ์ํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ ๊ทธ์ ๋ฐ๋ผ ํด๊ฒฐํฉ๋๋ค.
- ์ด๋ฏธ์ง ์ต์ ํ: ๋์ฉ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๊ฐ ๋ง์์ง๊ณ ๋ก๋ฉ ์๊ฐ์ด ๋๋ ค์ง ์ ์์ต๋๋ค. ์ ์ ํ ์์ถ ๊ธฐ์ ๊ณผ ํ์ผ ํ์์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ์ญ์์ค. ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์ํด ์ฐ์ํ ๋ฌด์์ค ๋ฐ ์์ค ์์ถ์ ์ ๊ณตํ๋ ์ต์ ์ด๋ฏธ์ง ํ์์ธ WebP์ ๋ํ Android์ ๋ด์ฅ ์ง์์ ํ์ฉํ์ธ์.
- ์ค์ฒฉ ๋ ์ด์์ ์ต์ํ: ์ค์ฒฉ ๋ ์ด์์์ ๋ ๋๋ง ๋ฌธ์ ์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ๊น์ ์ค์ฒฉ ์์ค์ ํผํ๊ณ ConstraintLayout์ ์ฌ์ฉํ์ฌ ํ๋ฉด์ ์ด๊ณ ํจ์จ์ ์ธ UI ๊ตฌ์กฐ๋ฅผ ๋ง๋์ธ์.
- ๋ฉํฐ์ค๋ ๋ฉ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค ๊ตฌํ: ๋ฌด๊ฑฐ์ด ์์ ์ ๋ฉ์ธ(UI) ์ค๋ ๋์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋๋ก ์คํ๋ก๋ํ์ฌ UI ์ ์ง๋ฅผ ๋ฐฉ์งํ๊ณ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค. AsyncTask ๋๋ Coroutine๊ณผ ๊ฐ์ Android์ ์ค๋ ๋ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ค๋ ๋ ์์ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ๊ด๋ฆฌํ์ธ์.
- ๋ฐ์ดํฐ ์บ์ ๋ฐ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฌ์ฉ: ์ฑ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ต์ ํํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ต์ํํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ํจ์จ์ ์ธ ์ ์ฅ ๋ฐ ๊ฒ์์ ์ํด ์ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๋์์ ๋คํธ์ํฌ ๋ฐ ๊ณ์ฐ ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ๋ฅํ ํ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ์ธ์. RecyclerView๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถ๋๋ฌ์ด ์คํฌ๋กค๊ณผ ์ต์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ผ๋ก ๋ชฉ๋ก์ ํ์ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ Android ์ฑ์ ์ต์ ํํ๋ฉด ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๋ ๋์ ๋ง์กฑ๋๋ฅผ ๋ณด์ฅํ ์ ์์ต๋๋ค. AppMaster ์ ์ฝ๋ ์๋ ํ๋ซํผ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์ํํ ํ๋ซํผ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ์ค๊ณํ๊ณ Android ์ฑ์ ๋ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ผ๋ก ๋ง๋๋ ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ค์ํ ์ฅ์น์์ ํธํ์ฑ ๋ณด์ฅ
Android ์ฑ ๊ฐ๋ฐ์ ๊ฐ์ฅ ์ค์ํ ์ฅ์ ๊ณผ ๊ณผ์ ์ค ํ๋๋ ๊ด๋ฒ์ํ ์ง์ ์ฅ์น์ ๋๋ค. ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ, ํด์๋, ํ๋์จ์ด ๊ตฌ์ฑ์ผ๋ก ์ธํด ๊ฐ๋ฐ์๋ ์ฑ์ด ๋ค์ํ ์ฅ์น์ ํธํ๋๋๋ก ๋ถ์ง๋ฐํ ์์ ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ทจํด์ผ ํ ๋ช ๊ฐ์ง ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ํด์๋๋ฅผ ์ํ ๋์์ธ
์ฑ์ UI๊ฐ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ๋ง๊ฒ ์ ์ ํ๊ฒ ํ์ฅ๋๋์ง ํ์ธํ์ธ์. ์ด๋ฅผ ๋ฌ์ฑํ๋ ค๋ฉด ๋ ์ด์์์ ์ ์ํ ๋ ์ ๋ ํฝ์ ๋์ ๋ฐ๋ ๋ ๋ฆฝ์ ํฝ์ (dp)์ ์ฌ์ฉํ๊ณ , ํ์ง ์ ํ ์์ด ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ์ ์ํ ์ ์๋ ๊ทธ๋ํฝ์ฉ ํ์ฅ ๊ฐ๋ฅํ ๋ฒกํฐ ๊ทธ๋ํฝ(SVG) ๋๋ Drawable ๊ตฌ์ฑ ์์๋ฅผ ํ์ฉํ์ธ์.

Android ์๋ฎฌ๋ ์ดํฐ์ ์ค์ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ํธํ์ฑ ํ ์คํธ
๊ฐ๋ฅํ ๋ชจ๋ Android ๊ธฐ๊ธฐ์์ ์ฑ์ ํ ์คํธํ ์๋ ์์ง๋ง Android Emulator์ ๋ค์ํ ์ค์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ์ด ๋๋ถ๋ถ์ ๊ธฐ๊ธฐ์์ ์ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ, ํด์๋, ํ๋์จ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์๋ฎฌ๋ ์ดํธ๋ ๊ธฐ๊ธฐ์์ ์ฑ์ ํ ์คํธํ๊ณ ์ค์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ๊ณผ ํธํ์ฑ์ ์ถ๊ฐ๋ก ํ๊ฐํ์ธ์.
๋ฐ์ํ ๋ ์ด์์ ์ฑํ
๋ฐ์ํ ๋ ์ด์์์ ํ๋ฉด ํฌ๊ธฐ์ ์๋์ผ๋ก ์ ์ํ๋ฏ๋ก ์ฑ์ด ๋ชจ๋ ๊ธฐ๊ธฐ์์ ๋ณด๊ธฐ ์ข๊ฒ ํ์๋ฉ๋๋ค. ๋ฐ์ํ ๋์์ธ์ ๋ํ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ Android Studio ์์ ์ ์ฝ ์กฐ๊ฑด ๋ ์ด์์์ ์ฌ์ฉํด ๋ณด์ธ์. Android์ ๋ด์ฅ๋ ๋ ์ด์์๊ณผ LinearLayout, RelativeLayout, FrameLayout ๋ฑ์ ViewGroup ๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฑ ๋์ ์ด๊ณ ์ ์์ฑ์ด ๋ฐ์ด๋ UI๋ฅผ ๋ง๋์ธ์.
Android ํธํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ
AndroidX ๋ฐ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ Android ํธํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฑ์ด ๋ค์ํ Android ๋ฒ์ ๋ฐ ๊ธฐ๊ธฐ์ ํธํ๋๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ Android ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ต์ Android API์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ฑ ๊ถํ ๋ฐ API ์์ค์ ๋ํ Android ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
์ฑ์ด ๋ค์ํ ๊ธฐ๊ธฐ์ Android ๋ฒ์ ์์ ์์๋๋ก ์๋ํ๋๋ก ํ๋ ค๋ฉด ์ฑ ๊ถํ์ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฒญํ๊ณ ์ ์ ํ API ์์ค์ ํ๊ฒํ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. Android 6.0(Marshmallow)์ ๋์ ๋ ๋ฐํ์ ๊ถํ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์๊ฒ ํ์์ ๋ฐ๋ผ ๊ถํ์ ๋ถ์ฌํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋์ด ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ์ ๋ขฐ๊ฐ ํฅ์๋ฉ๋๋ค. ๋ํ ์ต์ Android ๋ฆด๋ฆฌ์ค์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ์ด์ ๋ฐ๋ผ ์ฑ์ targetSdkVersion์ ์ ๋ฐ์ดํธํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ต์ ํ๋ฅผ ํ์ฉํ์ธ์.
์ฑ ์ถฉ๋ ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ
์ฑ ์ถฉ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ํ์์ผ ์ฑ ํํ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ถฉ๋ ๋ฐ ๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋๋ฒ๊น ๊ธฐ์ ๊ณผ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Android Studio ์ ๋ด์ฅ ๋๋ฒ๊น ๋๊ตฌ ์ฌ์ฉ
Android Studio ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฐ๋ ฅํ ๋๋ฒ๊น ๋๊ตฌ ๋ชจ์์ด ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ์๋ ์ฑ ๋ก๊ทธ ๋ชจ๋ํฐ๋ง์ ์ํ Logcat, ํน์ ์ง์ ์์ ์ฝ๋ ์คํ์ ์ผ์ ์ค์งํ๊ธฐ ์ํ ์ค๋จ์ , ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ชจ๋ํฐ๋ง์ ์ํ ๋คํธ์ํฌ ํ๋กํ์ผ๋ฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
Android ๋๋ฒ๊ทธ ๋ธ๋ฆฌ์ง(adb) ํ์ฉ
Android ๋๋ฒ๊ทธ ๋ธ๋ฆฌ์ง(adb)๋ Android ๊ธฐ๊ธฐ ๋ฐ ์๋ฎฌ๋ ์ดํฐ์ ํต์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค๋ชฉ์ ๋ช ๋ น์ค ๋๊ตฌ์ ๋๋ค. adb๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ์ ์ค์น ๋ฐ ์ ๊ฑฐํ๊ณ , ์ฅ์น ์ํ๋ฅผ ์ ์ดํ๊ณ , ๋ก๊ทธ์ ์ก์ธ์คํ๊ณ , ๋ค์ํ ๋๋ฒ๊น ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๊ณ ๋๋ฒ๊น ๋ ธ๋ ฅ์ ํฅ์ํ๋ ค๋ฉด adb์ ์ต์ํด์ง์ธ์.
ํ์ฌ ์ถฉ๋ ๋ณด๊ณ ๋๊ตฌ ํ์ฉ
Android Studio ์ ๋ด์ฅ๋ ๋๊ตฌ ์ธ์๋ Firebase Crashlytics, Bugsnag ๋๋ Instabug์ ๊ฐ์ ํ์ฌ ์ถฉ๋ ๋ณด๊ณ ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๋น์ค๋ ์ถฉ๋ ๋ก๊ทธ๋ฅผ ์์งํ๊ณ ์ถฉ๋ ํจํด์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ์ฌ ๋ฌธ์ ๋ฅผ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
ํ๋ก๋์ ์์ ์ฑ์ ๋ชจ๋ํฐ๋งํ์ธ์
ํ๋ก๋์ ํ๊ฒฝ์์ ์ฑ์ด ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. Firebase Performance Monitoring ๋๋ New Relic๊ณผ ๊ฐ์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ์กฐ๊ฑด์์ ์ฑ์ ๋ํ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์ต์ ํํ์ธ์.
์คํ ์ถ์ ์ฝ๊ธฐ ๋ฐ ์ดํด
์ฑ์ด ์ถฉ๋ํ๋ฉด ์ถฉ๋ ์์ธ์ ๋ํ ๊ท์คํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์คํ ์ถ์ ์ด ์์ฑ๋ฉ๋๋ค. ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ์๋ณํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ์คํ ์ถ์ ์ ์ฝ๊ณ ์ดํดํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์. ๋ํ ์์ฑ๋ ๋ก๊ทธ๊ฐ ๋ฌธ์ ๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋๋ก ์๋ฏธ ์๋ ๋ก๊ทธ ๋ฌธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
๋ณด์ ๋ฐ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ฒ๋ฆฌ
Android ์ฑ ๊ฐ๋ฐ์๋ก์ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๋ณด์๊ณผ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ์ค์ํ ์ฑ ์์ ๋๋ค. ์์ ํ ์ฑ์ ์ ์งํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ํธํ: ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ ์ก ์ค์ธ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ํธํํฉ๋๋ค. Android ํค ์ ์ฅ์ ์์คํ ๋๋ ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ Android์ ๋ด์ฅ๋ ์ํธํ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๊ธฐ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ์ธ์. ๋ณด์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ํด SSL/TLS๋ฅผ ์ฌ์ฉํ๊ณ ์ธ์ฆ์ ๊ณ ์ ์ ์ฌ์ฉํ์ฌ ์ค๊ฐ์ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ์ ์ ํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๊ตฌํ: OAuth 2.0 ๋๋ OpenID Connect์ ๊ฐ์ ๋ณด์ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ณ์ ์ ๋ณดํธํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฑ ๋ด์์ ์ ์ ํ ๋ฆฌ์์ค์ ๊ธฐ๋ฅ์๋ง ์ก์ธ์คํ ์ ์๋๋ก ์ธ๋ถํ๋ ์ก์ธ์ค ์ ์ด๋ฅผ ๊ตฌํํ์ธ์.
- Android ๋ณด์ ๊ดํ ๋ฐ ํจ์น์ ๋ํ ์ต์ ์ ๋ณด ์ ์ง: ์ต์ Android ๋ณด์ ์ง์นจ ๋ฐ ํจ์น๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ธ์. Android ๊ฐ๋ฐ์๋ก์ ์์ ํ ์ฑ์ ์ ์งํ๋ ค๋ฉด ์๋ก์ด ์ํ๊ณผ ์ทจ์ฝ์ฑ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
- ์ฌ์ฉ์ ์ ๋ ฅ ๊ฒ์ฆ ๋ฐ ์ผ๋ฐ์ ์ธ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธ: ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ฒ์ฆ์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ผ๋ฉด SQL ์ฃผ์ ๋๋ XSS(๊ต์ฐจ ์ฌ์ดํธ ์คํฌ๋ฆฝํ )์ ๊ฐ์ ๋ค์ํ ๊ณต๊ฒฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ, ์ถ๋ ฅ ์ด์ค์ผ์ดํ, ์ค๋น๋ ๋ฌธ, ๋งค๊ฐ๋ณ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ํ์ผ๋ก๋ถํฐ ์ฑ์ ๋ณดํธํ์ธ์.
- ๊ธฐ์กด ๋ณด์ ์๋ฃจ์ ํ์ฉ: ํนํ Android ์ฑ ๊ฐ๋ฐ์ ์ํด ๋ง์ ๋ณด์ ์๋ฃจ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. AppMaster ํ๋ซํผ์ ๋ณด์ ๊ธฐ๋ฅ์ด๋ Firebase์ ๋ณด์ ๊ท์น๊ณผ ๊ฐ์ ์๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ์ ์ ํ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฐ ์ฌ์ฉ์ ์ธ์ฆ์ ๋ณด์ฅํ์ธ์. ์ ๋ขฐํ ์ ์๋ ๊ธฐ์กด ์๋ฃจ์ ์ ์ฑํํ๋ฉด ๊ฐ๋ ฅํ ๋ณด์๊ณผ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ฅผ ๋ณด์ฅํ๋ ๋์์ ํจ๊ณผ์ ์ด๊ณ ์์ต์ฑ ์๋ ์ฑ์ ๋ง๋๋ ๋ฐ ๋ ์ง์คํ ์ ์์ต๋๋ค.
Android ์ฑ์ ๊ฐ๋ฐํ๋ ค๋ฉด ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ฑ ์ถฉ๋์ ๋๋ฒ๊น ํ๊ณ , ์ ์ ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. ์์์ ์ค๋ช ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ฅผ ๊ธฐ์๊ฒ ํ๊ณ ๊ฒฝ์์ด ์น์ดํ ์ฑ ์์ฅ์์ ๋๊ฐ์ ๋ํ๋ด๋ ์์ ํ๊ณ ํธํ๋๋ Android ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ผ๋ฐ์ ์ธ ๋ฌธ์ ์๋ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ , UI ๋ฐ UX ๋ฌธ์ ํด๊ฒฐ, ์ฑ ์ฑ๋ฅ ๋ฐ ์ต์ ํ ๊ด๋ฆฌ, ๋ค์ํ ์ฅ์น์์ ํธํ์ฑ ๋ณด์ฅ, ์ฑ ์ถฉ๋ ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ, ๋ณด์ ๋ฐ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฌธ์ ์ฒ๋ฆฌ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
Android Studio ํ๋กํ์ผ๋ฌ์ ๊ฐ์ ํ๋กํ์ผ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ , ์ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ , ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ๊ณ , ์ค์ฒฉ ๋ ์ด์์ ์ฌ์ฉ์ ์ต์ํํ๊ณ , ๋ฉํฐ์ค๋ ๋ฉ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ ์ธ ์ฑ ์ฑ๋ฅ์ ํฅ์ํ์ธ์.
๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ๋ง๊ฒ ๋์์ธํ๊ณ , Android Emulator๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๊ธฐ๊ธฐ์์ ํ ์คํธํ๊ณ , ๋ฐ์ํ ๋ ์ด์์์ ์ฑํํ๊ณ , Android ํธํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๊ณ , ์ฑ ๊ถํ ๋ฐ API ์์ค์ ๋ํ Android ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
Logcat, ์ค๋จ์ , Android ๋๋ฒ๊ทธ ๋ธ๋ฆฌ์ง(adb) ๋ฑ Android Studio ์ ๋ด์ฅ๋ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ ๋์์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ณด์ธ์. ์ถ๊ฐ ํต์ฐฐ๋ ฅ์ ์ป๊ธฐ ์ํด ํ์ฌ ์ถฉ๋ ๋ณด๊ณ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ , ๋ณด์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๊ณ , ์ ์ ํ ์ธ์ฆ ๋ฐ ์น์ธ์ ๊ตฌํํ๊ณ , Android ๋ณด์ ์ง์นจ ๋ฐ ํจ์น๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๊ณ , ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ฒ์ฆํ์ฌ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ์ธ์.


