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

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

์ผ๋ฐ˜์ ์ธ DDL ๋ฌธ์—๋Š” CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW ๋ฐ DROP VIEW๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ช…๋ น๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž ๋˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ ์Šคํ‚ค๋งˆ ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ์Šคํ‚ค๋งˆ ๊ฐœ์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•ด๋‹น ๊ฐœ์ฒด๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ DDL์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์ฒด ๋ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ์„ธ๋ถ€์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ‚ค๋งˆ ๊ฐœ์ฒด ๊ถŒํ•œ์ด ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์ƒ์„ฑ์— ๋Œ€ํ•œ AppMaster ์˜ ์‹œ๊ฐ์  ์ ‘๊ทผ ๋ฐฉ์‹์€ drag-and-drop ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๊ฐœ์ฒด์™€ ํ•ด๋‹น ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋‹ค ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์œผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•™์Šต ๊ณก์„ ์ด ์ค„์–ด๋“ค์–ด ๊ฐœ๋ฐœ์ž๋Š” ๋ณต์žกํ•œ DDL๊ณผ ์”จ๋ฆ„ํ•˜๋Š” ๋Œ€์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „๋ฐ˜์ ์ธ ๋””์ž์ธ๊ณผ ์š”๊ตฌ ์‚ฌํ•ญ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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