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

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

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

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

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

๋ชจ๋†€๋ฆฌ์‹์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ ์ƒ๋‹นํ•œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DDD(Domain-Driven Design) ๋ฐ Docker์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆํ™” ๊ธฐ์ˆ ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ „๋žต ๋ฐ ๋„๊ตฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์ „ํ™˜์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์กฐ์ง์€ ๊ทธ๋Ÿฌํ•œ ๋…ธ๋ ฅ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์›ํ•˜๋Š” ์ด์ ๊ณผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋น„์šฉ์„ ๋น„๊ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ์˜ ๋งฅ๋ฝ์—์„œ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋•Œ๋•Œ๋กœ ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ํ†ตํ•ด ๊ณ ๊ฐ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ)์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ์‹œ๊ฐ์  BP Designer๋ฅผ ํ†ตํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , REST API ๋ฐ WSS endpoints ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด Go(golang)๋กœ ์ƒ์„ฑ๋˜์ง€๋งŒ ์ƒ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ชจ๋“  PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ๋˜ํ•œ Swagger(๊ฐœ๋ฐฉํ˜• API) ๋ฌธ์„œ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ ์›ํ™œํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

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

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