์กํฐ๋ธ ๋ ์ฝ๋ ํจํด์ ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ๊ฐ์ ๊ฐ์ฒด ๊ด๊ณํ ๋งคํ(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์ ์ดํดํ๊ณ ํ์ฉํ๋ฉด ๋์์์ด ๋ณํํ๋ ์ฌ์ฉ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํ ์ํํธ์จ์ด ์๋ฃจ์ ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.