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

ํ–‰์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ ์—ญํ• ์„ ํ•˜๋ฉฐ AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ์ด๋ผ๋Š” ๋‘ ์—”ํ„ฐํ‹ฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ๊ณ ๊ฐ ์—”ํ„ฐํ‹ฐ์—๋Š” ID, ์ด๋ฆ„, ์ด๋ฉ”์ผ, ์ฃผ์†Œ ๋“ฑ์˜ ์†์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , ์ฃผ๋ฌธ์—๋Š” OrderID, CustomerID(์™ธ๋ž˜ ํ‚ค), ํ•ฉ๊ณ„ ๋“ฑ์˜ ์†์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Customer ํ…Œ์ด๋ธ” ๋‚ด์˜ ํ–‰์€ ๊ณ ๊ฐ์˜ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , Order ํ…Œ์ด๋ธ” ๋‚ด์˜ ํ–‰์€ ์ฃผ๋ฌธ์˜ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

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

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

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

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

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