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

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

๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ด€๊ณ„ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋Š” ํ˜•์‹ ๋…ผ๋ฆฌ์™€ ํ†ตํ•ฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Prolog์ž…๋‹ˆ๋‹ค. Prolog๋Š” Horn ์ ˆ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋œ ์ผ๋ จ์˜ ๊ทœ์น™๊ณผ ์‚ฌ์‹ค์„ ํ™œ์šฉํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ณ  ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œํ˜„๋ ฅ์„ ํ†ตํ•ด ๊ธฐํ˜ธ ๊ณ„์‚ฐ, ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ, ์ง€์‹ ํ‘œํ˜„, ์ถ”๋ก  ๋“ฑ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ด€๊ณ„ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ๋Š” Mercury, Oz ๋ฐ CHR(Constraint Handling Rules)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๊ณ„ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ๋ถˆํ™•์‹คํ•œ ์ •๋ณด, ๋ณต์žกํ•œ ์ถ”๋ก  ๋ฐ ์ง€์‹ ํ‘œํ˜„์ด ํ•„์š”ํ•œ ๋ฌธ์ œ, ๊ด€๊ณ„ ํ‘œํ˜„์— ๋Œ€ํ•œ ์ž์—ฐ์Šค๋Ÿฌ์šด ์„ฑํ–ฅ์ด โ€‹โ€‹์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

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

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

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

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

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