CI/CD 5๋ถ ๊ฐ๋ ์ ๋ฆฌ (ํ์ ์์ ์ฐ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค)
โ ํด๋น ์์์ ๋ณด๊ณ ์ ๋ฆฌํ์ฌ ์์ฑํ ๋ด์ฉ์ ๋๋ค.
์์ฆ๊ฐ์ด ๋น ๋ฅด๊ฒ ์งํํ๊ณ ๋ณํํ๋ ์๋์ ์ด๋ป๊ฒ ํ๋ฉด ์์ฅ๊ณผ ๊ณ ๊ฐ์ ์๊ตฌ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํด์ ์ ํ์ ์ถ์, ์ ๋ฐ์ดํธํ ๊ฒ์ธ๊ฐ๊ฐ ํฐ ๊ณผ์ ๋ก ๋ ์ค๋ฅด๊ณ ์๋ค.
๋ฐ๋ก ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ํด์ ์ธ๊ณ์ ์ผ๋ก ๋ง์ ๊ธฐ์ ๋ค์ด CI/CD๋ฅผ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ก ์ฌ์ฉํ๊ณ ์๋ค.
๊ฐ๋จํ๊ฒ ๋งํด์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋จ๊ณ๋ถํฐ ๋ฐฐํฌ๋๊น์ง ์ด ๋ชจ๋ ๋จ๊ณ๋ค์ ์๋ํ๋ฅผ ํตํด์ ์กฐ๊ธ ๋ ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์ฌ์ฉ์์๊ฒ ๋น๋ฒํ ๋ฐฐํฌํ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ ๋งํด์.
๋ฒ๊ทธ ์์ ์ด๋ ์๋ก ๋ง๋๋ ๊ธฐ๋ฅ๋ค์ด main repository
์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋ ๋๊ณ ํ
์คํธ ๋์ด Merge
๋๋ ๊ฒ์ ๋ปํ๋ค.
1991๋ ๊ทธ๋๋ ๋ถ์น(Grady Booch)์ ์ํด ์ฒ์ ์ฌ์ฉ๋๋ค๊ฐ ๋์ค์๋ ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ(extreme programming) ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์์ ์ฑํ๋๋ค.
๊ทธ๋๋ ๋ถ์น(Grady Booch) ๐ค
๊ทธ๋๋ ๋ถ์น๋ ๋ฏธ๊ตญ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ด๋ค. ๋์ ๋ ์ํํธ์จ์ด์ ์์ ๊ณผํ์์ด๋ค. ์ด๋ฐ ์ผ์ฝฅ์จ, ์ ์์ค ๋ผ๋ฐ์ ํจ๊ป UML์ ๊ฐ๋ฐํ ๊ฒ์ผ๋ก ์ ๋ช ํ๋ค.
์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ(extreme programming) ๐ค
์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ์ ์ผํธ ๋ฐฑ ๋ฑ์ด ์ ์ํ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ผ๋ก, ๋น์ฆ๋์ค ์์ ์๊ตฌ๊ฐ ์์๊ฐ๊ฐ ๋ณ๋์ด ์ฌํ ๊ฒฝ์ฐ์ ์ ํฉํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด๋ค.
01. ๊ฐ๋ฐ์๋ค์ ๊ทธ๋ค์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ main repository
์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋ฒํ๊ฒ Merge
ํด์ผ ํ๋ค.
๋์ผํ ์์ค ํ์ผ ์์์ ๋ ๋ช
์ ๊ฐ๋ฐ์๊ฐ ์๋ก ๋ค๋ฅธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๋ค๊ฐ ์ค๋ ๊ธฐ๊ฐ ๋์ ์๋ก ๋ณ๊ฒฝ์ ํ๋ค๊ฐ ๋์ค์ Merge
๋ฅผ ํ๋ ค๊ณ ํ๋ฉด ์๋ก ๋ค๋ฅธ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ํตํฉํด์ ์ ์ฉํด ๋๊ฐ๊ฑด์ง ๊ณ ์์ ๋ง์ด ํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ธฐ ์ํด์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์๊ฐ๋ณด๋ค ์ด Merge
์ถฉ๋์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ ๋ง์ ์๊ฐ์ ์ฌ์ฉํด์ผ ํ ์ง๋ ๋ชจ๋ฅธ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ๋๋ ๋๋์ฑ ์ด ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์์ ๋จ์๋ก ๋๋์ด์ ๋ด๊ฐ
main repository
์ ๋ฐ์ํ๊ฑฐ๋ ๋๋, ์์ ๋จ์๋ก ๋๋์ด์ ๋ด๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ ์ ์์์ง, ์ต๋ํ ์์ ๋จ์๋ก ๋๋์ด์ ๊ฐ๋ฐํ๊ณ ํตํฉํด๋๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค.
02. ํตํฉ์ ์ํ ๋จ๊ณ (Build, Test, Merge)
์ฃผ๊ธฐ์ ์ผ๋ก Merge
๋ ์ด ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ผ๋ก ๋น๋ ๋์ด์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ ์ดํ์๋ ๋น๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋๋์ง ํ์ธ์ด ๋์ด์ผํ๋ค.
์๋ก ์ถ๊ฐ๋ ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ๋ฟ๋ง ์๋๋ผ ๊ธฐ์กด์ ์์คํ ์ ๋ค๋ฅธ ๋ฒ๊ทธ๋ฅผ ์ด๋ํ์ง๋ ์์๋์ง ์๋์ผ๋ก ํ ์คํธ๊น์ง ๋์ด์ผํ๋ค.
ex) ๋ณดํต ๊ฐ๋ฐํ์์ ์งํํ๋ ์์
Main Repository๊ฐ ์๊ณ ๊ฐ๋ฐ์๋ค์ ํ๋ฃจ์๋ ๋ช ๋ฒ์ฉ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ main repository
์ Merge
๋ฅผ ํ๋ค.(๊ทธ์ ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ์ฝ๋๊ฐ ์ ์ ํ์ง ํ์ธ ๊ณผ์ ํ์)
์ด๋ ๊ฒ Merge
๊ฐ ๋์์ผ๋ฉด ์๋์ผ๋ก ํ์์ ๋ง๋ CI ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์ ์ถ๊ฐ๋ ์ฝ๋์ ํจ๊ป ์ด repository
๊ฐ ๋น๋ํ๊ฐ ๋๊ณ , ๋น๋๊ฐ ์ ๋๋ค๋ฉด ํ์์ ์์ฑํ ์ ๋ ํ
์คํธ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ํ
์คํธ๋ค๋ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์ ์คํ
๋น๋๋ ์ ๋๊ณ ํ ์คํธ ์ ๋์ด์ ์ด๋ก์ ์ฌ์ธ(Green)์ด ๋์ค๋ฉด ๋ฌด์ฌํ ํต๊ณผ๊ฐ ๋์ด์ ๋์ค์ ๋ฐฐํฌํ ๋ ๋ฐ์์ด ๋ ์ ์๋ค.
์๋ก ์ถ๊ฐํ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์์ด์ ๋น๋์ ์คํจํ๊ฑฐ๋ ๋๋ ๋น๋๋ ์ฑ๊ณตํ๋๋ฐ ํ ์คํธ์์ ์คํจํ๋ค๋ฉด ๋ ๋ ์ฌ์ธ(Red)์ด ๋จ๋ฉด์ ๋ฌธ์ ๋ฅผ ์ผ์ผํจ ๊ฐ๋ฐ์์๊ฒ ์๋์ผ๋ก ์๋ ค์ค๋ค.
Merge
๋ฅผ ํ๊ธฐ ๋๋ฌธ์ Merge
์ถฉ๋์ ํผํ ์ ์์ด์ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์Merge
๋๋ ๋ชจ๋ ์ฝ๋๋ค์ ์๋์ผ๋ก ๋น๋ ๋๊ณ ํ
์คํธ ๋๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๊ฒฐํจ์ด๋ ๋ฌธ์ ์ ์ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌMerge
๋ฅผ ํ๊ธฐ ์ํด์ ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ณ ๋ฌธ์ ๋ฅผ ์์ ํ ๋๋ ์กฐ๊ธ ๋ ๊ณ ๋ฆฝ๋ ์์ ๋จ์์ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ด ๋ฐ์๋๋ ๊ฒฐํจ์ ๋น ๋ฅด๊ฒ ์์ ๊ฐ๋ฅ๋ง์ง๋ง ๋ฐฐํฌ ๋จ๊ณ์์ ์ด๋ป๊ฒํ๋ฉด ์๋ํํด์ ์ด ๋ฐฐํฌ๋ฅผ ๋ง๋ค ์ ์์ ์ง๋ฅผ ๊ณ ๋ฏผํ๋ ๋จ๊ณ
Continuous Delivery
CI๋ฅผ ํตํด์ ์ฃผ๊ธฐ์ ์ผ๋ก Merge
๋ ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ๋ค์ด ์๋์ผ๋ก ๋น๋๊ฐ ๋๊ณ ํ
์คํธ๊ฐ ๋์๋ค๋ฉด,
์ด์ ๋ฐฐํฌ ํ๋ ๋จ๊ณ์์, Release ํ ์ค๋น ๊ณผ์ ์ ๊ฑฐ์น๊ณ , ์ค๋น๋ Release๊ฐ ๊ด์ฐฎ์์ง ์ ์์ ์ธ์ง ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋์ง ์ง์ ๊ฐ๋ฐ์๋ ๋๋ ๊ฒ์ฆํ์ด ๊ฒ์ฆ์ ํ ๋ค์์ "์ด์ ์ต์ข ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํด๋ ๋๊ฒ ๋ค!" ๋ผ๊ณ ๊ฒฐ์ ์ด ๋๋ฉด
์๋์ ์ผ๋ก ๋ฐฐํฌํ๋ ๋จ๊ณ๋ฅผ Continuous Delivery ๋ผ๊ณ ํ๋ค.
Continuous Deployment
Release๊ฐ ์ค๋น๊ฐ ๋์๋ง์ ์๋์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ๋ง๋ค ์๋ ์๋ค.
์ด๋ ๊ฒ ๋ชจ๋ ๊ณผ์ ์ ์๋ํ ํด๋๋ ๊ฒ์ Continuous Deployment ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Continuous Delivery ์ Continuous Deployment๋ ์ด์ง ๋น์ทํ์ง๋ง ์ต์ข ๋จ๊ณ๊ฐ ์๋ํ๊ฐ ๋์๋์ง ๋์ง ์์๋์ง์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง ์ ์๋ค.
์ด๋ฐ ๋ชจ๋ ๊ณผ์ ์ ์ด๋ป๊ฒ ์๋ํ๋ฅผ ํด๋๋, ์ด๋ป๊ฒ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋๋, ๊ทธ๋ฆฌ๊ณ ์ด ์๋ํ์ ํ ์คํธ๋ฅผ ์ผ๋ง๋ ์์ ๊ฐ์ด ์๋๋์ ๋ฐ๋ผ์ ์ด๋ค ํ์ฌ๋ค์ ์ต์ข ๋จ๊ณ๋ฅผ ์๋์ ์ผ๋ก ๋ฆด๋ฆฌ์ฆ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ค ํ์ฌ๋ Continuous Deployment๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์ด์.
ํ์ฌ๋ง๋ค ์ด๋ ์ ๋์, ์ผ๋ง๋งํผ์ ์๋ํ๋ฅผ ํ๋๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ CI/CD ๋ผ ํด์ ๋ชจ๋ ํ์ฌ๊ฐ ๋๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์น๋ ๊ฒ์ ์๋๋ค. ํ์ฌ๋ง๋ค ํ๋ง๋ค ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ์ฉํด์ ์ฌ์ฉํ ์ ์๋ค.
CI์ CD๋ ์๋ฒฝํ ๋ถ๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ ๋๋ถ๋ถ์ ํ์ฌ์์ CI์ CD๋ฅผ ๊ฑฐ์ณ์ ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ CI/CD ๋ฌถ์ด์ ๋ถ๋ฅธ๋ค.
main repository
์ Merge
ํ์ฌ๋ง๋ค ๊ฐ๊ฐ์ ๋ค๋ฅธ ํด์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ์์ ์ด๋ค ํด์ ์ฌ์ฉํ๋์ง ์์๋ณด๊ณ ๊ทธ ํด์ ๋ํด์ ์ ํํ ์์๋ณด๊ณ ๊ณต๋ถํ๋ ๊ฒ์ด ์ข๋ค.