2023๋…„ 11์›” 21์ผยท4๋ถ„ ์ฝ๊ธฐ

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ: Android์šฉ ์•ฑ ๋งŒ๋“ค๊ธฐ

Android ์•ฑ ๊ฐœ๋ฐœ ์ค‘์— ์ง๋ฉดํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ์•„๋ณด์„ธ์š”. ์ด ์ข…ํ•ฉ ๊ฐ€์ด๋“œ์—์„œ๋Š” UI, ์„ฑ๋Šฅ, ๋””๋ฒ„๊น… ๋“ฑ๊ณผ ๊ฐ™์€ ์ฃผ์ œ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ: Android์šฉ ์•ฑ ๋งŒ๋“ค๊ธฐ

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 ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Android ๋””์ž์ธ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”. ์•ฑ์ด Android์˜ ๋””์ž์ธ ์ง€์นจ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ง€์นจ์„ ๋”ฐ๋ฅด๋ฉด ์•ฑ ์ „์ฒด์— ์ผ๊ด€๋œ ๋ชจ์–‘๊ณผ ๋А๋‚Œ์ด ์ƒ์„ฑ๋˜๊ณ  ๋‹ค๋ฅธ Android ์•ฑ๊ณผ์˜ ์›ํ™œํ•œ ์ƒํ˜ธ ์ž‘์šฉ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
  2. ๋‹จ์ˆœ์„ฑ ์›์น™ ํ™œ์šฉ: ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ๋ช…ํ™•ํ•˜๊ฒŒ ์ดˆ์ ์„ ๋งž์ถฐ ์•ฑ์„ ๋””์ž์ธํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ํ˜ผ๋ž€์„ ํ”ผํ•˜์„ธ์š”. ํ•„์ˆ˜ ์š”์†Œ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊น”๋”ํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ ์„ ํƒ: ํ™”๋ฉด ํฌ๊ธฐ์™€ ํ•ด์ƒ๋„๊ฐ€ ๋‹ค์–‘ํ•œ Android ๊ธฐ๊ธฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. Android์˜ RelativeLayout, LinearLayout ๋˜๋Š” ConstraintLayout์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์˜ UI๋ฅผ ๋””์ž์ธํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ž๋™ ์กฐ์ •์„ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.
  4. ํƒ์ƒ‰ ํ๋ฆ„ ๊ฐœ์„ : ์›ํ™œํ•œ ํƒ์ƒ‰์€ ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ํƒ์ƒ‰ ํ๋ฆ„์„ ๊ฐ–์ถ˜ ์•ฑ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋”์šฑ ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. BottomNavigationView์™€ ๊ฐ™์€ ํƒ์ƒ‰ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ฑ ์ „์ฒด์—์„œ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ํƒ์ƒ‰์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  5. ์ž…๋ ฅ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ์ž…๋ ฅ ์ฒ˜๋ฆฌ๋Š” ์›ํ™œํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์นœํ™”์ ์ธ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , ์ž…๋ ฅ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ดํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์•ฑ ์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™” ๊ด€๋ฆฌ

