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

๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์˜ ์ค‘์ถ” ์—ญํ• ์„ ํ•˜๋Š” SQL์€ AppMasterno-code ๋„๊ตฌ์™€ ํ˜ธํ™˜๋˜๋Š” PostgreSQL์„ ๋น„๋กฏํ•œ ๋งŽ์€ RDBMS ํ”Œ๋žซํผ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋…„ ๋™์•ˆ SQL์€ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ, ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ ๋ฐ ๋‹ค์–‘ํ•œ ์‚ฐ์—… ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ๊ฑธ์นœ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋ฐ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

SQL์€ ๋ฐ์ดํ„ฐ ์ •์˜, ๋ฐ์ดํ„ฐ ์กฐ์ž‘, ๋ฐ์ดํ„ฐ ์ œ์–ด ๋ฐ ํŠธ๋žœ์žญ์…˜ ์ œ์–ด๋ฅผ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด(DDL): DDL ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ํ…Œ์ด๋ธ”, ์—ด ๋ฐ ์ธ๋ฑ์Šค์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์ฒด๋ฅผ ์„ค์ •, ๋ณ€๊ฒฝ ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” DDL ๋ช…๋ น์—๋Š” CREATE, ALTER ๋ฐ DROP์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด(DML): DML ๋ช…๋ น์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์ˆ˜์ • ๋ฐ ์‚ญ์ œ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” DML ๋ช…๋ น์—๋Š” SELECT, INSERT, UPDATE ๋ฐ DELETE๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ์ดํ„ฐ ์ œ์–ด ์–ธ์–ด(DCL): DCL ๋ช…๋ น์€ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์ฒด์™€์˜ ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” DCL โ€‹โ€‹๋ช…๋ น์—๋Š” GRANT ๋ฐ REVOKE๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  4. TCL(ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ์–ธ์–ด): TCL ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” TCL ๋ช…๋ น์—๋Š” COMMIT, ROLLBACK ๋ฐ SAVEPOINT๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

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

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

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

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