CI์ CD๋ ๊ฐ๊ฐ ์ง์์ ์ธ ํตํฉ, ๊ทธ๋ฆฌ๊ณ ์ง์์ ์ธ ์ ๊ณต[๋ฐฐํฌ]์ ์๋ฏธํ๋ค. ์ด๋ ๊ฐ๋ ๋ง ๋๊ณ ๋ณด์๋ฉด ์๋ํ์ ์ง์ ์ ์ฐ๊ด์ด ์๋ค. ๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ๋ฌถ์ด ๋งํ๋ CI/CD๋ ํญ์ '์๋ํ'์ ๊ฐ๋ ์ด ๋ฐ๋ผ ๋ถ๋๋ค. ์๋ํ์ ๊ฐ๋ ์ด ๋ถ๋ ๋ฐฐ๊ฒฝ์ด ๋ฌด์์ธ์ง, CI์ CD์ ์ ํํ ์๋ฏธ์ ๊ณผ์ ์ ์๋ํ ๊ฐ๋ ๊ณผ ํจ๊ป ์์๋ณด์.
Continuous Integration์ ์ง์์ ์ธ ํตํฉ์ด๋ผ๋ ์๋ฏธ์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ๊ทธ ์์ ์ด๋ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ์ด ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋๋ฉด์ ๊ณต์ ๋๋ ๋ ํ์งํ ๋ฆฌ์ ํตํฉ(merge)๋๋ ๊ฒ์ ์๋ฏธํ๋ค.
์์๋ฅผ ๋ค์ด ์๊ฐํด ๋ณด์. ๊ฐ๋ฐ์๋ค์ด ํ๋์ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์์ผ๋ฉฐ, Git ๋ฑ์ ์ฌ์ฉํ๊ณ ์๋ค. ๋ํ, ๊ทธ ํ๋ก์ ํธ์ 2๋ช ์ด์์ ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฌ๊ธฐ์ ๊ฐ๋ฐ์๋ค์ด ๋น๋ฒํ๊ฒ mergeํ์ง ์๊ณ , 2์ผ 3์ผ ํน์ ๋ ์ค๋ ๊ธฐ๊ฐ๋์ ๊ฐ๋ฐ์ ์งํํ๋ค๊ฐ ๋ฉฐ์น ๋์ ์์ ํ ๋ง์ ์ฝ๋๋ค์ ํ ๋ฒ์ mergeํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋น์ฐํ, ์ถฉ๋๋๋ ์ฝ๋๊ฐ ๋ง์ด ์๊ฒจ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ๋๋ค๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์๊ฐ๋ณด๋ค, ์ถฉ๋ํ๋ ๋ง์ ์ฝ๋๋ค์ ์์ ํ๋ ๋ฐ์ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ข์ ๋ฐฉํฅ์ด ์๋๋ค.
๊ทธ๋ ๊ธฐ์, ๊ฐ๋ฅํ ์์ ๋จ์๋ก ๋๋์ด์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋ฒํ ๊ฐ๋ฐํ๊ณ ๊ณ์ํด์ ํตํฉํ์ฌ ๋๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค.
๋น๋ฒํ๊ฒ mergeํ๋ ๊ฒฝ์ฐ, ๊ทธ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๊ฒ ๋ค.
- ๊ฐ๋ฐ์๋ค์ ๊ณ์ํด์ ๊ด๋ฆฌ ์์คํ ์ ํตํฉํ๋ค.
- ํตํฉํ ์ฝ๋๊ฐ ์ ๋๋ก ๋์ํ๋์ง ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ์งํํ๋ค.
- ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๊ฒฐํ๋ค.
์์ ๋จ๊ณ๋, "๊ท์ฐฎ๋ค" ๋ผ๋ ์น๋ช
์ ์ธ ๋จ์ ์ด ์๋ค.
๋น๋ฒํ๊ฒ ํตํฉํด์ค ๋๋ง๋ค ์งํํด์ผ ํ๋ ๊ณผ์ ์ด๊ธฐ์, ํ ๋ฒ์ ๋ชฐ์์ ๋น๋, ํ
์คํธ๋ฅผ ์งํํ๋ ๊ทธ ์๊ฐ๋ณด๋ค ํจ์ฌ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ๋ ์๋ค.
๋ฌผ๋ก ํ ๋ฒ์ ํ ์คํธํด์ ๋ฌธ์ ๊ฐ ์๊ธด ์ฝ๋๋ค์ ํ๋ํ๋ ๋ค ๊ณ ์น๋ ๊ฒ๋ณด๋ค๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ์ด ๋น ๋ฅด๊ณ ์ข์ ๋ฐฉ๋ฒ์ผ์ง๋ผ๋, ๋น์ฅ์ ๊ท์ฐฎ์ ์์ ์ธ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ "๊ทธ๋ฌ๋ฉด, ๊ตณ์ด ์ฌ๋์ด ํ ํ์๊ฐ ์์ง ์์?" ํ๋ ์๊ฐ์, ์๋ํ์ ๊ฐ๋ ์ด ๋ฐ๋ผ ๋ถ๋๋ค. ์ด๊ฒ์ด์ผ๋ง๋ก ๋๊ฐ์ด ๋ฐ๋ณต๋๋ ๊ท์ฐฎ์ ์์ ์ ํ์ง ์์ผ๋ฉด์๋, ์ฃผ๊ธฐ์ ์ธ merge๋ก ์ถฉ๋์ ์ต์ํํ๋ ํธํ ๋ฐฉ๋ฒ์ธ ๊ฒ์ด๋ค :>
์๋ํ๋์์ ๋์ ๊ณผ์
- ๊ฐ๋ฐ์๋ค์ ๊ณ์ํด์ ๊ด๋ฆฌ ์์คํ ์ ํตํฉํ๋ค.
- (๋น๋&ํ ์คํธ ์๋) ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํ์ธํด์ ํด๊ฒฐํ๋ค.
์ง์์ ์ธ ์ ๊ณต(Continuous Delivery) ๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ(Continuous Deployment)์ ์๋ฏธ๊ฐ ์๋ค. ์ด ๋ ์ฉ์ด๋ ์ํธ ๊ตํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
CI์์ ๋น๋ ๋ฐ ํ ์คํธ๊ฐ ์งํ๋ ํ์, ๋ฐฐํฌ ๋จ๊ณ์์ releaseํ ์ค๋น ๋จ๊ณ๋ฅผ ๊ฑฐ์น๊ณ ๋ฌธ์ ๊ฐ ์๋์ง ๊ฒ์ฆํ๋ ํ์ด ๊ฒ์ฆ์ ํ๋ค.
๊ทธ ํ์ ๊ฒฐ๋ก ์ด "์ด์ ์ฌ์ฉ์๋ค์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํด๋ ๋๊ฒ ๋ค!" ๋ผ๊ณ ๋์ ๋ฐฐํฌ๋ฅผ ์๋์ ์ผ๋ก ์งํํ๋ ๊ฒ์ด continuous Delivery, ์ง์์ ์ธ ์ ๊ณต์ด๋ค.
๋ํ, ์์ ๊ฐ์ด ๋ฐฐํฌํ ์ค๋น๊ฐ ๋์๋ง์ ์๋ํ๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ์งํํ๋ ๊ฒ์ Continuous Deployment, ์ง์์ ์ธ ๋ฐฐํฌ์ด๋ค.
CD๋ฅผ ์ ์ฉํ ํ์ ํ๋ฆ
1. CI๋ฅผ ์ ์ฉํ์ฌ ์ฝ๋๋ฅผ ๊ฒ์ฆํ๋ค.
2. ๋ฐฐํฌ ํ๊ฒฝ๊ณผ ๋น์ทํ ๊ณณ์์ ๊ฒ์ฆ์ ์งํํ๋ค.
3. ๊ฒ์ฆ๋ ์ํํธ์จ์ด๋ฅผ ์ค์ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ค.

