ํ ํ๋ฆฟ ํ๊ทธ๋ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ ํ ํ๋ฆฟ์ ๋์ ๊ธฐ๋ฅ๊ณผ ๋ค์์ฑ์ ์ ๊ณตํ๋ ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ๊ฐ๋ฐ์ ํ์ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ํ ํ๋ฆฟ ๋ด์ ํตํฉํ์ฌ ๊ธฐ๋ฅ, ๋ ผ๋ฆฌ ๋ฐ ์ฝํ ์ธ ์๋ฆฌ ํ์์๋ฅผ ๋์ ํ ์ ์๋ ์ฌ์ ์ ์๋ ์ฝ๋ ํจํด ์ญํ ์ ํฉ๋๋ค. ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ฉด์ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ผ๋ฆฌ๋ฅผ ํ๋ ์ ํ ์ด์ ์์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ ์ํด AppMasterno-code ํ๋ซํผ์ผ๋ก ์์ ํ ๋ ํ ํ๋ฆฟ ํ๊ทธ๋ ๊ฐ๋ฐ์์๊ฒ ๊ท์คํ ๋ฆฌ์์ค๊ฐ ๋ฉ๋๋ค. AppMaster ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ฉ ์๊ฐ์ BP Designer, REST API ๋ฐ WSS ์๋ํฌ์ธํธ์ UI ์์ฑ์ฉ drag-and-drop ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ํํ๊ฒ ํตํฉํ์ฌ ํน์ ๊ธฐ๋ฅ์ ํฌํจํจ์ผ๋ก์จ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ ๊ฐ๋ฐ ์๊ฐ๊ณผ ๊ด๋ จ ๋น์ฉ์ ์ค์ฌ 10๋ฐฐ ๋ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ 3๋ฐฐ ํฅ์๋ ๋น์ฉ ํจ์จ์ฑ์ด๋ผ๋ ํ๋ซํผ์ ์ฝ์์ ๊ธฐ์ฌํฉ๋๋ค.
๋ค์ํ ๊ฐ๋ฐ ์๋๋ฆฌ์ค์ ๋ง์ถฐ ๋ค์ํ ๋ฒ์์ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
1. ๋ณ์ ํ๊ทธ: ์ด ํ๊ทธ๋ ๋์ ์ฝํ ์ธ ์ ์๋ฆฌ ํ์์ ์ญํ ์ ํ๋ฉฐ ๋ค์ํ ๋ฐ์ดํฐ ์์ค์์ ๊ฒ์๋๊ฑฐ๋ ๋ฐํ์ ์ค์ ์์ฑ๋ ๊ฐ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ณ์ ํ๊ทธ์๋ ์ผ๋ฐ์ ์ผ๋ก {{variable_name}} ๋๋ {%variable%}์ ๊ฐ์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์บก์ํํ๋ ํน์ ๊ตฌ๋ฌธ์ด ํฌํจ๋ฉ๋๋ค.
2. ์ ์ด ํ๊ทธ: ์ ์ด ํ๊ทธ๋ ํ ํ๋ฆฟ ๋ด์์ ๋ ผ๋ฆฌ, ํ๋ฆ ์ ์ด ๋ฐ ์กฐ๊ฑด๋ฌธ์ ๋์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ฃจํ, ์กฐ๊ฑด ๋ฐ ์์ธ์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ํ ํ๋ฆฟ์ ๋์ ๋์์ ๊ฐํํ ์ ์์ต๋๋ค. ์ ์ด ํ๊ทธ์๋ ์ผ๋ฐ์ ์ผ๋ก {%if%}, {%for%}, {%else%} ๋ฐ {%endif%}์ ๊ฐ์ ํน์ ๊ตฌ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
3. ํฌํจ ํ๊ทธ: ์ด ํ๊ทธ๋ ํ๋์ ํ ํ๋ฆฟ์ ๋ค๋ฅธ ํ ํ๋ฆฟ ๋ด์ ํฌํจํ๊ณ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํ์ฌ ๋ชจ๋์ ๊ฐ๋ฐ์ ์ด์งํฉ๋๋ค. ํฌํจ ํ๊ทธ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์์ ์์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํต๋๋ค. ํฌํจ ํ๊ทธ์ ์๋ {%include 'template_name.html'%}์ ๋๋ค.
4. ์ฌ์ฉ์ ์ ์ ํ๊ทธ: ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์บก์ํํ๋ ์ฌ์ฉ์ ์ ์ ํ๊ทธ์ ๋๋ค. ๊ฐ๋ฐ์๋ ํน์ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ์์ฑํ์ฌ ๊ฒฐ๊ณผ ํ ํ๋ฆฟ์ด ๋์ฑ ์ ์ฐํ๊ณ ๋์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋๋ก ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ ํ ํ๋ฆฟ ์์ง์ ๋ฑ๋ก๋์ด ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ํํ๊ฒ ํตํฉ๋๊ณ ๋ค๋ฅธ ํ ํ๋ฆฟ์ ํตํฉ๋ ์ ์์ต๋๋ค.
Go(golang)๋ก ์์ฑ๋ AppMaster ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ , Vue3 ํ๋ ์์ํฌ ๋ฐ JS/TS๋ก ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ , Android์ฉ Kotlin ๋ฐ Jetpack Compose ์ IOS์ฉ SwiftUI ๊ธฐ๋ฐ์ผ๋ก ํ๋ AppMaster ์๋ฒ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ํตํฉ ๋ฐ ํ ํ๋ฆฟ ํ๊ทธ ํ์ฉ ์ด ์ง์์ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ ํ ํ๋ฆฟ ํ๊ทธ๊ฐ ์ ๊ณตํ๋ ์ด์ ์ ํ์ฉํ๋ฉด์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ผ๊ด๋๊ณ ์ํํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ์งํ ์ ์์ต๋๋ค.
๋ํ AppMaster ํ๋ซํผ์ ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํ Swagger(๊ฐ๋ฐฉํ API) ๋ฌธ์์ ๊ฐ์ ํ์ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ฌํ ๋ฆฌ์์ค๋ ๊ฐ๋ฐ์๊ฐ ํ ํ๋ฆฟ ํ๊ทธ๊ฐ ์์ฑ๋ ์ฝ๋ ๋ด์ ํตํฉ๋๋ ๋ฐฉ์๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ํ 30์ด ์ด๋ด์ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ์๋ถํฐ ์ ๋ฐ์ดํธํ๊ณ ์ฌ์์ฑํ๋ AppMaster ์ ๊ธฐ๋ฅ์ ํตํด ํ ํ๋ฆฟ ํ๊ทธ ๋ฐ ๊ธฐํ ๊ตฌ์ฑ ์์์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํ๊ฒ ํตํฉํ๊ณ ํ ์คํธํ ์ ์์ผ๋ฏ๋ก ๊ถ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ๊ธฐ์ ๋ถ์ฑ๊ฐ ์ต์ํ๋ฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ํ ํ๋ฆฟ ํ๊ทธ๋ ํนํ AppMasterno-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ๊ฐ๋ฐ์ ์ค์ถ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ๋์ ๊ธฐ๋ฅ, ๋ชจ๋์ ๊ตฌ์ฑ ์์ ๋ฐ ํ์ฅ์ฑ์ ์ ๊ณตํจ์ผ๋ก์จ ํ ํ๋ฆฟ ํ๊ทธ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋์์ ์ค๋ฒํค๋์ ๊ฐ๋ฐ ์๊ฐ์ ์ค์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ ฅํ ๊ตฌ์ฑ์ ํ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ด๋ จ ๋น์ฉ๊ณผ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ค์ด๋ฉด์ ํ๋ ๋น์ฆ๋์ค์ ์ญ๋์ ์ธ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ ์ฐํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ต๋๋ค.