CI/CD & ํ์ดํ๋ผ์ธ
๐ CI/CD
CI/CD๋ ์ฝ์ด๋ก, ๋ช ๊ฐ์ง์ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. CI/CD์ "CI"๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์๋ํ ํ๋ก์ธ์ค์ธ ์ง์์ ์ธ ํตํฉ(Continuous Integration)์ ์๋ฏธํ๋ค. CI๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌํํ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋์ด ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํตํฉ๋๋ฏ๋ก ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๊ด๋ จ๋ ์ฝ๋ ์์ ์ ํ ๊ฒฝ์ฐ ์๋ก ์ถฉ๋ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
CI/CD์ "CD"๋ ์ง์์ ์ธ ์๋น์ค ์ ๊ณต(Continuous Delivery) ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ(Continuous Deployment)๋ฅผ ์๋ฏธํ๋ฉฐ ์ด ๋ ์ฉ์ด๋ ์ํธ ๊ตํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ๋ ๊ฐ์ง ์๋ฏธ ๋ชจ๋ ํ์ดํ๋ผ์ธ์ ์ถ๊ฐ ๋จ๊ณ์ ๋ํ ์๋ํ๋ฅผ ๋ปํ์ง๋ง ๋๋ก๋ ์ผ๋ง๋ ๋ง์ ์๋ํ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์๋์ง๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ๋ณ๋๋ก ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค.
๐ CI/CD์ ๋จ๊ณ
[๊ทธ๋ฆผ] ์ผ๋ฐ์ ์ธ ์ฑ์ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์ ๋จ๊ณ
โจ ์ง์์ ํตํฉ(Continuous Integration, CI)
๊ฐ๋ฐ์๋ฅผ ์ํ ์๋ํ ํ๋ก์ธ์ค๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, Code - Build - Test ๋จ๊ณ์์ ๊พํ ์ ์๋ค.
- Code : ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์๊ฒฉ ์ฝ๋ ์ ์ฅ์ (Ex. github repository)์ pushํ๋ ๋จ๊ณ
- Build : ์๊ฒฉ ์ฝ๋ ์ ์ฅ์๋ก๋ถํฐ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ์ ๋ ํ ์คํธ ํ ๋น๋ํ๋ ๋จ๊ณ
- Test : ์ฝ๋ ๋น๋์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์ ํตํฉ๋๋ ์ง ํ์ธํ๋ ๊ณผ์
์ด ๊ณผ์ ์์ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ์ฆ๊ฒ ์๊ฒฉ ์ฝ๋ ์ ์ฅ์์ pushํ๊ณ , ํ ์คํธ ๋ฐ ๋น๋๋ฅผ ํ๋ฉฐ ๋น๋ ๊ฒฐ๊ณผ๋ฅผ ํตํด ๋น๋๊ฐ ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง ํ์ธ์ ํ๊ณ , ํตํฉ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ํตํด ๊ฐ์ ๋ฐฉ์์ ์ฐพ๋๋ค. ์ด ์ง์์ ์ธ ํตํฉ ๊ณผ์ ์ ํตํด ๊ฐ๋ฐ์๋ ๋ฒ๊ทธ๋ฅผ ์ผ์ฐ ๋ฐ๊ฒฌํ ์ ์๊ณ , ํ ์คํธ๊ฐ ์๋ฃ๋ ์ฝ๋์ ๋ํด ๋น ๋ฅธ ์ ๋ฌ์ด ๊ฐ๋ฅํด์ง๋ฉฐ ์ง์์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
์ง์์ ํตํฉ์ ๋ชจ๋ ์ฝ๋ ๋ณํ๋ฅผ ํ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ด๋ฆฌํ๋ ๊ฒ๋ถํฐ ์์ํ๋ค. ๋ชจ๋ ๊ฐ๋ฐํ์ด ์ฝ๋์ ๋ณํ๋ฅผ ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์, ํฌ๋ช ํ๊ฒ ๋ฌธ์ ์ ์ ํ์ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฆ์ ํ ๋ฆฌํ์คํธ(pull request)์ ๋จธ์ง(merge)๋ก ์ฝ๋๋ฅผ ์์ฃผ ํตํฉํ๋ค. ์ด ๋, ๊ธฐ๋ณธ์ ์ธ ํ ์คํธ๋ ์๋์ํฌ ์ ์๋ค. ์ด๋ ๊ฒ ์ง์์ ํตํฉ์ ํตํด ๊ฐ๋ฐํ์ ๊ฐ์ ๊ฐ๋ฐํ ์ฝ๋๋ฅผ ์ด๋ฅธ ์์ ์ ์์ฃผ ํฉ์น๊ณ ์์ฃผ ํ ์คํธ ํด๋ณผ ์ ์๋ค.
์ง์์ ํตํฉ์ผ๋ก ๋ณด์ ์ด์, ์๋ฌ ๋ฑ์ ์ฝ๊ฒ ํ์ ํ ์ ์์ด ํด๋น ์ด์๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ํ ์ ์๋ค. ์ด์ ์๋ ๊ฐ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ํฉ์น๊ณ ๋ ํ, ๋ชจ๋ ๋ชจ์ฌ์ ๋น๋๋ฅผ ์์ํ๊ณ ๋์์ผ ๋ฌธ์ ์ ์ ํ์ ํ ์ ์์๋ค. ์ง์์ ํตํฉ์ด ์ ์ฉ๋ ๊ฐ๋ฐํ์ ์ฝ๋๋ฅผ ๋จธ์งํ๊ธฐ ์ , ์ด๋ฏธ ๋น๋ ์ค๋ฅ๋ ํ ์คํธ ์ค๋ฅ๋ฅผ ํ์ธํ์ฌ ํจ์ฌ ๋ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ํ ์ ์๊ฒ ๋์๋ค.
โจ ์ง์์ ๋ฐฐํฌ(Continuous Delivery/Deployment, CD)
์ง์์ ์ธ ์๋น์ค ์ ๊ณต(Continuous Delivery) ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ(Continuous Deployment)๋ฅผ ์๋ฏธํ๋ฉฐ ์ด ๋ ์ฉ์ด๋ ์ํธ ๊ตํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ์ด ๋ถ๋ถ์ Release - Deploy - Operate ๋จ๊ณ์์ ๊พํ ์ ์๋ค.
- Release : ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํํธ์จ์ด ํจํค์ง๋ฅผ ์์ฑ
- Deploy : ํ๋ก๋น์ ๋์ ์คํํ๊ณ ์๋น์ค๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ, ์ค์ง์ ์ธ ๋ฐฐํฌ ๋ถ๋ถ
- Operate : ์๋น์ค ํํฉ์ ํ์ ํ๊ณ ์๊ธธ ์ ์๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ง
์ง์์ ๋ฐฐํฌ์ ๊ฒฝ์ฐ, ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉ๋ถํฐ ํ๋ก๋์ ์ ์ ํฉํ ๋น๋ ์ ๊ณต์ ์ด๋ฅด๋ ๋ชจ๋ ๋จ๊ณ๋ก, ํ ์คํธ ์๋ํ์ ์ฝ๋ ๋ฐฐํฌ ์๋ํ๊ฐ ํฌํจ๋๋ค.
์ด ํ๋ก์ธ์ค๋ฅผ ์๋ฃํ๋ฉด ํ๋ก๋์ ์ค๋น๊ฐ ์๋ฃ๋ ๋น๋๋ฅผ ์ฝ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋์ผ๋ก ๋ฐฐํฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ํ์ด ๋ณด๋ค ๋น ๋ฅด๊ณ ์์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ์ผ๋ก ๋ฐฐํฌํ ์ ์๊ฒ ๋๋ค.
์ต๊ทผ์๋ ํด๋ผ์ฐ๋ ๊ธฐ์ ๋ฐ์ ๊ณผ ๋ง๋ฌผ๋ ค ์ง์์ ํตํฉ๊ณผ ์ง์์ ๋ฐฐํฌ๊ฐ ๋น ๋ฅธ ์๋๋ก ์งํ๋๋ฉด์ CI/CD๋ฅผ ํ๋๋ก ๋ฌถ์ด์ ๋ค๋ฃจ๋ ๊ฒฝ์ฐ๊ฐ ์ ์ฐจ ์ฆ๊ฐํ๊ณ ์๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ์๋ ๋ฐฐํฌ ์์ฒด๊ฐ ์๋นํ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ํ๋ ์ผ์ด์ด์ ๋ฐฐํฌ ์ด์ ๋จ๊ณ์์ ๋ง์ ๊ณ ๋ฏผ์ ํ๊ณค ํ๋ค. ์๋ฒ๋ฅผ ์ ๋ถ ์ฌ์์ํด์ผ ํ๋ค๊ฑฐ๋, ์ผ๋ถ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ๋ง์๊ธฐ ๋๋ฌธ์ด๋ค. ์์ฆ์ ๊ณ ๊ฐ์ ํผ๋๋ฐฑ์ ๋นจ๋ฆฌ ๋ฐ๊ธฐ ์ํด์๋ผ๋, ์๋น์ค๋ฅผ ์ค๋จํ์ง ์๊ธฐ ์ํด์๋ผ๋ ๋ฆด๋ฆฌ์ฆ๋ง ์ ๊ธฐ๋กํด๋๊ณ ๋ฐ๋ก๋ฐ๋ก ๋ฐฐํฌํ๋ ์ฌ๋ก๊ฐ ์ฆ๊ฐํ๊ณ ์๋ค.
์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ํ ํฌ ๊ธฐ์ ๋ค์ ๋ค์ํ ๋ชจ๋ํฐ๋ง ํด๊ณผ ์ฅ์ ๋์ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ จํด ๋ฐฐํฌ์ ๋ํ ์์ ๊ฐ์ ๋์ฌ ์กฐ์ง์ ๋น์ฆ๋์ค ์ญ๋์ ํค์ฐ๊ณ ์๋ค. ์ฒ์์ ์๊ฐํ ๋ฏ์ด “ํ๋ฃจ์ 1,000๋ฒ์ ๋ฐฐํฌ๋ฅผ ํ ์ ์๋๊ฐ?” ๋ ์กฐ์ง์ ๊ธฐ์ ์ ํ์ฅ ์ญ๋์ ํ๋จํ ์ ์๋ ์ค์ํ ์งํ์ด๋ค.
๋ฑ ํฌ์ ๋ฌ๋ - ํ๋ฃจ์ 1000๋ฒ ๋ฐฐํฌํ๋ ์กฐ์ง ๋๊ธฐ
๐ ์ง์์ ๋ฐฐํฌ ์ฌ๋ก
[๊ทธ๋ฆผ] ์ง์์ ๋ฐฐํฌ ์ฌ๋ก
์ง์์ ๋ฐฐํฌ์ ๊ฐ์ฅ ํํ ์ฌ๋ก๊ฐ Github Page์ด๋ค. ์ง์ ํด๋ ๋๋ ํฐ๋ฆฌ์ ์ ํด์ง ๋ฐฉ์์ ๋ฐ๋ผ ์ ์ปค๋ฐํ๊ธฐ๋ง ํ๋ฉด, Github Page๊ฐ ์์์ ํด๋น index.html ํ์ผ๊ณผ ํด๋น ๋๋ ํฐ๋ฆฌ์ ์๋ ํ์ผ์ ์ ๋ฒ๋ค๋งํด์ Github Page ์๋ฒ์ ์ ๋ก๋ํ๋ค. ์ด๋ ๊ฒ ์๋์ผ๋ก ์ธํฐ๋ท์ ๋ฐฐํฌ๊ฐ ๋์๊ณ , ์ฃผ๋ณ ๊ฐ์กฑ์ด๋ ์น๊ตฌ๋ค์๊ฒ ์ฝ๊ฒ ๋ง๋ ๊ฒฐ๊ณผ๋ฌผ์ ๊ณต์ ํ ์ ์๋ค. (ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ๋น ๋ฅด๊ฒ ํผ๋๋ฐฑ๋ ๋ฐ์ ์ ์๋ค.) ์ด์ ์๋ก ํ๋ก์ ํธ์์ Github Page ๋ฐฐํฌ์ ์ฑ๊ณตํ๋ค๋ฉด, ์ด๋ฏธ ์ง์์ ๋ฐฐํฌ๋ฅผ ๊ฒฝํํด๋ดค๋ค๊ณ ๋ณผ ์ ์๋ค.
๐ CI/CD์ ์์ญ
CI/CD๋ ์ง์์ ํตํฉ ๋ฐ ์ง์์ ์ ๊ณต(CD, Continuous Delivery)์ ๊ตฌ์ถ ์ฌ๋ก๋ง์ ์ง์นญํ ๋๋ ์๊ณ , ์ง์์ ํตํฉ, ์ง์์ ์ ๊ณต, ์ง์์ ๋ฐฐํฌ๋ผ๋ 3๊ฐ์ง ๊ตฌ์ถ ์ฌ๋ก ๋ชจ๋๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ ์๋ ์๋ค.
์ข ๋ ๋ณต์กํ๊ฒ ์ค๋ช ํ๋ฉด "์ง์์ ์ธ ์๋น์ค ์ ๊ณต"์ ๋๋ก ์ง์์ ์ธ ๋ฐฐํฌ์ ๊ณผ์ ๊น์ง ํฌํจํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก CI/CD๋ ํ์ดํ๋ผ์ธ์ผ๋ก ํํ๋๋ ์ค์ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์์ ์ธ ์๋ํ ๋ฐ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง์ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด ์ฉ์ด๋ ์ฌ๋ก๋ณ๋ก CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํ๋ ์๋ํ ์์ค ์ ๋์ ๋ฐ๋ผ ๊ทธ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง๋ค.
๋๋ถ๋ถ์ ๊ธฐ์ ์์๋ CI๋ฅผ ๋จผ์ ์ถ๊ฐํ ๋ค์ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ๋ก์ ๋ฐฐํฌ ๋ฐ ๊ฐ๋ฐ ์๋ํ๋ฅผ ๊ตฌํํด ๋๊ฐ๋ค.
๐ ๋ฐฐํฌ ์๋ํ
- ํ๋ฒ์ ํด๋ฆญ ํน์ ๋ช ๋ น์ด ์ ๋ ฅ์ ํตํด ์ ์ฒด ๋ฐฐํฌ ๊ณผ์ ์ ์๋์ผ๋ก ์งํํ๋ ๊ฒ
โจ ๋ฐฐํฌ ์๋ํ๊ฐ ์ ํ์ํ ๊น?
- ๋จผ์ ์๋์ ์ด๊ณ ๋ฐ๋ณต์ ์ธ ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํํจ์ผ๋ก์จ ์๊ฐ์ด ์ ์ฝ
- ํด๋จผ ์๋ฌ(Human Error)๋ฅผ ๋ฐฉ์ง
์ฌ๊ธฐ์ ํด๋จผ ์๋ฌ๋ ์ฌ๋์ด ์๋์ ์ผ๋ก ๋ฐฐํฌ ๊ณผ์ ์ ์งํํ๋ ์ค์ ์๊ธฐ๋ ์ค์๋ค์ ๋ปํ๋ค. ๊ทธ ์ ์ ํ๋ ๋ฐฐํฌ ๊ณผ์ ๊ณผ ๋น๊ตํ์ฌ ํน์ ๊ณผ์ ์ ์๋ตํ๊ฑฐ๋ ๋ค๋ฅด๊ฒ ์งํํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด ํด๋จผ ์๋ฌ์ ์๋ก ๋ณผ ์ ์๋ค.
๋ฐฐํฌ ์๋ํ๋ฅผ ํตํด ์ ์ฒด ๋ฐฐํฌ ๊ณผ์ ์ ๋งค๋ฒ ์ผ๊ด๋๊ฒ ์งํํ๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ฌ ํด๋จผ ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ๋ฎ์ถ ์ ์๋ค.
๐ CI/CD ํ์ดํ๋ผ์ธ
SaaS๋ ๋ชจ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ก ๊ฐ๋ฐํ๊ธฐ ์ ํฉํ ์ํํธ์จ์ด์ด๋ค. ์ฌ์ฉ์ ์ ๋ฐ์ดํธ์ ๋ํ ๊ฑฑ์ ์์๋ ๋ฒ์ด๋ฌ๊ณ , ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ์ ๋ฐฐํฌ๋ ๊ฐ๋ฅํด์ก๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ๋น ๋ฅธ ๋ฐฐํฌ ์๋๋ฅผ ๋ณด์ฅ ๋ฐ์ ์ ์์๊น? ๊ฐ๋ฐ์๊ฐ ๋ฐฐํฌํ ๋๋ง๋ค ์ผ์ผํ ๋น๋ํ๊ณ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ์งํํ๋ ๊ฒ์ ํ๋ ๋ฒ์ด๋ฉด ์ถฉ๋ถํ๊ฒ ์ง๋ง, ์ด๋ฌํ ๊ณผ์ ์ด ์์์ด ์งํ๋๋ค๋ฉด ์ผ์ผํ ์ด ๊ณผ์ ์ ์ํํ๋ ๊ฒ์ด ๋ฒ์ก์ค๋ฝ๊ณ ์ง๋ฃจํ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด ์์์ด ์งํ๋๋ ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํ์ํค๋ ๋ฐฉ๋ฒ์ ๊ตฌ์ถํ๊ฒ ๋๋๋ฐ, ๊ทธ๊ฒ์ CI/CD ํ์ดํ๋ผ์ธ์ด๋ผ๊ณ ํ๋ค.
[๊ทธ๋ฆผ] ๋ฐฐํฌ ๊ณผ์
ํด๋น ๊ทธ๋ฆผ์ ๋ฐฐํฌ ๊ณผ์ ์ ๋์ํํ ๊ฒ์ ์ด๋ค. ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๋ฉด, ๊ทธ ์ฝ๋๊ฐ ๋น๋ ๋ฐ ํ ์คํธ์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ๊ฑฐ์ณ ๋ฐฐํฌ ์๋ฒ๋ก ์ ๋ฌ๋๋ค. ๋ฐฐํฌ ์๋ฒ์ ๋๋ฌํ ๋น๋๋ ์ฝ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ์ต์ข ๋ฐฐํฌ๊ฐ ์๋ฃ ๋๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ์ ์ ๊ฐ ์ง์ ํ์ธํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์๋ํ๋ฅผ ๊พํ๋ ๋ถ๋ถ์ ๋ณดํต ์ฝ๋๊ฐ ๋น๋๋๋ฉด์ ์ต์ข ์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ๋๋ ๋จ๊ณ๊น์ง์ด๋ค. ์ด ๋ถ๋ถ์ ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ์ฌ ์ผ๋ จ์ ์๋ํ ๋จ๊ณ๋ก ๋ง๋๋๋ฐ, ์ด๊ฒ์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ค๊ณ ํํํ๋๋ค.
๐ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๋จ๊ณ์ ์ํ ์์
[๊ทธ๋ฆผ] ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๋จ๊ณ์ ์ํ ์์
๋ฐฐํฌ์์ ํ์ดํ๋ผ์ธ(Pipeline)์ด๋ ์ฉ์ด๋ ์์ค ์ฝ๋์ ๊ด๋ฆฌ๋ถํฐ ์ค์ ์๋น์ค๋ก์ ๋ฐฐํฌ ๊ณผ์ ์ ์ฐ๊ฒฐํ๋ ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ค. ํ์ดํ๋ผ์ธ์ ์ ์ฒด ๋ฐฐํฌ ๊ณผ์ ์ ์ฌ๋ฌ ๋จ๊ณ(Stages)๋ก ๋ถ๋ฆฌํ๋ค. ๊ฐ ๋จ๊ณ๋ ํ์ดํ๋ผ์ธ ์์์ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ฉฐ, ๊ฐ ๋จ๊ณ๋ง๋ค ์ฃผ์ด์ง ์์ (Actions)๋ค์ ์ํํ๋ค.
ํ์ดํ๋ผ์ธ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋ถ๋ฆฌํ ๋, ๋ํ์ ์ผ๋ก ์ฐ์ด๋ ์ธ ๊ฐ์ง ๋จ๊ณ๊ฐ ์กด์ฌํ๋ค.
- Source ๋จ๊ณ: Source ๋จ๊ณ์์๋ ์๊ฒฉ ์ ์ฅ์์ ๊ด๋ฆฌ๋๊ณ ์๋ ์์ค ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ผ์ด๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๊ฐ์งํ๊ณ ๋ค์ ๋จ๊ณ๋ก ์ ๋ฌํ๋ ์์ ์ ์ํ
- Build ๋จ๊ณ: Build ๋จ๊ณ์์๋ Source ๋จ๊ณ์์ ์ ๋ฌ๋ฐ์ ์ฝ๋๋ฅผ ์ปดํ์ผ, ๋น๋, ํ ์คํธํ์ฌ ๊ฐ๊ณต. ๋ํ Build ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์์ฑ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ค์ ๋จ๊ณ๋ก ์ ๋ฌํ๋ ์์ ์ ์ํ
- Deploy ๋จ๊ณ: Deploy ๋จ๊ณ์์๋ Build ๋จ๊ณ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ค์ ์๋น์ค์ ๋ฐ์ํ๋ ์์ ์ ์ํ.
ํ์ดํ๋ผ์ธ์ ๋จ๊ณ๋ ํ์์ ๋ฐ๋ผ ๋ ์ธ๋ถํ๋๊ฑฐ๋ ๊ฐ์ํ๋ ์ ์๋ค. DevOps๋ฅผ ์ ๋ฌธ์ผ๋ก ํ์ตํ๋ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํ์ดํ๋ผ์ธ์ ๋จ๊ณ๋ฅผ ์ธ๋ถํํด์ ๋๋๊ธฐ๋ ํ๋ค. ๋ํ, ํด๋น ํด์ ์๊ฐํ๋ ์ ์ฒด์ ๋ฐ๋ผ ์ฉ์ด๋ฅผ ๋ฏธ๋ฌํ๊ฒ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
โจ CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ ์์ ๋ฐ ์ฅ์
- ๋น๋ (์ํํธ์จ์ด ์ปดํ์ผ)
- ํ ์คํธ (ํธํ์ฑ ๋ฐ ์ค๋ฅ ๊ฒ์ฌ)
- ๋ฆด๋ฆฌ์ค (๋ฒ์ ์ ์ด ์ ์ฅ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ)
- ๋ฐฐํฌ (๊ฐ๋ฐ์์ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก์ ๋ณํ)
- ๊ท์ ์ค์ ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌ
์ด ๊ณผ์ ์ด ์ค๋ฌด์์๋ ๋ฐ๋ณต์ ์ธ ํ๋ก์ธ์ค์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์ผ๋ จ์ ์๋ํ ๋จ๊ณ๋ก ๋ง๋ ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ๊ตฌ์ถ๋ ํ์ดํ๋ผ์ธ์ ์ต์ ๋ฒ์ ์ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธํ๊ณ ์ ๊ณตํ๋ ค๋ ์ผ๋ จ์ ์ฒ๋ฆฌ ๋จ๊ณ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋์ผ๋ก ํ๋ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ด๋ฉฐ ํจ๊ณผ์ ์ผ๋ก ์ค์ฌ์ฃผ๊ณ CI/CD ์ธํ๋ผ์์ ํธํ์ฑ๊ณผ ํจ์จ์ฑ์ ๋์ฌ์ค๋ค.
github action์ผ๋ก ํด๋ผ์ด์ธํธ CI/CD๋ฅผ ๊ตฌ์ถ
+ https://fe-63-youa7878-s3.s3.ap-northeast-2.amazonaws.com/index.html