CI(์ง์์ ํตํฉ)๋ ์ฝ๋ ์์ ์ฌํญ์ ์ค์ ์ฝ๋ ์ ์ฅ์์ ์๋์ผ๋ก ๋ณํฉํ๊ณ ๊ฒ์ฆํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ์์ ๋๋ค. ์ด ๋ฐฉ์์ ์ฃผ์ ๋ชฉํ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํตํฉ ์ค๋ฅ์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ ๋๋ค. CI๋ ๊ฐ๋ฐ ํ ๊ตฌ์ฑ์์ด ๊ฐ๋ณ ์ฝ๋ ๊ธฐ์ฌ๋ฅผ ์๊ท๋ชจ๋ก ์์ฃผ ๋ณํฉํ๋ค๋ ๊ฐ๋ ์ ์ฅ๋ คํ์ฌ "๋น ๋ฑ " ํตํฉ ์ ๊ทผ ๋ฐฉ์์์ ๋ฐ์ํ๋ ๋ณต์ก์ฑ๊ณผ ์ํ์ ๋ฐฉ์งํฉ๋๋ค.
์น ์ฌ์ดํธ ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ CI๋ ๊ฐ๋ฐ์๊ฐ ๋์ ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฏธ๋ฆฌ ์ ์๋ ํ์ง ํ์ค ์ธํธ์ ๋ํด ์๋์ผ๋ก ํ ์คํธ๋๋๋ก ๋ณด์ฅํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ง, ์์ ์ฑ ๋ฐ ์ ๋ขฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ฒฐํจ, ์๋ชป๋ ๊ตฌ์ฑ, ๋ณด์ ์ทจ์ฝ์ฑ ๋ฐ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์กฐ๊ธฐ์ ์๋ณํ๊ณ ์์ ํ ์ ์์ด ๊ถ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ์๊ฐ๊ณผ ๋น์ฉ์ด ์ ๊ฐ๋ฉ๋๋ค.
State of DevOps Report์ ๋ฐ๋ฅด๋ฉด, CI ๊ดํ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌํํ ๊ณ ์ฑ๋ฅ ์กฐ์ง์ ์ ์ฑ๊ณผ ์กฐ์ง์ ๋นํด ์ฝ๋ ๋ฐฐํฌ ๋น๋๊ฐ 208๋ฐฐ, ์ปค๋ฐ์์ ๋ฐฐํฌ๊น์ง์ ๋ฆฌ๋ ํ์์ด 106๋ฐฐ, ์ฌ๊ณ ๋ณต๊ตฌ ์๋๊ฐ 2604๋ฐฐ ๋ ๋น ๋ฆ ๋๋ค. ๋ํ ์ด๋ค ์กฐ์ง์ ๋ณ๊ฒฝ ์คํจ์จ์ด 7๋ฐฐ๋ ๋ฎ๋ค๊ณ ๋ณด๊ณ ํ์ฌ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ญ๋๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํฅ์์ํค๋ ๋ฐ ์์ด CI์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ง์์ ํตํฉ์ ํต์ฌ์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฅ์์ ํธ์๋ ๋ ์ํ๋ ์์ ๋ฐ ํ ์คํธ์ ์์๋ฅผ ์ ์ํ๋ ๊ฐ๋ ฅํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถ์ ์์กดํฉ๋๋ค. ์ผ๋ฐ์ ์ธ CI ํ์ดํ๋ผ์ธ์๋ ๋จ์ ํ ์คํธ, ์ฝ๋ ์ ์ฉ ๋ฒ์ ๋ถ์, ์ ์ ์ฝ๋ ๋ถ์, ๋ณด์ ๋ถ์, ์ฝ๋ ๋ฆฐํธ, ํตํฉ ํ ์คํธ, ์ฑ๋ฅ ํ ์คํธ, ์ฌ์ฉ์ ์น์ธ ํ ์คํธ ๋ฑ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ํ์ดํ๋ผ์ธ์ ๊ฐ ๋จ๊ณ๋ ๋์ ๋๋ ์ฝ๋์ ๋ค์ํ ์ธก๋ฉด์ ๊ฒ์ฆํ์ฌ ์น ์ฌ์ดํธ์ ์ ๋ฐ์ ์ธ ํ์ง, ์ฑ๋ฅ ๋ฐ ์์ ์ฑ ์๊ตฌ ์ฌํญ์ ์ค์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์น ๊ฐ๋ฐ ์ธ๊ณ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ CI ๋๊ตฌ ๋ฐ ํ๋ซํผ์ผ๋ก๋ Jenkins, Travis CI, CircleCI ๋ฐ GitLab CI/CD๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ CI ํ์ดํ๋ผ์ธ์ ์ค์ , ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌํ๊ณ , ํ ์คํธ ์คํ์ ์๋ํํ๊ณ , ํ์ดํ๋ผ์ธ์ ์งํ ์ํฉ์ ๋ชจ๋ํฐ๋งํ๊ณ , ์คํจ ์ ์๋ฆผ์ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค. ๋ํ ์ด๋ฌํ ํ๋ซํผ์ ๋ฒ์ ์ ์ด ์์คํ , ๋ฌธ์ ์ถ์ ๊ธฐ, ๋ฐฐํฌ ๋๊ตฌ ๋ฑ ๋ค๋ฅธ ๊ฐ๋ฐ ๋๊ตฌ์์ ํตํฉ์ ์ ๊ณตํ์ฌ CI๋ฅผ ๊ธฐ์กด ๊ฐ๋ฐ ์ํฌํ๋ก ๋ฐ ํ๋ก์ธ์ค์ ์ํํ๊ฒ ํตํฉํ ์ ์๋๋ก ํด์ค๋๋ค.
๊ฐ๋ ฅํ no-code ํ๋ซํผ์ธ AppMaster ๊ณ ๊ฐ์๊ฒ ์น ์ฌ์ดํธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํ ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด ์ํ๊ณ์์ CI๋ ๊ณ ํ์ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ณ ํจ์จ์ ์ด๋ฉฐ ์๊ธฐ์ ์ ํ๊ฒ ์ ๊ณตํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. AppMaster ์ ๋ฐฑ์๋๋ Go(golang)๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ Vue3 ํ๋ ์์ํฌ ๋ฐ JS/TS๋ก ์์ฑ๋๋ฉฐ, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ Android์ฉ Kotlin ๋ฐ Jetpack Compose, iOS์ฉ SwiftUI ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค. ์ฒญ์ฌ์ง์ ์์ ํ ๋๋ง๋ค ๊ณ ๊ฐ์ AppMaster ์ ์ต์ฒจ๋จ no-code ํ๋ซํผ์ ํตํด ๋จ 30์ด ๋ด์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ธํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
CI ๋ฐฉ์์ ์ฑํ๊ณผ ๊ตฌํ์ ์ด์งํ๊ธฐ ์ํด AppMaster ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํด ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํ Swagger(OpenAPI) ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋๋ฒ ์ด์ค ์ ์ฒด์์ ์ผ๊ด์ฑ, ์ถ์ ์ฑ ๋ฐ ๋ฒ์ ์ ์ด๋ฅผ ์ํํ๊ฒ ์ ์งํ ์ ์์ต๋๋ค. ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์์ฑํ๋ ํ๋ซํผ์ ๊ธฐ๋ฅ์ ๊ธฐ์ ๋ถ์ฑ๊ฐ ๋์ ๋ ์ํ์ ์ ๊ฑฐํ๊ณ ์ค๋ฅ ์๋ ์ฝ๋ ๊ธฐ๋ฐ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ ๊ตฌํ๋ ์ง์์ ์ธ ํตํฉ ํ๋ก์ธ์ค๋ ๋ฌธ์ ์ ์กฐ๊ธฐ ๋ฐ๊ฒฌ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ๊ณต์ ์ฝ๋ ์์ ๊ถ ๋ฐ ์ฑ ์ ์์น์ ์ฅ๋ คํ๋ฉฐ ์ฝ๋ ๊ธฐ์ฌ์ ๋น๋ฒํ ์๊ท๋ชจ ํตํฉ์ ์ฅ๋ คํจ์ผ๋ก์จ ์น ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ํฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ดํ์ ์์ฉํจ์ผ๋ก์จ ์กฐ์ง์ ๊ฐ๋ฐ ์ผ์ ์ ๊ฐ์ํํ๊ณ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์์ ๋๋ฒ๊น , ์์ ๋๋ ์ฌ์ค๊ณ์ ๊ด๋ จ๋ ๋น์ฉ์ ์ ๊ฐํ๋ฉด์ ์์ ์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ๊ณ ํ์ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค.