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

๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ ํŒจํ„ด์€ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

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

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

2. ๋ณด๊ธฐ: ๋ณด๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ๊ณผ ์‚ฌ์šฉ์ž ์‚ฌ์ด์˜ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋งค๋ ฅ์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ํ˜•์‹์œผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. View ์ปดํฌ๋„ŒํŠธ๋Š” ํ…์ŠคํŠธ ํ•„๋“œ, ๋ฒ„ํŠผ, ๋ชฉ๋ก, ์ด๋ฏธ์ง€ ๋“ฑ UI ์š”์†Œ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์—์„œ ๋ทฐ๋Š” Android์šฉ Jetpack Compose ๋ฐ iOS์šฉ SwiftUI ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ UI ๊ตฌ์„ฑ์š”์†Œ ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค.

AppMaster ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ•๋ ฅํ•œ drag-and-drop ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‹œ๊ฐ์ ์œผ๋กœ ๋งค๋ ฅ์ ์ธ ๋ทฐ๋ฅผ ๋””์ž์ธํ•˜๊ณ  ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” UI ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ์กฐ๋ฆฝํ•˜๋ฉฐ ์Šคํƒ€์ผ๊ณผ ํ…Œ๋งˆ๋ฅผ ์†์‰ฝ๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster Vue3, Kotlin ๋ฐ SwiftUI ์™€ ๊ฐ™์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋‘ ์ƒ์„ฑํ•˜์—ฌ ํ”Œ๋žซํผ ์ „๋ฐ˜์— ๊ฑธ์ณ ์›ํ™œํ•œ UI ๋ Œ๋”๋ง๊ณผ ๊ธฐ๋ณธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

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

AppMaster ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ํ”Œ๋žซํผ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋””์ž์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ ๋ชจ๋ธ, ๋ทฐ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ณ„์ธต ์ „์ฒด์—์„œ ์ฝ”๋“œ์˜ ํ๋ฆ„๊ณผ ์‹คํ–‰์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์˜ Mobile BP Designer ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” App Store ๋˜๋Š” Play Market์— ์ƒˆ ์•ฑ ๋ฒ„์ „์„ ๋ฐฐํฌํ•  ํ•„์š” ์—†์ด ์•ฑ ๋กœ์ง์„ ์ƒ์„ฑ, ์ˆ˜์ • ๋ฐ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋Œ€๊ฐ€๋กœ ์ง€์†์ ์ธ ์—…๋ฐ์ดํŠธ ๋ฐ ์•ฑ ์Šคํ† ์–ด ์Šน์ธ ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์ค‘์‹ฌ ์ ‘๊ทผ ๋ฐฉ์‹, low-code ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์•ฑ ์ƒ์„ฑ, ๊ฐ•๋ ฅํ•œ UI ๋””์ž์ธ ๋„๊ตฌ๋ฅผ ๊ฐ–์ถ˜ AppMaster ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ๊ธฐ๋Šฅํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒญ์‚ฌ์ง„์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ฒ˜์Œ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๋Š” ํ”Œ๋žซํผ์˜ ๊ธฐ๋Šฅ์€ ๊ฐ„์†Œํ™”๋œ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์žฅํ•˜๊ณ  ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ ๋น„์šฉ๊ณผ ์ถœ์‹œ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์˜ ์ž๋™ ๋ฌธ์„œ ์ƒ์„ฑ, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ, PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๊ธฐ์—… ์‚ฌ์šฉ ์‚ฌ๋ก€์™€์˜ ํ˜ธํ™˜์„ฑ์€ AppMaster์˜ ํฌ๊ด„์ ์ธ ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ์ค‘์†Œ๊ธฐ์—…๊ณผ ๋Œ€๊ธฐ์—… ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ํƒ์›”ํ•œ ์†”๋ฃจ์…˜์œผ๋กœ ์ž๋ฆฌ๋งค๊น€ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ MVC(Model-View-Controller) ํŒจํ„ด์€ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ์„ค๊ณ„ ์›์น™์œผ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“ˆ์‹, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. AppMasterno-code ํ”Œ๋žซํผ์€ MVC ํŒจํ„ด์„ ์ „๋ฌธ์ ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์œ ์—ฐํ•˜๊ฒŒ ๊ณ ํ’ˆ์งˆ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์— MVC ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฑ„ํƒํ•˜๋ฉด ๋” ๋น ๋ฅด๊ณ  ๋น„์šฉ ํšจ์œจ์ ์ด๋ฉฐ ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ์†”๋ฃจ์…˜์ด ๊ฐ€๋Šฅํ•ด ์‚ฐ์—… ์ „๋ฐ˜์— ๊ฑธ์ณ ํ˜์‹ ๊ณผ ๋””์ง€ํ„ธ ์ „ํ™˜์„ ์ฃผ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.