์•กํ‹ฐ๋ธŒ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด์€ ๋„๋ฉ”์ธ ๋ชจ๋ธ๊ณผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ๊ฐ„์— ๊ฐ์ฒด ๊ด€๊ณ„ํ˜• ๋งคํ•‘(ORM)์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ์„ธ๊ณ„์—์„œ ๋‘๋“œ๋Ÿฌ์ง„ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ(Martin Fowler)๊ฐ€ ์ž์‹ ์˜ ์ €์„œ "์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ํŒจํ„ด(Patterns of Enterprise Application Architecture)"์—์„œ ์ฒ˜์Œ ์ œ์‹œํ–ˆ์œผ๋ฉฐ, ์ด ์ฑ…์—์„œ ์—„์ฒญ๋‚œ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

์ด๋Ÿฌํ•œ ์ œํ•œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Active Record ํŒจํ„ด์€ ํŠนํžˆ ์›น ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ธ๊ธฐ ์žˆ๊ณ  ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ ๋ช…ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Ruby on Rails๋Š” ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ActiveRecord์—์„œ ์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ๊ธฐ ์žˆ๋Š” PHP ํ”„๋ ˆ์ž„์›Œํฌ์ธ Laravel์€ Active Record Pattern์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Eloquent๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

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

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