CI/CD ์๋ํ, ์ฆ ์ง์์ ์ธ ํตํฉ ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ ์๋ํ๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ฑ, ํ์ง ๋ฐ ์ ๊ณต ์๋๋ฅผ ํฅ์์ํค๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ๊ธฐ๋ณธ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์๋ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ๋จ๊ณ๋ฅผ ํฌํจํ์ฌ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ๋ค์ํ ๋จ๊ณ๋ฅผ ์๋ํํ์ฌ ์ฌ๋์ ๊ฐ์ ์ ์ต์ํํ๋ฉด์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํตํฉํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. CI/CD ์๋ํ์ ๋งฅ๋ฝ์์ AppMasterno-code ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๊ฐ์ํํ๊ณ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ๋์ ํ๋ซํผ์ ์ํ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค.
CI(์ง์์ ํตํฉ)๋ ๊ฐ๋ฐ์๊ฐ ์์ค ์ฝ๋ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ๋๋ง๋ค ์๋์ผ๋ก ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ถํ๊ณ ํ ์คํธ ์ ํ๊ตฐ์ ์คํํ๋ ๊ฐ๋ฐ ๋ฐฉ์์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ์ฃผ๊ธฐ ์ด๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋ณ๋๊ณ ํด๊ฒฐ๋๋ฏ๋ก ์ค๋ฅ๋ ์ถฉ๋์ด ๋ฐ์ํ ์ํ์ด ํฌ๊ฒ ์ค์ด๋ญ๋๋ค. ๋ํ CI๋ ์ํํธ์จ์ด ์ฝ๋๊ฐ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๋ก ์ ์ง๋๋๋ก ํ์ฌ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ณ ์ฌ๋ฌ ๊ฐ๋ฐ์ ์ฝ๋ ๊ฐ์ ์ถฉ๋์ ๋ณํฉํ๋ ๋ฐ ํ์ํ ์๊ฐ์ ์ต์ํํฉ๋๋ค. State of DevOps Report์ 2020๋ ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด CI ์์น์ ์ฑํํ ์กฐ์ง์ ๋ณ๊ฒฝ ๋ฆฌ๋ ํ์์ 2.6๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋ฌ์ฑํฉ๋๋ค. ์ด๋ ๊ฒฝ์ ์์ฅ์์ ์ ์ํ ํ์ ์ ์ํ ํ์ ์์์ ๋๋ค.
CD(์ง์์ ๋ฐฐํฌ)๋ ํ์ดํ๋ผ์ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์คํ๋ ํ ์๋ ๊ฐ์ ์์ด ์ต์ข ์ฌ์ฉ์์๊ฒ ์ํํธ์จ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๋ฆด๋ฆฌ์คํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ํ ์คํธ๋๊ณ ๊ฒ์ฆ๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ค๋น ๋๋ ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌ๋์ด ์งง์ ๊ธฐ๊ฐ ๋ด์ ์ต์ข ์ฌ์ฉ์์๊ฒ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ ์ ๊ณตํ๋ค๋ ์๋ฏธ์ ๋๋ค. 2017๋ Puppet State of DevOps ๋ณด๊ณ ์์์ CD๋ฅผ ์ฑํํ ๊ณ ์ฑ๋ฅ ์กฐ์ง์ ๋ฆฌ๋ ํ์์ด 440๋ฐฐ ๋นจ๋ผ์ง๊ณ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ต๋ 46๋ฐฐ ๋ ์์ฃผ ๋ฐฐํฌํ ์ ์๋ ๋ฅ๋ ฅ์ ๋ณด๊ณ ํ์ต๋๋ค.
CI/CD ์๋ํ ํ๋ก์ธ์ค๋ ๋ค์ํ ๋๊ตฌ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ ํตํฉ, ํ ์คํธ, ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฐฐํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Gradle ๋๋ Maven๊ณผ ๊ฐ์ ๋น๋ ๋๊ตฌ, Git ๋๋ SVN๊ณผ ๊ฐ์ ์ฝ๋ ๋ฆฌํฌ์งํ ๋ฆฌ, Jenkins, Bamboo ๋๋ GitLab๊ณผ ๊ฐ์ CI/CD ์๋ฒ, Docker ๋๋ Kubernetes์ ๊ฐ์ ์ปจํ ์ด๋ํ ๊ธฐ์ ์ ์ผ๋ฐ์ ์ธ CI/CD ํ์ดํ๋ผ์ธ์ ๊ณตํต ๊ตฌ์ฑ ์์์ ๋๋ค. ์ฝ๋ ํ์ง์ ๋ณด์ฅํ๊ธฐ ์ํด ๋จ์, ํตํฉ ๋ฐ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ํฌํจํ ์๋ํ๋ ํ ์คํธ ๋๊ตฌ๋ ๋ฐฐํฌ ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ฆํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์ CI/CD ์๋ํ ์์น์ ์์ ํ ์ฑํํ ํฌ๊ด์ ์ธ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ์์ธ์ ์ธ ์์ ๋๋ค. ๋ค์ํ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๊ฐ์ถ AppMaster ํตํด ์ฌ์ฉ์๋ ๋ฐฑ์๋ ์๋น์ค, ํ๋ฐํธ์๋ ์น ์ธํฐํ์ด์ค, Android ๋ฐ iOS์ฉ ๊ธฐ๋ณธ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฐ์ ์ผ๋ก ๋์์ธํ ์ ์์ต๋๋ค. ๋ํ ์ด ํ๋ซํผ์ ํตํด ์ฌ์ฉ์๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๋ฉด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ ์ํ๊ณ , ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ , REST API ๋ฐ WSS endpoints ๊ตฌํํ ์ ์์ต๋๋ค.
AppMaster ๊ณ ์ ํ ์๋ฒ ์ค์ฌ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฏ๋ก ๊ณ ๊ฐ์ ์ฑ ์คํ ์ด์ ์ ๋ฒ์ ์ ์ ์ถํ ํ์ ์์ด ์๋ก์ด ๊ธฐ๋ฅ, UI ๋ณ๊ฒฝ ๋ฐ ๊ตฌ์ฑ์ผ๋ก ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํฅ์๋ ์ ์ฐ์ฑ์ ๋ฌผ๋ก ๋ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
AppMaster ํ๋ซํผ์ CI/CD ์๋ํ ์์น์ ํ์ฉํ์ฌ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ๋ ๋ฐ ํ์ํ ์๊ฐ์ ํฌ๊ฒ ์ค์ฌ ์กฐ์ง์ด ์์ฅ์ ๋ ๋น ๋ฅด๊ฒ ๋๋ฌํ๊ณ ์ต์ข ์ฌ์ฉ์์๊ฒ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ์ ์ง์์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. AppMaster๊ฐ ๊ตฌ์ถํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ ์ ํ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ ๊ณ ํ์ง ์ฝ๋๋ฅผ ๋ณด์ฅํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ธฐ๋ณธ ์ธํ๋ผ ๋ชจ๋์์ ์ํํธ์จ์ด ๊ฒฐํจ ๋ฐ ๋ณด์ ์ทจ์ฝ์ฑ์ ์ํ์ ์ค์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก CI/CD ์๋ํ๋ ์๊ตฌ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ฏ๋ก ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต์ ์ํ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ฑ์ ์ ์งํ๋๋ก ๋ณด์ฅํ์ฌ ๊ธฐ์ ์ ์ฑ์ฅ๊ณผ ๊ฒฝ์๋ ฅ์ ์ง์ํ๋ ์ง์ ๊ฐ๋ฅํ๊ณ ๋ฏธ๋ ์งํฅ์ ์ธ ์ํํธ์จ์ด ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก CI/CD ์๋ํ๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋๋ ๋ฐฉ์์ ๋ณํ์ํจ ํ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. CI/CD ์์น์ ์์ฉํจ์ผ๋ก์จ AppMasterno-code ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ๋์ ํ๋ซํผ์ ์ํ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ์ฌ ๊ธฐ์ ์ ์ง์ ๊ฐ๋ฅํ๊ณ ๋น์ฉ ํจ์จ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.