๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ CI(์ง์์ ํตํฉ)๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๋ฅผ ์์ง๋ ฅ ์๋ ์์คํ ์ ์ค์๊ฐ์ผ๋ก ํตํฉํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ ์ํํธ์จ์ด ์์ง๋์ด๋ง ๋ฐฉ์์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ํตํฉ ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ํจ์จ์ ์ผ๋ก ๊ฐ์งํ๊ณ ์์ ํ์ฌ ์ํํธ์จ์ด ์์ ์ฑ, ํ์ง ๋ฐ ์ํํ ๋ฐฐํฌ๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ต๊ทผ ๋ช ๋ ๋์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๊ฐ ์ฃผ๋ชฉ์ ๋ฐ์์ ๋ฐ๋ผ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ์์ฉํ๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋๋ ์๋น์ค๋ฅผ ์์ฉํ๋ CI์ ํ์์ฑ์ด ๋์ฑ ์ค์ํด์ก์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ์๋น์ค๊ฐ ๋จ์ผ ๊ธฐ๋ฅ ๋๋ ๋น์ฆ๋์ค ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ์๊ท๋ชจ ์์จ ์๋น์ค ์ ํ๊ตฐ์ผ๋ก ๋๋๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์๋น์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์จํ๊ฒ ๊ฒฐํฉ, ๊ฐ๋ฐ, ๋ฐฐํฌ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋๋ฏ๋ก ๋ณด๋ค ์ ์ฐํ๊ณ ํจ์จ์ ์ด๋ฉฐ ๋ฏผ์ฒฉํ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ ์๋น์ค๊ฐ API๋ฅผ ํตํด ํต์ ํ๊ณ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ๋ฐ ๋ฐฐํฌ ํ๊ฒฝ์ ํ์ฉํ๋ฏ๋ก ๊ฐ๋ ฅํ CI ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ถ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ง์์ ์ธ ํตํฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์์ค ์ฝ๋๋ก ๊ตฌ์ฑ๋ ๊ณต์ ์ ์ฅ์๋ฅผ ์ ์งํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๊ฐ๋ฐ์๋ ์๊ณ ์ ์ง์ ์ธ ๋ณ๊ฒฝ์ ํตํด ์ด ์ ์ฅ์์ ์์ฃผ ๊ธฐ์ฌํฉ๋๋ค. ์ ์ถํ ๋๋ง๋ค ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ ํ๋ก์ธ์ค๊ฐ ์ฝ๋์ ์ ํ์ฑ๊ณผ ํ์ง์ ๊ฒ์ฆํฉ๋๋ค. CI ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ถ๋ฉด ํตํฉ ๋ฌธ์ ์ ์ํ์ด ์ค์ด๋ค๊ณ ์ฝ๋ ํ์ง์ด ํฅ์๋๋ฉฐ ์ถ์ ๊ธฐ๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค์ฉ CI๋ ์ด ๊ฐ๋ ์ ํ์ฅํ์ฌ ์ฌ๋ฌ ์์จ ์๋น์ค์ ๋ณต์ก์ฑ์ ์์ฉํฉ๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค์ฉ CI์ ํต์ฌ ์ธก๋ฉด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ค ์ฝ๋ ๊ด๋ฆฌ: ๊ฐ ์๋น์ค์ ๋ํ ๊ฐ๋ณ ์ ์ฅ์์ ์์ค ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํจ์จ์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ ์ถ์ ํ๋ฉฐ, ์ด๋ ๋ค์ํ ๊ฐ๋ฐ์๋ ํ์์ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค. AppMasterno-code ํ๋ซํผ๊ณผ ๊ฐ์ ํ๋ซํผ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ , ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์์ค ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ ์ฝ๋ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ตฌํํฉ๋๋ค.
- ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ ํ๋ก์ธ์ค: Jenkins, Travis CI ๋๋ CircleCI์ ๊ฐ์ CI ์์คํ ์ ๊ฐ ๊ฐ๋ณ ์๋น์ค์ ๋ํ ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ์ํํ๋๋ก ๊ตฌ์ฑ๋์ด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฝ๋ ์ปดํ์ผ ๋ฐ ํจํค์ง, ๋จ์ ๋ฐ ํตํฉ ํ ์คํธ ์คํ, ์ฑ๋ฅ, ํ์ง ๋ฐ ๊ธฐํ ์ฃผ์ ์งํ์ ๋ํ ๋ณด๊ณ ์ ์์ฑ์ด ํฌํจ๋ฉ๋๋ค. AppMaster ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ์์ฑ ๋ฐ ์ปดํ์ผ์ด ์ต์ ์ผ๋ก ์คํ๋์ด ์ดํด๊ด๊ณ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ฅํฉ๋๋ค.
- ๋ฐฐํฌ ๋ฐ ๊ตฌ์ฑ ๊ด๋ฆฌ: ๋ง์ดํฌ๋ก์๋น์ค ๋ฐฐํฌ๋ ๊ฐ๋ฐ ๋ฐ ์ค๋น๋ถํฐ ํ๋ก๋์ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ์๋ํ๋๊ณ ์กฐ์ ๋์ด์ผ ํฉ๋๋ค. Docker ์ปจํ ์ด๋ ๋๋ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ซํผ์์ ๊ท ์ผํ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. AppMaster ๋์ปคํ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ํ๋ฏ๋ก ๊ณ ๊ฐ์ ์ด๋ค ํ๊ฒฝ์์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋ฐ ํผ๋๋ฐฑ: ๊ณ ํ์ง์ ํจ์จ์ ์ธ ๋ง์ดํฌ๋ก์๋น์ค CI๋ฅผ ์ ์งํ๋ ค๋ฉด ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง๊ณผ ํผ๋๋ฐฑ ๋ฃจํ๊ฐ ํ์์ ์ ๋๋ค. ์ ๊ธฐ์ ์ธ ์ฝ๋ ๊ฒํ , ํ ์คํธ ๋ฒ์ ๋ชจ๋ํฐ๋ง, ๋น๋ ์ํ ํ๊ฐ, ์ฑ๋ฅ ์งํ ์ ์ฉ์ ๊ฐ๋ฐ ํ์ด ์ค์๊ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
- ํ์ฅ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ: ๋ง์ดํฌ๋ก์๋น์ค CI ํ์ดํ๋ผ์ธ์์๋ ๋์ ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ฐ ์๋น์ค๋ฅผ ์ํ์ผ๋ก ํ์ฅํ๊ณ ๋ก๋ ๋ฐธ๋ฐ์ฑํ ์ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. AppMaster ํ๋ซํผ์ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ฉํ์ฌ ์ํ ๋น์ ์ฅ ๋ฐฑ์๋๋ฅผ ์์ฑํ์ฌ ๊ฐ์ฅ ๊น๋ค๋ก์ด ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์์๋ ํ์ํ ํ์ฅ์ฑ์ ๋ฌ์ฑํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ ์ง์์ ํตํฉ์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๋ ๊ณ ์ ํ ๊ณผ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ํจ์จ์ ์ธ ์์ค ์ฝ๋ ๊ด๋ฆฌ, ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ ํ๋ก์ธ์ค, ๋ฐฐํฌ ๋ฐ ๊ตฌ์ฑ ๊ด๋ฆฌ, ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง ๋ฐ ํ์ฅ์ ํฌํจํ๋ ๊ฐ๋ ฅํ CI ํ์ดํ๋ผ์ธ์ ์ฑํํจ์ผ๋ก์จ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ ์์ฐ์ฑ ํฅ์, ์ถ์ ๊ธฐ๊ฐ ๋จ์ถ, ์ํํธ์จ์ด ํ์ง ํฅ์์ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ AppMasterno-code ํ๋ซํผ๊ณผ ๊ฐ์ ํ๋ซํผ๊ณผ ๊ฒฐํฉํ๋ฉด ํ์ด ์ต์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ ๋ฐ์ ์ํฌ ์ ์์ต๋๋ค.