์ง์์ ์ธ ํตํฉ(Continuous Integration) ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ(Continuous Development)๋ฅผ ์๋ฏธํ๋ CI/CD ๊ตฌ์ฑ์ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ์์์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ์ด๋ ๊ตฌ์กฐํ๋๊ณ ์๋ํ๋ ํ์ดํ๋ผ์ธ์ ํตํด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ํํ ํตํฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ด์งํ์ฌ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๊ณ ๋์ ์ํํธ์จ์ด ํ์ง์ ์ ์งํ๋ ํฌ๊ด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด๋ ๊ณ ๊ฐ์๊ฒ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๋ฉฐ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ AppMaster ์ ๊ฐ์ ํ๋ซํผ์ ํนํ ์ค์ํฉ๋๋ค.
CI(์ง์์ ํตํฉ)๋ ์ฌ๋ฌ ๊ฐ๋ฐ์์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณต์ ๋ฉ์ธ๋ผ์ธ ์ ์ฅ์์ ๊ฐ๋ฅํ ํ ์์ฃผ ๊ทธ๋ฆฌ๊ณ ๋น ๋ฅด๊ฒ ๋ณํฉํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ์ด๊ธฐ ๋จ๊ณ์์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ์ฌ ์ ์ฒด ๊ฐ๋ฐ ์๊ฐ๊ณผ ์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๊ธฐ ์ํด ์๋ํ๋ ํ ์คํธ๊ฐ ์คํ๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ๋ฒ๊ทธ๋ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํฌ์ฐฉํ๊ณ ์์ ํ ์ ์์ต๋๋ค. Puppet์ "State of DevOps Report"์ ๋ฐ๋ฅด๋ฉด CI๋ฅผ ๊ตฌํํ๋ ์ฐ์ํ ํ์ ๋ฐฐํฌ ์คํจ๋ฅผ 24๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋ณต๊ตฌํ๊ณ ๋๋ฃ๋ณด๋ค 3๋ฐฐ ๋ฎ์ ๋ณ๊ฒฝ ์คํจ์จ์ ๋ณด์ ๋๋ค.
CD(์ง์์ ๋ฐฐํฌ)๋ CI๋ฅผ ํ ๋จ๊ณ ๋ ๋ฐ์ ์์ผ ์คํ ํ์ผ ๋น๋๋ถํฐ ์ ์ ํ ํ๊ฒฝ์ ๋ฐฐํฌ๊น์ง ์ ์ฒด ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํฉ๋๋ค. ์ด๋ฅผ ํตํด ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ต๋ํ ๋นจ๋ฆฌ ๋ฐฐํฌ๋์ด ์ต์ข ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ฌํญ, ๋ฒ๊ทธ ์์ ๋ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ ๋นจ๋ฆฌ ๊ฒฝํํ ์ ์์ต๋๋ค. ์์ ์ธ๊ธํ Puppet ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด, ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด CI/CD๋ฅผ ํ์ฑํํ๋ ํ์ ๋๋ฃ์ ๋นํด ๋ฆฌ๋ ํ์์ด 2,555๋ฐฐ ๋ ๋นจ๋ผ์ง๊ณ 200๋ฐฐ ๋ ์์ฃผ ๋ฐฐํฌํ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์๋ํ๋ CD ํ์ดํ๋ผ์ธ์ ๋ฐฐํฌ ๋น๋์ ํจ์จ์ฑ์ ๋์ผ ๋ฟ๋ง ์๋๋ผ ๋ฐฐํฌ ํ๋ก์ธ์ค์์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ณ ์ฌ๋์ ์ค์๋ก ๋ฐ์ํ ์ํ์ ์ค์ฌ์ค๋๋ค.
AppMaster ์ปจํ ์คํธ์ CI/CD ๊ตฌ์ฑ์ ์ง์์ ์ธ ํตํฉ๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ๋ฅผ ์ํ ์๋ํ ํ์ดํ๋ผ์ธ์ ์ค์ , ๊ด๋ฆฌ ๋ฐ ์ต์ ํํ๋ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ํฌํจํฉ๋๋ค. ์ด๋ ํ์ดํ๋ผ์ธ์ ํตํด ์งํ๋๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ํ๋ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ง์ํ๋ ๋ฐ ํ์ํ ์ธํ๋ผ๋ฅผ ์์ฑํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
AppMaster ์ ํ๋ซํผ์ CI/CD ๊ตฌ์ฑ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์์๊ฒ ์ฒญ์ฌ์ง ๋ณ๊ฒฝ๋ถํฐ ์ค์๊ฐ ์ ๋ฐ์ดํธ๊น์ง ๊ฐ์ํ๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ ๊ฐ์ด ํ๋ก์ ํธ์์ '๊ฒ์' ๋ฒํผ์ ๋๋ฅด๋ฉด ํ๋ซํผ์ CI/CD ํ์ดํ๋ผ์ธ์ด ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. AppMaster ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ์์ค ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๊ฒ๋ค์ ์ปดํ์ผํฉ๋๋ค; ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค. ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด Docker ์ปจํ ์ด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์งํฉ๋๋ค. 30์ด ์ด๋ด์ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํฉ๋๋ค.
์ด ์ ์ํ CI/CD ํ๋ก์ธ์ค๋ AppMaster ์ฌ์ฉ์์๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ์ ๋ถ์ฑ ๊ฐ์ : AppMaster ์ฒญ์ฌ์ง์ด ์์ ๋ ๋๋ง๋ค ์ฒ์๋ถํฐ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ํ์ํ ๋๋ง๋ค ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ฑํจ์ผ๋ก์จ ๋ณธ์ง์ ์ผ๋ก ๋จ์ ์๋ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- ํ์ฅ์ฑ : ํด๋ผ์ฐ๋ ๋ฐฐํฌ ๋ฐ Go ๊ธฐ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ๋ฐ์ด๋ ํ์ฅ์ฑ์ ์ ๊ณตํ์ฌ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ฉํ๊ณ ๊ธฐ์ ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค.
- ๋ฒ์ ์ ์ด : Docker ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐํฌ ํ๋ก์ธ์ค์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋๊ณ ์๋ ๊ฐ์ ์์ด๋ ํจ๊ณผ์ ์ธ ๋ฒ์ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ ์ฐํ ์ ๋ฐ์ดํธ : AppMaster ์ ์๋ฒ ์ค์ฌ ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ณ ๊ฐ์ App Store ๋๋ Play Market์ ์ ๋ฒ์ ์ ์ ์ถํ์ง ์๊ณ ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ(UI, ๋ก์ง ๋ฐ API ํค)๋ฅผ ํธ์ํ ์ ์์ต๋๋ค.
๋ํ AppMaster ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํด ์๋์ผ๋ก ์์ฑ๋๋ ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํ Swagger(๊ฐ๋ฐฉํ API) ๋ฌธ์๋ฅผ ํฌํจํ์ฌ CI/CD ํ๋ก์ธ์ค๋ฅผ ์ง์ํ๋ ์ถ๊ฐ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ ๋ฐ์ ์ผ๋ก CI/CD ๊ตฌ์ฑ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ต์ ํํ์ฌ ํ๋ก์ ํธ ์๋ช ์ฃผ๊ธฐ์ ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ํฅ์์ํค๋ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ง์์ ์ธ ํตํฉ๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ฒฐํฉํ AppMaster ์ ํ๋ซํผ์ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ์ ์ ํ๊ฒ ํ์ฅ๋๋ ์ต์ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ฅํฉ๋๋ค. CI/CD ๋ฐฉ์์ ์์ฉํ๊ณ ์๋ฌํจ์ผ๋ก์จ AppMasterno-code ํ๋ซํผ์ ํ์ง์ด๋ ํ์ฅ์ฑ์ ์ ํํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ์ํ์ ์ ๊ทน์ ์ผ๋ก ๊ธฐ์ฌํ๊ณ ์ค์๊ธฐ์ ๋ถํฐ ๋๊ธฐ์ ๊น์ง ๋ค์ํ ์ ํ์ ๊ณ ๊ฐ ์๊ตฌ ์ฌํญ์ ์ค์ํฉ๋๋ค.