์์ ๋จ์ ํจํด์ ์ง์์ฑ ๋ฉ์ปค๋์ฆ ๊ตฌํ, ํนํ ํธ๋์ญ์ ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ๋ฉ์ปค๋์ฆ์์ ์ค์ํ ์ญํ ์ ํ๋ ์ํํธ์จ์ด ๋์์ธ ํจํด์ ๋๋ค. ์ด๋ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ํ์ ์ธก๋ฉด์ผ๋ก ๋๋ฆฌ ์ธ์๋๊ณ ์์ผ๋ฉฐ DDD(Domain-Driven Design) ๋ฐ ORM(Object-Relational Mapping)๊ณผ ๊ฐ์ ๋ค์ํ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์์ ์๋นํ ๊ฒฌ์ธ๋ ฅ์ ์ป์์ต๋๋ค.
์ํํธ์จ์ด ์ํคํ ์ฒ ๋ฐ ํจํด ์ปจํ ์คํธ์์ ์์ ๋จ์ ํจํด์ ์ฃผ์ ๋ชฉ์ ์ ๋ฐ์ดํฐ ์ ์ฅ์์์ ์ํ๋๋ ๋ชจ๋ ์์ ๊ณผ ์์ ์ ์์ง๋ ฅ ์๋ ๋จ์ผ ํธ๋์ญ์ ์ผ๋ก ์บก์ํํ๊ณ ์ผ๊ด๋๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ์คํ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ด ํจํด์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์์คํ ์ ์ํฐํฐ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ , ์์ ์ ์ฃผ๋ฌธํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ณต ํ์๋ฅผ ์ต์ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ ๋ฟ๋ง ์๋๋ผ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ๊ฐ๋ฐ๋ ๊ฐ๋ ฅํ no-code ํ๋ซํผ AppMaster ๋ ์์ ๋จ์ ํจํด์ ํ์ฉํ์ฌ ๋ค์ํ ๊ตฌ์ฑ ์์์ ํจ์จ์ฑ์ ํฅ์์ํต๋๋ค. ์ด ํ๋ซํผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์ค๊ณ, ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋ชจ๋ธ๋ง, REST API ๊ฐ๋ฐ, ์น์์ผ์ ํฌํจํ์ฌ AppMaster ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฌ๊ณ ์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ธฐ์ฌํ๋ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์์ ๋จ์ ํจํด์ ์ค์ฌ์๋ ์ฝ์ , ์ ๋ฐ์ดํธ, ์ญ์ ๋๋ ์ฟผ๋ฆฌ์ ๊ฐ์ด ๋ฐ์ดํฐ์ ๋ํด ์ํ๋๋ ๋ค์ํ ์์ ์ ์บก์ํํ๋ "์์ ๋จ์"๋ผ๋ ๊ฐ๋ ์ด ์์ต๋๋ค. ์ด๋ฌํ ์์ ๋จ์๋ ์ํฐํฐ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ผ๊ด๋๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑํ๋ ์ค์ ์ ์ฅ์ ์ญํ ์ ํฉ๋๋ค. ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ , ๊ด๋ จ๋ ๋ค์ํ ์์ ์ ์์๋ฅผ ์กฐ์ ํ์ฌ ํธ๋์ญ์ ์คํ์ ์ด์งํฉ๋๋ค.
์์ ๋จ์ ํจํด์ ์ฃผ์ ์ฅ์ ์ค ํ๋๋ ๋๋ฉ์ธ ๋๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ์์ ์ง์์ฑ ๋ ผ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๋ฅผ ์ด์งํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ์ ์ง ๊ด๋ฆฌ, ํ ์คํธ ๋ฐ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ๋ํ ์ด ํจํด์ ๋ค์์ ํตํด ์์คํ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. 1) ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ณต ํ์๋ฅผ ์ต์ํํฉ๋๋ค. 2) ๊ฑฐ๋ ๋ด์์ ์์ ์์๋ฅผ ์ต์ ํํฉ๋๋ค. 3) ๊ธฐ์ ์ ๋ํ ๋ณ๊ฒฝ์ด ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์ ๋จ์ ํจํด ๊ตฌํ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
- UnitOfWork ์ธํฐํ์ด์ค: ์ด๋ ๋ชจ๋ UnitOfWork ๊ตฌํ์ด ์ค์ํด์ผ ํ๋ ๊ณ์ฝ์ ์ ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฑ๋ก ๋ฐ ์ปค๋ฐ, ํธ๋์ญ์ ์์ ๋ฐ ์๋ฃ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฐ ๊ฐ์ฒด ์ปจํ ์คํธ์ ๊ฐ์ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ํฌํจ๋ฉ๋๋ค.
- UnitOfWork ๊ตฌํ: ์ด ํด๋์ค๋ UnitOfWork ์ธํฐํ์ด์ค์์ ์ ์ํ ๊ณ์ฝ์ ์ดํํฉ๋๋ค. ์ํฐํฐ์ ๋ฆฌ์์ค์ ์ํ๋ฅผ ๊ด๋ฆฌ ๋ฐ ์ถ์ ํ๊ณ , ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋๋ก ํ๋ฉฐ, ๋ค์ํ ์์ ์ ์คํ์ ์กฐ์จํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
- ๋ฆฌํฌ์งํ ๋ฆฌ: ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ ์ ์ฅ์ ์ฌ์ด์ ์ถ์ํ ๊ณ์ธต์ ๋๋ค. ์ด๋ UnitOfWork ๊ตฌํ๊ณผ ๊ธด๋ฐํ๊ฒ ์๋ํ์ฌ ์ํฐํฐ ๊ฒ์, ์ ์ฅ ๋ฐ ์ฟผ๋ฆฌ๋ฅผ ๋จ์ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ ๊ฐ ์ํฐํฐ์ ์ธ์คํด์ค ํ๋๋ง ๋ก๋๋์ด ํธ๋์ญ์ ์ ์ฒด์์ ์ฌ์ฉ๋๋๋ก ๋ณด์ฅํ๋ฏ๋ก ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ๋ฐ์ดํฐ ์ค๋ณต์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
AppMaster ์ ๋งฅ๋ฝ์์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ๋ ์์ ๋จ์ ํจํด์ด ์๋ํฉ๋๋ค. ์ด ํจํด์ ์ฑํํจ์ผ๋ก์จ AppMaster ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋์ ์์ค์ ์ฑ๋ฅ, ์ผ๊ด์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ๋ ๋์์ ์ํํธ์จ์ด ์ํคํ ์ฒ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํฉ๋๋ค.
๋ํ ํ๋ซํผ์ด ์ต์ ํ๋๊ณ ๋น์ฉ ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ์์ ๋จ์ ํจํด์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ธํธ์ ๊ท์คํ ์ถ๊ฐ ๊ธฐ๋ฅ์์ด ์ ์ฆ๋์์ต๋๋ค. ์ด ํจํด์ ํ์ฉํ๋ฉด AppMaster ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ ์ ์์ผ๋ฏ๋ก ์ค์๊ธฐ์ , ๊ธฐ์ , ๊ฐ์ธ ๊ฐ๋ฐ์๋ฅผ ํฌํจํ ๋ค์ํ ๊ณ ๊ฐ์๊ฒ ์ด์์ ์ธ ์ ํ์ด ๋ฉ๋๋ค.