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 ์ ๊ฐ์ ๊ณ ๊ธ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์ฑ๊ณต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ์ธก๋ฉด์ ๋๋ค.