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

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

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

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

AppMaster ๋˜ํ•œ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ์™€ JavaScript/TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ , Android์šฉ Kotlin ๋ฐ Jetpack Compose ์™€ iOS์šฉ SwiftUI ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด App Store ๋˜๋Š” Play Market์— ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ UI, ๋กœ์ง ๋ฐ API ํ‚ค๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณต์ œ๋œ ์„œ๋น„์Šค ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ผ์ • ์ˆ˜์ค€์˜ ๋ฏผ์ฒฉ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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