๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋งฅ๋ฝ์์ "ํ"์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ๋ด ์ํฐํฐ์ ํน์ ์ธ์คํด์ค ๋๋ ๋ฐ์์ ๋ํ๋ด๋ ํํ ๋๋ ๋ ์ฝ๋๋ผ๊ณ ๋ ํ๋ ๋จ์ผ ๋ฐ์ดํฐ ์์ ์งํฉ์ ๋ํ๋ ๋๋ค. ๊ฐ ๊ฐ๋ณ ํ์ ์ฌ๋ฌ ์ด๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ์ด์ ํด๋น ์ํฐํฐ์ ํน์ ํน์ฑ์ด๋ ์์ฑ์ ํด๋นํฉ๋๋ค. ์์ฑ์ ์ค๋ช ์ ๋ณด(์: ๋ฌธ์์ด, ์ซ์ ๋๋ ๋ ์ง) ๋๋ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ด์ ๋ค๋ฅธ ์ํฐํฐ์์ ๊ด๊ณ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค.
ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ์ญํ ์ ํ๋ฉฐ AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ํ๋ ์์ํฌ ๋ด์์ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
AppMaster ๋ก ์์ ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง์ ํ์ ์ธก๋ฉด์ ๋ฐ์ดํฐ ํ ์ด๋ธ ๋ด์ ํ์ ์ ์คํ๊ฒ ๋์์ธํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ด์ ๋ํ ์ ์ ํ ์์ฑ ์ ํ ๋ฐ ๊ตฌ์กฐํ, ๊ณ ์ ์๋ณ์(๊ธฐ๋ณธ ํค๋ผ๊ณ ํจ) ์ค์ , ์ธ๋ ํค ์ฌ์ฉ์ ํตํด ์๋ก ๋ค๋ฅธ ํ ์ด๋ธ์ ํ ๊ฐ์ ๊ด๊ณ ์ ์๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋ ๊ฒ์ ์ค์์ฑ์ ๊ณ ๋ คํ ๋ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ํ ๊ตฌ์กฐ๋ฅผ ๋์์ธํ๋ ๊ฒ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํ๋ก์ธ์ค์์ ์์ด์๋ ์ ๋ ๋ถ๋ถ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ํํ ์ฟผ๋ฆฌ ๋ฐ ์กฐ์์ ๋ณด์ฅํ๊ณ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ด์งํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ์ด๋ผ๋ ๋ ์ํฐํฐ๋ฅผ ์๊ฐํด ๋ณด์ธ์. ๊ณ ๊ฐ ์ํฐํฐ์๋ ID, ์ด๋ฆ, ์ด๋ฉ์ผ, ์ฃผ์ ๋ฑ์ ์์ฑ์ด ์์ ์ ์๊ณ , ์ฃผ๋ฌธ์๋ OrderID, CustomerID(์ธ๋ ํค), ํฉ๊ณ ๋ฑ์ ์์ฑ์ด ์์ ์ ์์ต๋๋ค. Customer ํ ์ด๋ธ ๋ด์ ํ์ ๊ณ ๊ฐ์ ๋จ์ผ ์ธ์คํด์ค๋ฅผ ๋ํ๋ด๊ณ , Order ํ ์ด๋ธ ๋ด์ ํ์ ์ฃผ๋ฌธ์ ๋จ์ผ ์ธ์คํด์ค๋ฅผ ๋ํ๋ ๋๋ค.
์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ ์ ๊ทํ ์์น์ ๋ฐ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก ์์ ํ ์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๊ฐ ์์ฑ๋ฉ๋๋ค. ์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ จ ํ ์ด๋ธ๋ก ๊ตฌ์ฑํ์ฌ ์ค๋ณต์ฑ๊ณผ ์ข ์์ฑ์ ์ต์ํํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ๊ฐ ํ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ์จ์ฑ์ ๋์ด๊ณ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํด ๊ฐ๋ฅํ ํ ์ต์ํ์ ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ณ ๊ฐ์ด ์ฌ๋ฌ ์ฃผ๋ฌธ์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ ์ฃผ๋ฌธ์ ๊ณ ๊ฐ ์ ๋ณด์ ํจ๊ป ๋จ์ผ ํ ์ด๋ธ์ ์ ์ฅํ๋ฉด ๋ฐ์ดํฐ ์ค๋ณต ๋ฐ ์ ์ฌ์ ์ธ ๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ์ด๋ผ๋ ๋ ๊ฐ์ ํ ์ด๋ธ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. Orders ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ ID๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Orders ํ ์ด๋ธ์ ๋ชจ๋ ํ์์ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๋ฐ๋ณตํ ํ์๊ฐ ์์ด์ ธ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ ๊ณต๋ฉ๋๋ค.
AppMaster ์ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จํ์ฌ ํ๋ซํผ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ฑํ๋ ์๊ฐ์ ์ผ๋ก ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ์ ์์ฑ์ ์ ์ํ๊ณ , ๊ธฐ๋ณธ ํค์ ์ธ๋ ํค๋ฅผ ์ง์ ํ๊ณ , ํ ์ด๋ธ ๊ฐ์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ์ฌ์ฉ ์ฉ์ด์ฑ์ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ๋ ฅํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๊ตฌํํ๋ ๋ฐ ์ง์คํ ์ ์์ผ๋ฉฐ, AppMaster ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ ์ ํ ์ฝ๋์ ์คํค๋ง๋ฅผ ์์ฑํ๋ ์์ ์ ๋ด๋นํฉ๋๋ค.
์ ์ค๊ณ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฒญ์ฌ์ง์ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๋ AppMaster ์ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ๋ด์ ํ์ด ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ๊ธฐ์ฌํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ํ AppMaster ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Go(Golang) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ฉํ์ฌ ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ํ์ํ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์์ฝํ์๋ฉด, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋งฅ๋ฝ์์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ๋ด์ ๊ตฌ์ฑ๋ ์ฌ๋ฌ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ์ํฐํฐ์ ํน์ ์ธ์คํด์ค๋ฅผ ๋ํ๋ ๋๋ค. ํ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐํ๋๊ณ ์๋ฏธ ์๋ ํํ์ ์ค์ ํ๋ ๋ฐ ํ์์ ์ด๋ฉฐ ํจ์จ์ ์ธ ์ฟผ๋ฆฌ ๋ฐ ์กฐ์์ ๊ธฐ์ฌํฉ๋๋ค. AppMaster ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ํ ์ง๊ด์ ์ด๊ณ ์๊ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ๋ฐ ๊ตฌํ๊ณผ ๊ด๋ จ๋ ์ผ๋ฐ์ ์ธ ๋จ์ ์์ด ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ์ค๊ณํ ์ ์์ต๋๋ค.