๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ ํ๊ฒฝ์์ 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 ์ํคํ ์ฒ๋ฅผ ์ฑํํ๋ฉด ๋ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ด๋ฉฐ ๋ฏธ๋ ์งํฅ์ ์ธ ์ํํธ์จ์ด ์๋ฃจ์ ์ด ๊ฐ๋ฅํด ์ฐ์ ์ ๋ฐ์ ๊ฑธ์ณ ํ์ ๊ณผ ๋์งํธ ์ ํ์ ์ฃผ๋ํ ์ ์์ต๋๋ค.