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

๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด 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 ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ํ™•์žฅ ๊ฐœ๋ฐœ์— ์ค‘์ถ”์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๊ธฐ๋Šฅ, ๋ชจ๋“ˆ์‹ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ๋Š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋™์‹œ์— ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ•๋ ฅํ•œ ๊ตฌ์„ฑ์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ๊ด€๋ จ ๋น„์šฉ๊ณผ ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ์ค„์ด๋ฉด์„œ ํ˜„๋Œ€ ๋น„์ฆˆ๋‹ˆ์Šค์˜ ์—ญ๋™์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์œ ์—ฐํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.