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

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

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

AppMaster ํ”Œ๋žซํผ ๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋จผ์ € ์—”ํ„ฐํ‹ฐ์™€ ํ•ด๋‹น ์†์„ฑ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—”ํ„ฐํ‹ฐ๋Š” ์‚ฌ์šฉ์ž, ์ œํ’ˆ, ์ฃผ๋ฌธ ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„๋ฉ”์ธ์˜ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‚˜ ๊ฐœ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์†์„ฑ์€ ์ด๋ฆ„, ์„ค๋ช…, ๊ฐ€๊ฒฉ ๋“ฑ ์ด๋Ÿฌํ•œ ์—”ํ„ฐํ‹ฐ์˜ ํŠน์ • ์†์„ฑ์ด๋‚˜ ํŠน์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

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

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

AppMaster ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์—”ํ„ฐํ‹ฐ, ์†์„ฑ ๋ฐ ์—ฐ๊ฒฐ์„ ์‰ฝ๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Go(golang), ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ JS/TS๊ฐ€ ํฌํ•จ๋œ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Jetpack Compose ๋˜๋Š” SwiftUI ํฌํ•จ๋œ Kotlin๊ณผ ๊ฐ™์€ ์ตœ์ฒจ๋‹จ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AppMaster ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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