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

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

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

๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์•„ํ‚คํ…์ฒ˜์˜ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ๊ฐ์€ drag-and-drop ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, UI ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  REST API ๋ฐ WebSocket endpoints ์ •์˜ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Kotlin, Jetpack Compose ์‚ฌ์šฉํ•˜์—ฌ Android ๋ฐ iOS์šฉ ํ”Œ๋žซํผ๋ณ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  SwiftUI.

๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋ฐ”์ผ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์›”๋ณ„ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ํ†ต๊ณ„์— ๋”ฐ๋ฅด๋ฉด AppMaster ๋กœ ๊ตฌ์ถ•๋œ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•ฑ ์Šคํ† ์–ด์— ์†Œ๊ฐœ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์•„ ๊ฐ€์‹œ์„ฑ๊ณผ ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„๊ฐ€ ํ–ฅ์ƒ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์•„ํ‚คํ…์ฒ˜์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ฑ„ํƒํ•จ์œผ๋กœ์จ AppMaster ์ƒ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ ๊ธฐ์—…๊ณผ ์ค‘์†Œ๊ธฐ์—… ๋ชจ๋‘์—๊ฒŒ ์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์˜ ์„œ๋ฒ„ ์ค‘์‹ฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ณ ๊ฐ์€ ์•ฑ ์Šคํ† ์–ด์— ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ UI, ๋กœ์ง ๋ฐ API ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ์ง€ ๋ฐ ์—…๋ฐ์ดํŠธ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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