๊ด€๊ณ„ํ˜• ๋Œ€์ˆ˜ํ•™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์˜ ์กฐ์ž‘ ๋ฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ จ์˜ ์ˆ˜ํ•™์  ์—ฐ์‚ฐ ๋ฐ ์›๋ฆฌ๋กœ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ์˜ ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ, ๊ด€๋ฆฌ ๋ฐ ๊ฒ€์ƒ‰์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 1970๋…„ Edgar F. Codd ๋ฐ•์‚ฌ๊ฐ€ ์„ค๋ฆฝํ•œ ๊ด€๊ณ„ํ˜• ๋Œ€์ˆ˜ํ•™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฃผ์š” ์–ธ์–ด์ธ SQL(Structured Query Language)์˜ ์ด๋ก ์  ๊ธฐ๋ฐ˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋Œ€์ˆ˜์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ์ฟผ๋ฆฌ ์‹คํ–‰, ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ์กฐ์ž‘์„ ์œ„ํ•œ ๊ณต์‹์ ์ด๊ณ  ์ผ๊ด€๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋งฅ๋ฝ์—์„œ ๊ด€๊ณ„ํ˜• ๋Œ€์ˆ˜ํ•™์€ SELECT, PROJECT, UNION, SET DIFFERENCE, CARTESIAN PRODUCT, RENAME, JOIN ๋ฐ DIVIDE ๋“ฑ์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ณด๋‹ค ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ์‹œ ๋†’์€ ์ˆ˜์ค€์˜ ํ‘œํ˜„๋ ฅ๊ณผ ์œ ์—ฐ์„ฑ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

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

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

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

๊ณ ๊ฐ ๊ฒฝํ—˜์„ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด AppMaster ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ๋ง, REST API ๋ฐ WSS ์—”๋“œํฌ์ธํŠธ ํ†ตํ•ฉ, Docker ์ปจํ…Œ์ด๋„ˆํ™” ๋“ฑ์˜ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์„œ๋ฒ„ endpoints ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ž๋™ ์ƒ์„ฑ๋œ Swagger(OpenAPI) ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ๊ณผ ์ƒ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›ํ™œํ•œ ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

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