MVC(Model-View-Controller) ๋์์ธ ํจํด์ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ์ ๋๋ฆฌ ์ฑํ๋๋ ์ํคํ ์ฒ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด๋ ์ฝ๋๋ฅผ ๋ชจ๋์ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑํ์ฌ ๋ฌธ์ ๋ถ๋ฆฌ๋ฅผ ์ด์งํ๊ณ ์์คํ ์ ์ ์ง ๊ด๋ฆฌ์ฑ, ํ์ฅ์ฑ ๋ฐ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. MVC ํจ๋ฌ๋ค์์ ๋ชจ๋์ ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ AppMaster ํ๋ซํผ์ ์์น๊ณผ ์ ์ผ์นํ๋ฏ๋ก ๊ฐ๋ ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ด์์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
MVC ์ํคํ ์ฒ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ธ ๊ฐ์ง ์ํธ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์๋ก ๋๋ฉ๋๋ค.
- ๋ชจ๋ธ - ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ, ๊ฒ์, ์ ์ฅ ๋ฐ ์กฐ์๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฉ์ธ๋ณ ๋ฐ์ดํฐ, ๊ท์น ๋ฐ ๊ธฐ๋ฅ์ ๋ํ๋ ๋๋ค. ๋ชจ๋ธ ๊ตฌ์ฑ ์์๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋ฆฝ์ ์ด๋ฉฐ API ๋๋ ์ด๋ฒคํธ๋ฅผ ํตํด ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ํต์ ํฉ๋๋ค.
- ๋ณด๊ธฐ - ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ์ฌ์ฉ์ ์ ๋ ฅ์ ์บก์ฒํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ฉฐ ํ๋ ์ ํ ์ด์ ๋ฐ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์ค์ ์ ๋ก๋๋ค. View ๊ตฌ์ฑ ์์๋ ์ฌ์ฉ์์ ์ง์ ์ํธ ์์ฉํ๊ณ ์ ๋ ฅ์ ์บก์ฒํ ๋ค์ ์ฒ๋ฆฌํ ์ปจํธ๋กค๋ฌ๋ก ๋ค์ ์ ๋ฌ๋ฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ - ๋ชจ๋ธ๊ณผ ๋ทฐ ์ฌ์ด์ ์ค๊ฐ์ ์ญํ ์ ํ๋ฉฐ, ๋ชจ๋ธ๊ณผ ๋ทฐ ๊ฐ์ ํต์ ์ ์ด์งํ๊ณ ์ฌ์ฉ์ ์ ๋ ฅ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๋ทฐ์์ ์บก์ฒํ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ๋ํ ์๋ต์ผ๋ก ์ปจํธ๋กค๋ฌ๋ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ์ผ๊ด๋๊ฒ ์ ์ง๋๋๋ก ํฉ๋๋ค. ๋ํ ์ปจํธ๋กค๋ฌ๋ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธ๋ ๋ชจ๋ธ ๋ฐ์ดํฐ์ ๋๊ธฐํํ์ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ต์ ์ํ๋ก ์ ์งํฉ๋๋ค.
MVC(Model-View-Controller)๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์์ ๋๋ฆฌ ์ฌ์ฉ๋์ด ์กฐ์งํ๋๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋ ๊ฐ๋ฐ์ ์ด์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์๊ฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ธ, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ UI ๊ตฌ์ฑ ์์ ๋ฑ AppMaster ํ๋ซํผ์ no-code ๋๊ตฌ๋ MVC ์ํคํ ์ฒ ์์น์ ์ผ๋์ ๋๊ณ ๊ตฌ์ถ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ๊ฒฌ๊ณ ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, AppMaster ์์ ์์ฑ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จ์์ฑ, ๋ชจ๋์ฑ ๋ฐ ๊ฐ๋ ฅํ ๋์์ฑ ์ง์์ผ๋ก ์๋ ค์ง ์ํํธ์จ์ด ์ ๊ณ์์ ๋๋ฆฌ ์ฑํ๋๋ ์ธ์ด์ธ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ฉํฉ๋๋ค. ์์ฑ๋ Go ์ฝ๋๋ MVC ์ํคํ ์ฒ์ ๋ชจ๋ธ ๋ฐ ์ปจํธ๋กค๋ฌ ๊ตฌ์ฑ ์์๋ฅผ ์บก์ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ ์งํ๊ณ API ํธ์ถ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ฐ๋ฉด, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ์ฌ์ฉ๋๋ Vue3 ํ๋ ์์ํฌ๋ ๋ฐ์ํ ๋ฐ ๋ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ View ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํํํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ AppMasterJetpack Compose (Android) ๋ฐ SwiftUI (iOS)์ ํจ๊ป Kotlin์ ํ์ฉํ์ฌ MVC ํจํด์ ์์น์ ๋ฐ๋ฅด๋ View ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ญ๋๋ค.
Model-View-Controller ์ํคํ ์ฒ๋ฅผ ์ค์ํจ์ผ๋ก์จ AppMaster ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ธฐ์ ๋ถํฐ ๋๊ธฐ์ ๊น์ง ๊ด๋ฒ์ํ ๊ณ ๊ฐ์๊ฒ ์ ํฉํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก AppMaster ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์๋๋ฅผ ํฌ๊ฒ ๋์ด๊ณ ๋น์ฉ์ ์ ๊ฐํ๋ฉฐ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์์จ ์ ์์ต๋๋ค.
MVC ์ํคํ ์ฒ ์ฌ์ฉ์ ๋ ๋ค๋ฅธ ์ฃผ์ ์ด์ ์ ๋ชจ๋ธ์ ๋ทฐ์์ ๋ถ๋ฆฌํ์ฌ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋ณด๋ค ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ๋๋ฒ๊น ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ํ ์ด๋ฌํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ํตํด ๊ธฐ๋ณธ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ค๊ณ ๋ณ๊ฒฝ์ ๊ตฌํํ ์ ์์ผ๋ฏ๋ก ์๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.
REST API์ฉ Swagger(OpenAPI) ๋ฌธ์์ ๊ฐ์ AppMaster ์ ๋ฌธ์ ์๋ ์์ฑ์ MVC ํจํด์ด ์ ๊ณตํ๋ ๋ชจ๋์ ์ค๊ณ ๋๋ถ์ ๋ค๋ฅธ ์์คํ ๊ณผ์ ์ํํ ํตํฉ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ๋ํ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์์ PostgreSQL ํธํ์ฑ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ๋ฉด, ์์ฑ๋ Go ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋น์ ์ฅ ํน์ฑ์ ๋ฐ์ด๋ ํ์ฅ์ฑ๊ณผ ๊ณ ์ฑ๋ฅ์ ํ์ฉํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก MVC(Model-View-Controller) ๋์์ธ ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ์ํคํ ์ฒ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด๋ AppMaster ์ no-code ํ๋ซํผ์ด ๊ตฌ์ถ๋ ์์น์ ํฌ๊ฒ ๊ณต๊ฐํ๋ ์์ฑ์ธ ์ฐ๋ ค ์ฌํญ์ ๋ถ๋ฆฌ, ๋ชจ๋์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ์ด์งํฉ๋๋ค. AppMaster MVC ํจํด์ ํ์ฉํ์ฌ ๊ณ ๊ฐ์ด ๋ณต์กํ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ ํ์ ์์ด ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌ๊ดํ๋ ํฌ๊ด์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ํํธ์จ์ด ์๋ฃจ์ ์ ๊ฐ๋ฐํ ์ ์๋ ํจ์จ์ ์ด๊ณ ๋น์ฉ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.