์ํฌํ๋ก ์๋ํ์ ๋งฅ๋ฝ์์ "์ค์ผ์คํธ๋ ์ด์ "์ ํจ์จ์ฑ์ ์ต์ ํํ๊ณ ์ํํ ์๋ํฌ์๋ ์คํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์๋ํ๋ ์ํฌํ๋ก ๋ด์์ ๋ค์ํ ์์ ๊ณผ ๋ฆฌ์์ค๋ฅผ ์กฐ์ ํ๊ณ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์์ง๋ ฅ ์๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํ๋ ฅ์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฐ์ดํฐ ์์ค, ์ ํ๋ฆฌ์ผ์ด์ , ์์คํ ๋ฐ ์๋น์ค์ ์ฒด๊ณ์ ์ธ ๊ตฌ์ฑ, ์์ฝ ๋ฐ ์ํธ ํต์ ์ด ์๋ฐ๋ฉ๋๋ค. ์ค์ผ์คํธ๋ ์ด์ ์ ๋ณต์กํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ , ์๋ ๊ฐ์ ์ ์ค์ด๊ณ , ์๋ก ๋ค๋ฅธ ์์คํ ์ ๋๊ธฐํํ์ฌ ์์ ์ ์ด๊ณ ์ผ๊ด๋ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ๋์์ด ๋๋ฏ๋ก ์ํฌํ๋ก ์๋ํ์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค.
์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ฑ ๋ถ์ฐ๋๊ณ ์ํธ ์ฐ๊ฒฐ๋จ์ ๋ฐ๋ผ ํจ์จ์ ์ธ ์ค์ผ์คํธ๋ ์ด์ ์ ๋ํ ํ์์ฑ์ด ์ฆ๊ฐํฉ๋๋ค. Gartner์ ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด 2023๋ ๊น์ง ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ ํธ์ 40% ์ด์์ด ์๋ฒ๋ฆฌ์ค ๋๋ FaaS(Function-as-a-Service) ์ํคํ ์ฒ์ ์ฌ์ฉ์ ํฌํจํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ์ด๋ ๋ณต์กํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํฌํ๋ก๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์์ด ์ค์ผ์คํธ๋ ์ด์ ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด AppMasterno-code ํ๋ซํผ์ ์ฌ์ฉ์๊ฐ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ก์ง, API endpoints ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก ๊ตฌ์ฑ๋ ๋ณต์กํ ์ํฌํ๋ก๋ฅผ ์์ฑ, ๊ตฌ์ฑ ๋ฐ ์กฐ์ ํ ์ ์๋๋ก ํ๋ ๊ณ ๊ธ ์ค์ผ์คํธ๋ ์ด์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. AppMaster ๊ฐ ์ ๊ณตํ๋ ๊ณ ๋๋ก ํตํฉ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ณ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์กฐํ๋กญ๊ฒ ์๋ํ๋๋ก ๋ณด์ฅํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํ๋ ๋์์ ๋ณด๋ค ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ๋น์ฉ ํจ์จ์ ์ธ ์๋ฃจ์ ์ ์ด์งํฉ๋๋ค.
์ํฌํ๋ก ์๋ํ์ ์ค์ผ์คํธ๋ ์ด์ ์ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ๊ณผ ๋๊ตฌ๋ฅผ ํตํด ๋ฌ์ฑํ ์ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ํต์ฌ ์ธก๋ฉด์ ํฌํจํ ์ ์์ต๋๋ค.
1. ํ๋ก์ธ์ค ์กฐ์ : ์ด ์ธก๋ฉด์๋ ์ํํ ๊ธฐ๋ฅ๊ณผ ์คํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ํฌํ๋ก์ฐ ๋ด์์ ์ฌ๋ฌ ์์ ๊ณผ ํ๋ก์ธ์ค์ ์กฐ์ ์ด ์๋ฐ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์คํ ์์๋ฅผ ์ ์ํ๊ณ , ์์ ์ ํธ๋ฆฌ๊ฑฐํ๊ณ , ์กฐ๊ฑด๋ถ ๋ ผ๋ฆฌ๋ฅผ ์ค์ ํ์ฌ ํ๋ก์ธ์ค ํ๋ฆ์ ๋ณํ๋ฅผ ๊ด๋ฆฌํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ํ๋ก์ธ์ค ์ค์ผ์คํธ๋ ์ด์ ์ ๋ค์ํ ์กฐ๊ฑด๋ถ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ง์ ๋ถ๊ธฐ ๊ฒฝ๋ก๋ฅผ ํตํด ๋ณต์กํ ์ํฌํ๋ก๋ฅผ ์ค๊ณํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, AppMaster ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ด๋๋ ํ๋ก์ธ์ค ํ๋ฆ์ ๋์์ธํ๊ณ ๊ตฌ์ฑํ๊ธฐ ์ํ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ์ฌ์ฉ์๋ ์์ ๊ณผ ์ด๋ฒคํธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ฝ๊ฒ ์ ์ํ๊ณ ์๊ฐํํ ์ ์์ต๋๋ค. ์ด ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ ํน์ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๋ง๋ ๋ณต์กํ ์์ ํ๋ฆ์ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
2. ๋ฐ์ดํฐ ์ค์ผ์คํธ๋ ์ด์ : ์ด ์ธก๋ฉด์๋ ์ํฌํ๋ก์ฐ ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ๋ฌ ์์คํ , ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑธ์ณ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ด๋ฆฌํ๊ณ ๋๊ธฐํํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ค์ผ์คํธ๋ ์ด์ ์ ์ฌ์ ์ ์๋ ๊ท์น๊ณผ ํ๋กํ ์ฝ์ ์ค์ํ๋ฉด์ ์๋ก ๋ค๋ฅธ ์์ค ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ํํ๊ฒ ๊ตํ, ๋ณํ ๋ฐ ์กฐ์ํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ํ์ฉ์ ์ต์ ํํ๊ณ ์ค๋ณต์ ๋ฐฉ์งํ๋ฉฐ ๋ณด๋ค ์ ํํ ์์ฌ๊ฒฐ์ ์ ์ด์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
AppMaster PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํธํ์ฑ์ ํตํด ๋ฐ์ดํฐ ์กฐ์ ์ ์ง์ํ๋ฏ๋ก ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํํ ๋ฐ์ดํฐ ํตํฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ฉ์๋ ๋ํ ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ํ์ฌ ๊ณ ์ ํ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
3. ์๋น์ค ์ค์ผ์คํธ๋ ์ด์ : ์๋น์ค ์ค์ผ์คํธ๋ ์ด์ ์๋ ํ๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ ๊ตฌ์ฑ ์์์ธ ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ API์ ๊ด๋ฆฌ ๋ฐ ์กฐ์ ์ด ํฌํจ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ต์ ์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ค์ํ ์๋น์ค ๊ฐ์ ์ํธ ํต์ , ๋ฒ์ ๊ด๋ฆฌ, ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ํฌํจ๋ฉ๋๋ค. ์๋น์ค ์ค์ผ์คํธ๋ ์ด์ ์ ํน์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ๋ฌ ์๋น์ค๊ฐ ํจ๊ป ์๋ํ๋๋ก ์ค๊ณ๋ ๋์ , ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐ ์๋น์ค ์งํฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
AppMaster ์ฌ์ฉ์๊ฐ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ํต์ ์ ์ด์งํ๋ ๋ฐ ํ์์ ์ธ REST API ๋ฐ WSS endpoints ์์ฑํ ์ ์๋๋ก ํ์ฌ ์๋น์ค ์ค์ผ์คํธ๋ ์ด์ ์ ์ง์ํฉ๋๋ค. ๋ํ ํ๋ซํผ์ ์๋ฒ endpoints ์ ๋ํ Swagger(OpenAPI) ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ์ ๋ฌธ์ํ๋๊ณ ์ก์ธ์ค ๊ฐ๋ฅํ API ์ํ๊ณ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
4. ์ธํ๋ผ ์ค์ผ์คํธ๋ ์ด์ : ์ธํ๋ผ ์ค์ผ์คํธ๋ ์ด์ ์ ์ํฌํ๋ก ๋ด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋น์ค๋ฅผ ๋ท๋ฐ์นจํ๋ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ๋ฆฌ์์ค์ ํ๋ก๋น์ ๋, ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ ์ค์ฌ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ด๋ฌํ ๋งฅ๋ฝ์์ ์ค์ผ์คํธ๋ ์ด์ ์ ์ํํ๋ฉด ํ์ํ ๋ชจ๋ ์ธํ๋ผ ๊ตฌ์ฑ ์์๊ฐ ์๋ํ๋ ์ํฌํ๋ก๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ง์ํ๋ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ๊ธฐ๋ฅ์ ์ด๋ฉฐ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฅํฉ๋๋ค.
AppMaster ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋์ ํจํค์งํ๊ณ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ์ฌ ์ธํ๋ผ ์ค์ผ์คํธ๋ ์ด์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ธํ๋ผ๋ฅผ ์ํํ๊ฒ ํ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋ฆฌ์์ค์ ํจ์จ์ ์ธ ํ ๋น๊ณผ ๋์ ์์ค์ ํ๋ ฅ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์ค์ผ์คํธ๋ ์ด์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ณ ๋ด์์ ๋ค์ํ ์์ , ๋ฐ์ดํฐ ์์ค, ์๋น์ค ๋ฐ ์ธํ๋ผ ๊ตฌ์ฑ ์์์ ํจ์จ์ ์ธ ์กฐ์ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ด์งํจ์ผ๋ก์จ ์ํฌํ๋ก ์๋ํ ์์ญ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ค์ผ์คํธ๋ ์ด์ ์ ํ์ ํ์ฉํ๋ AppMasterno-code ํ๋ซํผ์ ์ฌ์ฉ์๊ฐ ํ์ฅ ๊ฐ๋ฅํ๊ณ ํ๋ ฅ์ ์ธ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํ๋ ๋์์ ๋ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ๋ณด์ฅํฉ๋๋ค.