CI์ CD๋ ์ด๋ ์ ๋๋ฅผ ์๋ํํ ์ง์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง๊ธฐ์, CI/CD๋ผ๊ณ ํด์ ๋ชจ๋ ๊ฐ์ ๊ฒ์ ์๋๊ณ , ํ์ฌ ํน์ ํ๋ง๋ค ๊ทธ ์ ๋๊ฐ ๋ฌ๋ผ์ง๋ค.
์ง์์ ๋ฐฐํฌ์ ๊ฐ์ฅ ํํ ์ฌ๋ก๊ฐ Github Pages ์ด๋ค. ์ง์ ํด๋ ๋๋ ํฐ๋ฆฌ์ ์ ํด์ง ๋ฐฉ์์ ๋ฐ๋ผ ์ ์ปค๋ฐํ๊ธฐ๋ง ํ๋ฉด, Github Pages๊ฐ ์์์ ํด๋น ํ์ผ์ ์ ๋ฒ๋ค๋งํด์ Github Page ์๋ฒ์ ์ ๋ก๋ํ๋ค. ์ด๋ ๊ฒ ์๋์ผ๋ก ์ธํฐ๋ท์ ๋ฐฐํฌ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ด๋ก์จ ๊ฒฐ๊ณผ๋ฌผ์ ์ง์ ๊ณต์ ํ ์๋ ์๊ณ , ์ฃผ๋ณ์ผ๋ก๋ถํฐ ๋น ๋ฅด๊ฒ ํผ๋๋ฐฑ๋ ๋ฐ์ ์ ์๋ค.
*๋ฒ๋ค๋ง : ์ฌ๋ฌ ํ์ผ์ ํ๋๋ก ๊ฒฐํฉํ๋ ์์ (์ฃผ๋ก ์น ๋ฐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ฌ์ฉํ๋ ์ฉ์ด)
์ ์ฒด ๋ฐฐํฌ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๋ฉด, ๊ทธ ์ฝ๋๊ฐ ๋น๋ ๋ฐ ํ ์คํธ์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ๊ฑฐ์ณ ๋ฐฐํฌ ์๋ฒ๋ก ์ ๋ฌ ๋๋ค. ๋ฐฐํฌ ์๋ฒ์ ๋๋ฌํ ๋น๋๋ ์ฝ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ์ต์ข ๋ฐฐํฌ๊ฐ ์๋ฃ ๋๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ์ ์ ๊ฐ ์ง์ ํ์ธํ๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ '์๋ํ'๋ฅผ ๊ณ ๋ คํ๋ ๋ถ๋ถ์ ๋ณดํต ์ฝ๋๊ฐ ๋น๋๋๋ฉด์ ์ต์ข ์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ๋๋ ๋จ๊ณ๊น์ง์ด๋ค. ์ด ๋ถ๋ถ์ ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ์ฌ ์ผ๋ จ์ ์๋ํ ๋จ๊ณ๋ก ๋ง๋๋๋ฐ, ์ด๊ฒ์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ค๊ณ ํํํ๋ค.
*ํ์ดํ๋ผ์ธ(Pipeline) : ๋ฐฐํฌ์์ ์ด ์ฉ์ด๋ ์์ค ์ฝ๋์ ๊ด๋ฆฌ๋ถํฐ ์ค์ ์๋น์ค๋ก์ ๋ฐฐํฌ ๊ณผ์ ์ ์ฐ๊ฒฐํ๋ ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ค.
ํ์ดํ๋ผ์ธ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋ถ๋ฆฌํ ๋, ๋ํ์ ์ผ๋ก ์ฐ์ด๋ ์ธ ๊ฐ์ง ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ๋ค.

