์ง์์ ์ธ ํตํฉ, ์ง์์ ์ธ ๋ฐฐํฌ ๋ฐ/๋๋ ์ง์์ ์ธ ์ ๋ฌ์ ์๋ฏธํ๋ CI/CD ๋๊ตฌ๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์๋ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์ต์ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ์์ ํ์ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ์์ ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ํ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ์ํ๋ก ์ ์งํ๊ณ ๊ณ ํ์ง ์ํํธ์จ์ด๋ฅผ ์ ์ํ๊ฒ ์ ๊ณตํ ์ ์๋๋ก ํด์ค๋๋ค. ์ํํธ์จ์ด ์์ฅ์ ์์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ CI/CD ๋๊ตฌ์ ์ฑํ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ต์ ํํ์ฌ ๊ธฐ์ ์ด ์ ๊ณ์์ ๊ฒฝ์๋ ฅ์ ์ ์งํ ์ ์๋๋ก ํ๋ ์ค์ํ ์์์ ๋๋ค.
CI(์ง์์ ํตํฉ)๋ ํ๋ก์ ํธ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฃผ ํตํฉํ์ฌ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์์ ํธํ์ฑ์ ๋ณด์ฅํ๋ ๋ฐฉ์์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฒ์ ์ ์ด ์์คํ ์ด ์๋ก์ด ์์ ์ฌํญ์ ๊ฐ์งํ ๋๋ง๋ค ์ฝ๋์ ๋ํด ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ๊ดํ์ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ ์ด๊ธฐ์ ์ค๋ฅ์ ์ถฉ๋์ ์๋ณํ์ฌ ๊ฐ๋ฐ์์๊ฒ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ณ ์์ฐ ํ๋ก์ธ์ค๋ฅผ ์ง์ฐ์ํค๋ ๊ธฐ์ ์ ๋ถ์ฑ๊ฐ ์ถ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
CD(์ง์์ ๋ฐฐํฌ)๋ ๊ฐ ํตํฉ ๋๋ ์์ ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํตํด ํ๋ก์ ํธ ์์ค ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ผ์ด๋ธ ํ๋ก๋์ ํ๊ฒฝ์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ง์์ ์ธ ๋ฐฐํฌ๋ ์ํํธ์จ์ด๊ฐ ๋ฐฐํฌ ์ค๋น ์ํ๋ฅผ ์ง์์ ์ผ๋ก ์ ์งํ๋ ๋ฐ ์ค์ ์ ๋๋ ์ง์์ ์ธ ์ ๋ฌ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ๋ ์ ์ฃผ์ ์ฐจ์ด์ ์ ์ง์์ ์ธ ๋ฐฐํฌ๊ฐ ํญ์ ์ํํธ์จ์ด์ ์ค์ ๋ฆด๋ฆฌ์ค๋ก ์ด์ด์ง๋ ๋ฐ๋ฉด ์ง์์ ์ธ ์ ๋ฌ์ ์ํํธ์จ์ด๊ฐ ํญ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ์์ ๋ณด์ฅํ๋ค๋ ๊ฒ์ ๋๋ค.
CI/CD ๋๊ตฌ๋ ํจ์จ์ ์ธ ๋ฐฐํฌ ๋ฐ ํตํฉ ๊ดํ์ ์ด์งํ์ฌ ์ค๋ฅ ์ํ ๋ฐ ์์ฐ ์ค๋จ ์๊ฐ์ ์ค์ ๋๋ค. ๋๋ฆฌ ์ฌ์ฉ๋๋ CI/CD ๋๊ตฌ๋ก๋ Jenkins, GitLab, Bamboo, Travis CI ๋ฐ CircleCI๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ๋ฒ์ ์ ์ด ์์คํ (Git, SVN, Mercurial), ๋น๋ ์๋ํ ๋๊ตฌ(Ant, Maven, Gradle) ๋ฐ ํ ์คํธ ํ๋ ์์ํฌ(JUnit, TestNG, Selenium)์ ๊ฐ์ ๋ค๋ฅธ ๋๊ตฌ์ ํตํฉ๋์ด ํฌ๊ด์ ์ธ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
CI/CD ๋๊ตฌ๋ฅผ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํตํฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
- ์๋ ๊ฐ์ ๋ฐ ์ธ์ ์ค๋ฅ ๊ฐ์
- ๋ฌธ์ ์ ์กฐ๊ธฐ ๊ฐ์ง ๋ฐ ํด๊ฒฐ
- ํ ๋ด ํ์ ๋ฐ ์ปค๋ฎค๋์ผ์ด์ ๊ฐ์
- ์์ ์ ์ด๊ณ ๋น ๋ฅธ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ
- ์์ฐ์ฑ ํฅ์ ๋ฐ ๊ณ ๊ฐ ๋ง์กฑ๋ ํฅ์
AppMasterno-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ CI/CD ๋๊ตฌ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ง๊ณผ ์์ ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ, ์ปดํ์ผ ๋ฐ ํ ์คํธํ๋ AppMaster ์ ๊ณ ์ ํ ์ ๊ทผ ๋ฐฉ์์ ํตํฉ ์ค์ ๋ฐ์ํ ์ ์๋ ๊ธฐ์ ์ ๋ถ์ฑ์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ํ AppMaster ์ ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด CI/CD ๋๊ตฌ์ ์ฝ๊ฒ ํตํฉํ ์ ์์ผ๋ฏ๋ก ๊ณ ๊ฐ์ ์ด๋ฌํ ์ต์ ๊ฐ๋ฐ ๋ฐฉ์์ ํ์ฉํ๋ ๋์์ no-code ๊ฐ๋ฐ์ ํฅ์๋ ์๋, ๋น์ฉ ํจ์จ์ฑ ๋ฐ ์ ์์ฑ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด AppMaster ์ BP Designer๋ฅผ ์ฌ์ฉํ๋ฉด ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ์ ์๊ฐ์ ํํ์ ์์ฑํ ๋ค์ ์์ฑ๋ ์์ค ์ฝ๋์ ํตํฉํ ์ ์์ต๋๋ค. ๋ํ AppMaster ์ REST API ๋ฐ WSS ์๋ํฌ์ธํธ๋ ์๋ฒ์ธก ๋ก์ง๊ณผ ํด๋ผ์ด์ธํธ์ธก ๋ก์ง ๊ฐ์ ์ํํ ํตํฉ์ ์ ๊ณตํ์ฌ ์ํํ๊ณ ์ง์์ ์ธ ๋ฐฐํฌ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค. ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ CI/CD ํ๋ก์ธ์ค ๊ฐ์ ์ด๋ฌํ ํตํฉ ์์ค์ ํจ์จ์ ์ด๊ณ ์ต์ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ด์งํ๋ ค๋ AppMaster ์ ๋ ธ๋ ฅ์ ์ ์ฆํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก CI/CD ๋๊ตฌ๋ ํ๋์ ์ด๊ณ ํจ์จ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ์์ ์ฑํํ๋ ค๋ ์กฐ์ง์ ์์ด์๋ ์ ๋ ๋๊ตฌ์ ๋๋ค. AppMaster ์ ๊ฐ์ no-code ๊ฐ๋ฐ ํ๋ซํผ๊ณผ ํตํฉํ๋ฉด ๊ธฐ์ ์ ๊ฐ์ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค, ๋น์ฉ ์ ๊ฐ, ๊ณ ํ์ง์ ์์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์์ ์ค๋ ์์ ๊ฐ ๋ฑ์ ์ด์ ์ ํฌ๊ฒ ๋๋ฆด ์ ์์ต๋๋ค. ์ง์์ ์ธ ํตํฉ๊ณผ ๋ฐฐํฌ๋ฅผ ํตํด ์กฐ์ง์ ์ค๋๋ ๋์์์ด ์งํํ๋ ์ํํธ์จ์ด ํ๊ฒฝ์์ ๊ฒฝ์ ์ฐ์๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.