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

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

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

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋…์„ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๋ฐ์ดํ„ฐ ์œ ํ˜•: ํ…Œ์ด๋ธ”์˜ ๊ฐ ์—ด์€ ์ €์žฅ๋  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์˜ ์ข…๋ฅ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ๊ตฌ์ฒด์ ์œผ๋กœ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. PostgreSQL์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์—๋Š” ์ •์ˆ˜ ์œ ํ˜•(smallint, ์ •์ˆ˜ ๋ฐ bigint), ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž(์‹ค์ˆ˜ ๋ฐ ๋ฐฐ์ •๋ฐ€๋„), ๋ฌธ์ž ์œ ํ˜•(char, varchar ๋ฐ ํ…์ŠคํŠธ) ๋ฐ ๋‚ ์งœ/์‹œ๊ฐ„ ์œ ํ˜•(๋‚ ์งœ, ์‹œ๊ฐ„, ํƒ€์ž„์Šคํƒฌํ”„ ๋“ฑ). ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ์—ด์— ์œ ํšจํ•œ ๊ฐ’๋งŒ ์ €์žฅ๋˜๋„๋ก ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

2. ์ œ์•ฝ ์กฐ๊ฑด: ์ œ์•ฝ ์กฐ๊ฑด์€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•˜๋Š” ์—ด์ด๋‚˜ ํ…Œ์ด๋ธ” ์—”ํ„ฐํ‹ฐ์— ์ ์šฉ๋˜๋Š” ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ œ์•ฝ ์กฐ๊ฑด ์œ ํ˜•์œผ๋กœ๋Š” NOT NULL, UNIQUE, CHECK ๋ฐ FOREIGN KEY๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์œ ํšจํ•˜๊ณ  ์ผ๊ด€๋œ ์ •๋ณด๋งŒ ํ…Œ์ด๋ธ” ๋‚ด์— ์ €์žฅ๋˜๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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