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

๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ๊ธฐ๋ณธ ์ž‘์—…์€ SELECT, INSERT, UPDATE ๋ฐ DELETE์ž…๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS) ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณ ์œ ํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

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

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

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

AppMaster Golang, Vue3, Kotlin ๋ฐ Jetpack Compose ์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ด ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋ฌธ๊ฐ€๋Š” ํ•„์—ฐ์ ์œผ๋กœ DML ์‚ฌ์šฉ์ด ์ผ์ƒ ์ž‘์—…์˜ ์ค‘์‹ฌ์ด ๋˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ž‘์—…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. DML์— ๋Šฅ์ˆ™ํ•˜๋ฉด ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ์ด‰์ง„๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜„๋Œ€ ๊ธฐ์—…์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์†”๋ฃจ์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ์ž‘์—…ํ•˜๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ์ด๋ฉฐ AppMaster ์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๊ณต์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ์ธก๋ฉด์ž…๋‹ˆ๋‹ค.