ํƒ์›”ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด์„œ๋Š” ์ตœ์ ์˜ ์•ฑ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์•ฑ ์„ฑ๋Šฅ๊ณผ ์ตœ์ ํ™”๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ ์‚ฌ์šฉ: Android Studio Profiler์™€ ๊ฐ™์€ ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ฑ ์„ฑ๋Šฅ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์„ธ์š”. CPU ์‚ฌ์šฉ๋Ÿ‰, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ๊ณผ ๊ฐ™์€ ์ง€ํ‘œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์‹๋ณ„ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๋ฏธ์ง€ ์ตœ์ ํ™”: ๋Œ€์šฉ๋Ÿ‰ ์ด๋ฏธ์ง€ ํŒŒ์ผ์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๊ฐ€ ๋งŽ์•„์ง€๊ณ  ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์••์ถ• ๊ธฐ์ˆ ๊ณผ ํŒŒ์ผ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์šฐ์ˆ˜ํ•œ ๋ฌด์†์‹ค ๋ฐ ์†์‹ค ์••์ถ•์„ ์ œ๊ณตํ•˜๋Š” ์ตœ์‹  ์ด๋ฏธ์ง€ ํ˜•์‹์ธ WebP์— ๋Œ€ํ•œ Android์˜ ๋‚ด์žฅ ์ง€์›์„ ํ™œ์šฉํ•˜์„ธ์š”.
  3. ์ค‘์ฒฉ ๋ ˆ์ด์•„์›ƒ ์ตœ์†Œํ™”: ์ค‘์ฒฉ ๋ ˆ์ด์•„์›ƒ์€ ๋ Œ๋”๋ง ๋ฌธ์ œ์™€ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊นŠ์€ ์ค‘์ฒฉ ์ˆ˜์ค€์„ ํ”ผํ•˜๊ณ  ConstraintLayout์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๋ฉด์ ์ด๊ณ  ํšจ์œจ์ ์ธ UI ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ์„ธ์š”.
  4. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„œ๋น„์Šค ๊ตฌํ˜„: ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ๋ฉ”์ธ(UI) ์Šค๋ ˆ๋“œ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋กœ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ UI ์ •์ง€๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์›ํ™œํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. AsyncTask ๋˜๋Š” Coroutine๊ณผ ๊ฐ™์€ Android์˜ ์Šค๋ ˆ๋”ฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ ˆ๋“œ ์ž‘์—… ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜์„ธ์š”.
  5. ๋ฐ์ดํ„ฐ ์บ์‹œ ๋ฐ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์‚ฌ์šฉ: ์•ฑ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ํšจ์œจ์ ์ธ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์‹œ์— ๋„คํŠธ์›Œํฌ ๋ฐ ๊ณ„์‚ฐ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•˜์„ธ์š”. RecyclerView๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€๋“œ๋Ÿฌ์šด ์Šคํฌ๋กค๊ณผ ์ตœ์ ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์œผ๋กœ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  Android ์•ฑ์„ ์ตœ์ ํ™”ํ•˜๋ฉด ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ๋” ๋†’์€ ๋งŒ์กฑ๋„๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ ์ฝ”๋“œ ์—†๋Š” ํ”Œ๋žซํผ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์›ํ™œํ•œ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  Android ์•ฑ์„ ๋” ๋น ๋ฅด๊ณ  ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์žฅ์น˜์™€์˜ ํ˜ธํ™˜์„ฑ ๋ณด์žฅ

