๋ง์ดํฌ๋ก์๋น์ค ์์๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ธฐ๋ฐ ์ญํ ์ ํ๋ ์ํํธ์จ์ด ์ํคํ ์ฒ ํ๋ ์์ํฌ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๋ ธ๋์ ๊ฐ๋ฐ, ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๊ธฐ ์ํด ๊ตฌํํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์, ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ํจํด์ ๊ณตํต ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ํ๋ ์์ํฌ๋ ๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด์ฑ, ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ ๋ฐ ํจ์จ์ฑ์ ์ด์งํ๋ ๋์์ ๊ฐ ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ณ , ํ ์คํธํ๊ณ , ๋ฐ์ ์ํฌ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ๋ณต์ก์ฑ์ ์ํํ๋ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์๋ ์ ๊ฑธ์ณ ์๋นํ ๊ด์ฌ์ ์ป์์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ, ์ ๋ฐ์ดํธ ๋ฐ ํ์ฅํ ์ ์์ผ๋ฏ๋ก ๋ณธ์ง์ ์ผ๋ก ๋ ๋ฏผ์ฒฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ด์ ์๋ ์กฐ์ ์๊ตฌ ์ฌํญ ์ฆ๊ฐ, ๋ถ๊ท ์ผ์ฑ ๋ฐ ์ฌ๋ฌ ์๋น์ค ์กฐ์ ์ ๋ณต์ก์ฑ๊ณผ ๊ฐ์ ํน์ ๊ณผ์ ๋ ์๋ฐ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ๋ง์ดํฌ๋ก์๋น์ค ์์๊ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ๊ด๋ จ๋ ๋ณต์กํจ๊ณผ ๊ณผ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ ํ์คํ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ์์์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋น์ค ๊ฒ์: ์๋น์ค๊ฐ ์ค์ค๋ก ๋ฑ๋กํ๊ณ ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์๋น์ค๋ฅผ ๊ฒ์ํ์ฌ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ํ์ ์ ์ด์งํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ตฌ์ฑ ๊ด๋ฆฌ: ๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ค์ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ์ผ๊ด์ฑ, ์ถ์ ์ฑ ๋ฐ ์ฌ์ด ์ ๋ฐ์ดํธ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง: ๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค์์ ๊ท ์ผํ ๋ก๊น , ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ ์ฌ๊ณ ๊ฐ์ง, ๋๋ฒ๊น ๋ฐ ์ฑ๋ฅ ๋ถ์์ ์ค์ํฉ๋๋ค.
- ๋ณต์๋ ฅ: ๋ถ๋ถ์ ์ธ ์ค๋จ์ด๋ ๋ถํ ์ฆ๊ฐ ์ ์๋น์ค ๊ฐ์ฉ์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ ๋ด๊ฒฐํจ์ฑ, ํ๋ก ์ฐจ๋จ ๋ฐ ์ฅ์ ์กฐ์น ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์คํ ์์ ์ฑ์ ํฅ์ํฉ๋๋ค.
- ๋ณด์: ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ๋ณด์ ํต์ ๋ฐ ์ธ์ฆ์ ๋ํ ์ผ๊ด๋ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ๋ณด์ฅํ๊ณ ๋ฌด๋จ ์ก์ธ์ค๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
์์ฅ์๋ Spring Boot, Vert.x, Lagom ๋ฑ ๋ค์ํ ๋ง์ดํฌ๋ก์๋น์ค ์์ ํ๋ ์์ํฌ๊ฐ ์์ผ๋ฉฐ ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ์ํ๊ณ์ ์ ํฉํฉ๋๋ค. ์กฐ์ง์ ํน์ ๊ธฐ์ ์คํ, ์๊ตฌ ์ฌํญ ๋ฐ ์ ๋ฌธ ์ง์์ ๋ฐ๋ผ ๊ฐ์ฅ ์ ํฉํ ํ๋ ์์ํฌ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
AppMasterno-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ ๋ง์ดํฌ๋ก์๋น์ค ์์๋ ๋์ฑ ๊ด๋ จ์ฑ์ด ๋์์ง๋๋ค. AppMaster ํตํด ๊ณ ๊ฐ์ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์์ผ๋ฏ๋ก ๋ง์ดํฌ๋ก์๋น์ค ์์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ฑ, ํ์ฅ์ฑ ๋ฐ ์ฑ๋ฅ์ด ๋ณด์ฅ๋ฉ๋๋ค. AppMaster ์ ์ต์ฒจ๋จ ํ๋ซํผ์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ๋ชจ๋ฒ ์ฌ๋ก์ ํจํด์ ํตํฉํ์ฌ ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
AppMaster ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์๋์ผ๋ก ์ค์ ํ๊ณ ๊ตฌ์ฑํ๋ ์ค๋ฒํค๋ ์์ด ๋ง์ดํฌ๋ก์๋น์ค ์์์ ์ด์ ์ ํ์ฉํ ์ ์์ต๋๋ค. ์์ค ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ์ด๋ฅผ Docker ์ปจํ ์ด๋์ ๋ฐฐํฌํจ์ผ๋ก์จ AppMaster ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๊ณ ์ฝ๊ฒ ํ์ฅ ๋ฐ ๊ด๋ฆฌ๋ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํด๋ผ์ด์ธํธ๊ฐ AppMaster ์ฌ์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ก ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํด ์๋์ผ๋ก ์์ฑ๋ Swagger(๊ฐ๋ฐฉํ API) ๋ฌธ์๋ฅผ ํตํด ์ํํ ํตํฉ, ๋ฐฐํฌ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ณด์ฅ๋ฉ๋๋ค. ๋ํ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ๋ํ 30์ด ์ฌ์์ฑ ์๊ฐ์ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ต์ํํ์ฌ ์๊ตฌ ์ฌํญ์ด ๋ฐ์ ํ๊ณ ๋ณํํ๋ ๊ฒฝ์ฐ์๋ ๊ณ ๊ฐ์ด ๊ณ ์ฑ๋ฅ์ ์ต์ ์ผ๋ก ์๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์งํ ์ ์๋๋ก ํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ๋ง์ดํฌ๋ก์๋น์ค ์์๋ ํนํ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ํ์ฉํ ๋ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค ์์ ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ, ์์ ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. AppMaster ์ ๊ฐ์ ํ๋ซํผ์ ํตํด ๊ฐ๋ฐ์๋ ๋ง์ดํฌ๋ก์๋น์ค ์์์ ์ฑ๋ฅ์ ์ฝ๊ฒ ํ์ฉํ์ฌ ๊ฐ์ฅ ๊น๋ค๋ก์ด ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์๋ ์ ํฉํ ๊ณ ํ์ง ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.