ํ์ดํ๋ผ์ธ์ ๋จ๊ณ๋ ํ์์ ๋ฐ๋ผ ๋ ์ธ๋ถํ๋๊ฑฐ๋ ๊ฐ์ํ๋ ์ ์๊ณ DevOps๋ฅผ ์ ๋ฌธ์ผ๋ก ํ์ตํ๋ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํ์ดํ๋ผ์ธ์ ๋จ๊ณ๋ฅผ ์ธ๋ถํํด์ ๋๋๊ธฐ๋ ํ๋ค.
CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ ์์
๋น๋ (์ํํธ์จ์ด ์ปดํ์ผ)
ํ ์คํธ (ํธํ์ฑ ๋ฐ ์ค๋ฅ ๊ฒ์ฌ)
๋ฆด๋ฆฌ์ค (๋ฒ์ ์ ์ด ์ ์ฅ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ)
๋ฐฐํฌ (๊ฐ๋ฐ์์ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก์ ๋ณํ)
๊ท์ ์ค์ ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌ
| Development + Operation
-> ๊ฐ๋ฐ๋ด๋น์์ ์ด์๋ด๋น์๊ฐ ์ฐ๊ณํ์ฌ ํ๋ ฅํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
์ฆ, ์์คํ ๊ฐ๋ฐ์์ ์ด์์ ๋ด๋นํ๋ ์ ๋ณด๊ธฐ์ ์ ๋ฌธ๊ฐ ์ฌ์ด์ ์ํต, ํ์ , ํตํฉ ๋ฐ ์๋ํ๋ฅผ ๊ฐ์กฐํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ด๋ค. ์ด๋ฌํ ๋ฐ๋ธ์ต์ค์ ๊ฐ๋ ์ ์ ์์ผ ์ํํธ์จ์ด(Agile software) ๊ฐ๋ฐ๊ณผ CI/CD ๊ฐ๋ ๊ณผ๋ ๊ด๋ จ์ด ์๋ค.
*์ ์์ผ ๊ฐ๋ฐ ํ๋ก์ธ์ค : ์งง์ ์ผ์ ์ฃผ๊ธฐ์ ๋ฐ๋ผ ๊ณ์ํด์ ํ๋กํ ํ์ ์ ํ์ฑํ๊ณ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ฆ์ ๊ฐ๋ฐ ๋ฐ ์ ์ฉํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
๋ฐ๋ธ์ต์ค๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์ ๊ตฌ์ถํ๋ ๊ฒ์ด ๋ฐ๋ก CI/CD ํ์ดํ๋ผ์ธ์ธ ๊ฒ์ด๋ค. ์ฆ, CI์ CD์ ์๋ํ๋ฅผ ํตํด์ ๊ฐ๋ฐ๋ถ์์ ์ด์๋ถ์๊ฐ ํจ๊ป ์ํธ ํ๋ ฅํ๋ฉฐ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ณ ์ด์ํด๋๊ฐ ์ ์๋ค.
๋ฐ๋ธ์ต์ค ์ฅ์