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

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

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

Android ์•ฑ ๊ฐœ๋ฐœ ๋‚ด์—์„œ ๊ฐœ๋ฐœ์ž๋Š” Navigation Architecture Component ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์ธ NavController์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NavController๋Š” ํƒ์ƒ‰ ๊ตฌํ˜„๊ณผ ๋ฐฑ ์Šคํƒ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. NavController๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ์™€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ™”๋ฉด์ด ์ƒํ˜ธ ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐฉ์‹๊ณผ ํƒ์ƒ‰ ํ๋ฆ„์ด ์ง„ํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ NavController๋Š” ๋ฐฑ ์Šคํƒ์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ํ™œ๋™๊ณผ ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ์ ์ ˆํ•œ ์ˆœ์„œ์™€ ์ƒํƒœ ๋ณด์กด์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๋ฐฑ ์Šคํƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ˆ˜๋งŽ์€ ํ™œ๋™, ์ค‘์ฒฉ๋œ ์กฐ๊ฐ ๋ฐ ๋™์  ์‚ฌ์šฉ์ž ํ๋ฆ„์ด ์žˆ๋Š” ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŠนํžˆ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, REST API ๋ฐ WSS ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ณต์žก์„ฑ์„ ์™„ํ™”ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ์ผ๊ด€๋œ ํƒ์ƒ‰ ๊ฒฝํ—˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ํ”Œ๋žซํผ์˜ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์‹œ๊ฐ์  BP Designer์˜ ์ด์ ์„ ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ํƒ์ƒ‰ ํ๋ฆ„๊ณผ ๋ฐฑ ์Šคํƒ ์กฐ์ž‘์˜ ๊ตฌํ˜„ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ชจ๋‘ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ๋ฐฑ ์Šคํƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด ํƒ์ƒ‰ ๊ฒฝํ—˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” Android ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์›ํ™œํ•˜๊ณ  ์ง๊ด€์ ์ธ ํƒ์ƒ‰๊ณผ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑ ์Šคํƒ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Android์˜ NavController์™€ AppMaster ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ no-code ํ”Œ๋žซํผ์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ๊ด€๋ จ ๋ฌธ์ œ์™€ ๋ณต์žก์„ฑ์„ ์™„ํ™”ํ•˜๋ฉด์„œ ์›ํ™œํ•œ ํƒ์ƒ‰ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.