๊ฒฐ์ œยท์•Œ๋ฆผ ์—ฐ๊ฒฐ
์•ฑ์— ํ•„์š”ํ•  ๋•Œ Stripe, ์ด๋ฉ”์ผ/SMS ๋˜๋Š” Telegram ํ†ตํ•ฉ์„ ์—ฐ๊ฒฐํ•˜์„ธ์š”.
ํ†ตํ•ฉ ์ฒดํ—˜

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 ์•ฑ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ๊ณผ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค. ์•ˆ์ „ํ•œ ์•ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”: ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ์ „์†ก ์ค‘์ธ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. Android ํ‚ค ์ €์žฅ์†Œ ์‹œ์Šคํ…œ ๋˜๋Š” ๋ณด์•ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€ Android์— ๋‚ด์žฅ๋œ ์•”ํ˜ธํ™” API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๊ธฐ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜์„ธ์š”. ๋ณด์•ˆ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ธ์ฆ์„œ ๊ณ ์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.
  2. ์ ์ ˆํ•œ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ตฌํ˜„: OAuth 2.0 ๋˜๋Š” OpenID Connect์™€ ๊ฐ™์€ ๋ณด์•ˆ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ ๋‚ด์—์„œ ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค์™€ ๊ธฐ๋Šฅ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ธ๋ถ„ํ™”๋œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”.
  3. Android ๋ณด์•ˆ ๊ด€ํ–‰ ๋ฐ ํŒจ์น˜์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด ์œ ์ง€: ์ตœ์‹  Android ๋ณด์•ˆ ์ง€์นจ ๋ฐ ํŒจ์น˜๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”. Android ๊ฐœ๋ฐœ์ž๋กœ์„œ ์•ˆ์ „ํ•œ ์•ฑ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด ์œ„ํ˜‘๊ณผ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฒ€์ฆ ๋ฐ ์ผ๋ฐ˜์ ์ธ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ: ์‚ฌ์šฉ์ž ์ž…๋ ฅ์˜ ๊ฒ€์ฆ์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉด SQL ์ฃผ์ž… ๋˜๋Š” XSS(๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…)์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์ถœ๋ ฅ ์ด์Šค์ผ€์ดํ”„, ์ค€๋น„๋œ ๋ฌธ, ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”๋œ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ์•ฑ์„ ๋ณดํ˜ธํ•˜์„ธ์š”.
  5. ๊ธฐ์กด ๋ณด์•ˆ ์†”๋ฃจ์…˜ ํ™œ์šฉ: ํŠนํžˆ Android ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋งŽ์€ ๋ณด์•ˆ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ์ด๋‚˜ Firebase์˜ ๋ณด์•ˆ ๊ทœ์น™๊ณผ ๊ฐ™์€ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ๋ณด์žฅํ•˜์„ธ์š”. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด ์†”๋ฃจ์…˜์„ ์ฑ„ํƒํ•˜๋ฉด ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋™์‹œ์— ํšจ๊ณผ์ ์ด๊ณ  ์ˆ˜์ต์„ฑ ์žˆ๋Š” ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Android ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์•ฑ ์ถฉ๋Œ์„ ๋””๋ฒ„๊น…ํ•˜๊ณ , ์ ์ ˆํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์˜๊ฒŒ ํ•˜๊ณ  ๊ฒฝ์Ÿ์ด ์น˜์—ดํ•œ ์•ฑ ์‹œ์žฅ์—์„œ ๋‘๊ฐ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์•ˆ์ „ํ•˜๊ณ  ํ˜ธํ™˜๋˜๋Š” Android ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Android ์•ฑ ๊ฐœ๋ฐœ ์ค‘์— ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์—๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •, UI ๋ฐ UX ๋ฌธ์ œ ํ•ด๊ฒฐ, ์•ฑ ์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™” ๊ด€๋ฆฌ, ๋‹ค์–‘ํ•œ ์žฅ์น˜์™€์˜ ํ˜ธํ™˜์„ฑ ๋ณด์žฅ, ์•ฑ ์ถฉ๋Œ ๋””๋ฒ„๊น… ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ, ๋ณด์•ˆ ๋ฐ ๋ฐ์ดํ„ฐ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฌธ์ œ ์ฒ˜๋ฆฌ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Android ์•ฑ์˜ ์„ฑ๋Šฅ๊ณผ ์ตœ์ ํ™”๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Android Studio ํ”„๋กœํŒŒ์ผ๋Ÿฌ์™€ ๊ฐ™์€ ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์‹๋ณ„ํ•˜๊ณ , ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ด๋ฏธ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ , ์ค‘์ฒฉ ๋ ˆ์ด์•„์›ƒ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋ฐ˜์ ์ธ ์•ฑ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•˜์„ธ์š”.

๊ธฐ๊ธฐ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์™€ ํ•ด์ƒ๋„์— ๋งž๊ฒŒ ๋””์ž์ธํ•˜๊ณ , Android Emulator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ , ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์„ ์ฑ„ํƒํ•˜๊ณ , Android ํ˜ธํ™˜์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๊ณ , ์•ฑ ๊ถŒํ•œ ๋ฐ API ์ˆ˜์ค€์— ๋Œ€ํ•œ Android ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”.

Android ์•ฑ์„ ๋””๋ฒ„๊น…ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

Logcat, ์ค‘๋‹จ์ , Android ๋””๋ฒ„๊ทธ ๋ธŒ๋ฆฌ์ง€(adb) ๋“ฑ Android Studio ์— ๋‚ด์žฅ๋œ ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ๋™์ž‘์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”. ์ถ”๊ฐ€ ํ†ต์ฐฐ๋ ฅ์„ ์–ป๊ธฐ ์œ„ํ•ด ํƒ€์‚ฌ ์ถฉ๋Œ ๋ณด๊ณ  ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Android ์•ฑ์˜ ๋ณด์•ˆ ๋ฐ ๋ฐ์ดํ„ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ , ๋ณด์•ˆ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜๊ณ , ์ ์ ˆํ•œ ์ธ์ฆ ๋ฐ ์Šน์ธ์„ ๊ตฌํ˜„ํ•˜๊ณ , Android ๋ณด์•ˆ ์ง€์นจ ๋ฐ ํŒจ์น˜๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๊ฒ€์ฆํ•˜์—ฌ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜์„ธ์š”.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ: Android์šฉ ์•ฑ ๋งŒ๋“ค๊ธฐ | AppMaster