์ํํธ์จ์ด ๊ฐ๋ฐ ๋งฅ๋ฝ์์ CI/CD ํ์ ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ ๋ฐ์ ์ธ ํจ์จ์ฑ, ํ์ง ๋ฐ ์์ ์ฑ์ ํฅ์์ํค๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ CI(์ง์์ ํตํฉ)์ CD(์ง์์ ๋ฐฐํฌ) ๋ฐฉ์์ ์ตํฉ์ ๋๋ค. ์ด๋ฌํ ๊ดํ์ ์ ํ ๊ฐ๋ฐ ๋ผ์ดํ์ฌ์ดํด ๋ด์์ ๊ฐ๋ฐ์, ํ ์คํฐ, ์ด์ ํ ๋ฐ ๊ธฐํ ์ดํด๊ด๊ณ์ ๊ฐ์ ์์ฌ์ํต, ํ์ ๋ฐ ์ฑ ์ ๊ณต์ ๋ฌธํ๋ฅผ ์กฐ์ฑํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ์ฃผ์ ๋ชฉํ๋ ๊ณ ํ์ง์ ์์ ์ ์ด๊ณ ์์ ํ ์ฝ๋๊ฐ ์ ์์ ์ ๊ณต๋๋๋ก ๋ณด์ฅํ์ฌ ํ์ด ์ฑ๊ณต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๊ฐ๋ฐ, ๋ฐฐํฌ ๋ฐ ์ ์งํ ์ ์๋๋ก ์ง์ํ๋ ๊ฒ์ ๋๋ค.
CI(์ง์์ ํตํฉ)๋ ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋์ด ์๋ก ๊ฐ๋ฐ๋ ์ฝ๋๋ฅผ ๊ธฐ๋ณธ ์ฝ๋๋ฒ ์ด์ค์ ์์ฃผ(์ผ๋ฐ์ ์ผ๋ก ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ) ํตํฉํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ด๋ฌํ ๊ดํ์ ํตํด ๊ฐ๋ฐ์๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๋ ์ฝ๋๋ฒ ์ด์ค์ ๋ํด ํ์ ํ๊ณ , ์ถฉ๋์ ์ต์ํํ๊ณ , ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ํตํฉ ๋ฌธ์ ๋ฅผ ํ์ ํ ์ ์์ต๋๋ค. CI๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ์ฝ๋์ ์ํ์ ํ์ง์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ๋ฒ๊ทธ, ์๋ชป๋ ๋ณํฉ ๋ฐ ๊ธฐํ ๋ฌธ์ ๋ฅผ ์ฆ์ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ธ๊ธฐ ์๋ CI ์์คํ ์ผ๋ก๋ Jenkins, Travis CI, CircleCI ๋ฑ์ด ์์ต๋๋ค.
CD(์ง์์ ๋ฐฐํฌ)์๋ ์ผ๋ จ์ ์๋ํ๋ ํ ์คํธ ๋ฐ ๊ฒ์ฆ์ ํต๊ณผํ ํ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก๋์ ํ๊ฒฝ์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํจ์ผ๋ก์จ CD๋ฅผ ํตํด ํ์ ์ฌ๋์ ๊ฐ์ ์ ์ต์ํํ๋ฉด์ ๊ธฐ๋ฅ, ์ ๋ฐ์ดํธ ๋ฐ ๋ฒ๊ทธ ์์ ์ ์ ์ํ๊ฒ ๋ฆด๋ฆฌ์คํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ํํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ด๋์ด์์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋จ์ถํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. AWS CodeDeploy, Spinnaker ๋ฐ GitLab CI/CD์ ๊ฐ์ CD ์์คํ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
CI/CD ํ์ ์ ๊ฐ๋ฐ์์ ์ด์ ํ ๊ฐ์ ๊ธฐ์กด ์ฌ์ผ๋ก๋ฅผ ๋ฌด๋๋จ๋ฆฌ๊ณ ๊ณ ํ์ง ์ํํธ์จ์ด๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ ๋จ์ผ ํตํฉ ํ์ผ๋ก ํตํฉํ๋ ค๋ DevOps ๋ฌธํ์ ๊ธฐ๋ฐ์ ์ค์ ํฉ๋๋ค. DevOps ๋ฐฉ์์ ๋ ํ์ ๊ฐ์ ๊ณผ ์ญ๋์ ํ์ฉํ์ฌ ๊ณํ, ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ, ์ ์ง ๊ด๋ฆฌ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์์ CI/CD ํ์ ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์์ ์ธ ์ธก๋ฉด์ ๋๋ค. AppMaster ์ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ ๊ฐ์ ํ์ง๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ์ ํ์ํค์ง ์์ผ๋ฉด์ ์๋์ ํจ์จ์ฑ์ ์ค์ ์ ๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. CI/CD ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํตํฉํจ์ผ๋ก์จ AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ฒญ์ฌ์ง์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์ ํตํด ์ํํ๊ฒ ์ ํ๋๋๋ก ๋ณด์ฅํ์ฌ 30์ด ์ด๋ด์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์์ฑํ๊ณ ํญ์ ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ์ฌ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ณ ๊ฐ์ด AppMaster ํ๋ซํผ ๋ด์์ ์ฒญ์ฌ์ง์ ์์ ํ๊ณ '๊ฒ์' ๋ฒํผ์ ๋๋ฅด๋ฉด AppMaster ์๋์ผ๋ก ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ์ด๋ฅผ Docker ์ปจํ ์ด๋(๋ฐฑ์๋์ฉ)์ ํจํค์งํ๊ณ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์ผ๊ด๋๊ณ ๊ณ ํ์ง์ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์์ฑ๋๋๋ก ๋ณด์ฅํ๋ฏ๋ก AppMaster ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ CI/CD ํ์ ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
๋ํ AppMaster ๋๋ฆฌ ์ฌ์ฉ๋๋ CI/CD ๋๊ตฌ ๋ฐ ์๋น์ค์์ ํตํฉ์ ์ง์ํ๋ฏ๋ก ์ด๋ฏธ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ฑฐ๋ ์ธ๋ถ ์์คํ ๊ณผ ํตํฉํ๋ ค๋ ํ์ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํน์ CI/CD ์๊ตฌ ์ฌํญ์ด๋ ์ ํธ๋์ ๊ด๊ณ์์ด AppMaster ๊ณ ๊ฐ์๊ฒ ์ํํ๊ณ ์ ์ฐํ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก CI/CD ํ์ ์ ์ต์ ์ํํธ์จ์ด์ ์ฑ๊ณต์ ์ธ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ง์์ ์ธ ํตํฉ๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ํตํฉํจ์ผ๋ก์จ ํ์ ์ฝ๋๋ฒ ์ด์ค์ ํจ์จ์ฑ, ํ์ง ๋ฐ ์์ ์ฑ์ ํฌ๊ฒ ํฅ์์ํค๋ ๋์์ ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ ๋ฐ์ดํธ๊ฐ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋๋ฌํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค. ๋์์์ด ์งํํ๋ ๊ธฐ์ ํ๊ฒฝ์์ CI/CD ํ์ ์ ์กฐ์ง๊ณผ ๊ฐ์ธ์ด AppMaster ์ ๊ฐ์ ํ๋ซํผ์ด ์ ๊ณตํ๋ ํฅ์๋ ์๋, ๋น์ฉ ํจ์จ์ฑ ๋ฐ ํ์ฅ์ฑ์ ํ์ฉํ์ฌ ๊ฒฝ์๋ ฅ๊ณผ ํ์ ์ ์ ์งํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.