์ ํจ์ค๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ์ง์์ ์ผ๋ก ํตํฉ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํด์ ๋๋ค. CI(Continuous Integration) ํด ์ด๋ผ๊ณ ํํํฉ๋๋ค. ์ ํจ์ค์ ๋ํด ์์๋ณด๊ธฐ ์ ์ ์ฐ์ CI/CD์ ๋ํด ๋จผ์ ์์๋ณด๊ฒ ์ต๋๋ค.
CI/CD๋?
CI๋ Continuous Integration ์ฆ, ์ง์์ ์ธ ํตํฉ์ด๋ผ๋ ์๋ฏธ์ ๋๋ค.
์ง์์ ์ธ ํตํฉ์ด๋,
์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ ๋์ด ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. (๊ฐ๋ฅํ๋ค๋ฉด ํ๋ฃจ์ ์ฌ๋ฌ๋ฒ๊น์ง)
์ด๋ฌํ CI์ ํต์ฌ ๋ชฉํ๋ ๋ฒ๊ทธ๋ฅผ ์ ์ํ๊ฒ ์ฐพ์ ํด๊ฒฐํ๊ณ , ์ํํธ์จ์ด์ ํ์ง์ ๊ฐ์ ํ๊ณ , ์๋ก์ด ์ ๋ฐ์ดํธ์ ๊ฒ์ฆ ๋ฐ ๋ฆด๋ฆฌ์ฆ์ ์๊ฐ์ ๋จ์ถ์ํค๋ ๊ฒ์ ์์ต๋๋ค.
CD๋? ํด์ํ์๋ฉด, ์ง์์ ์ธ ์๋น์ค ์ ๊ณต ํน์ ์ง์์ ์ธ ๋ฐฐํฌ ๋ผ๋ ์๋ฏธ์ฃ .
Continuous Delivery๋ ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ๋ก ์๋์ผ๋ก Release ํ๋ ๊ฒ, Continuous Deployment๋ Production ๋ ๋ฒจ๊น์ง ์๋์ผ๋ก deploy ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด, CI๊ฐ ์๋ก์ด ์์ค์ฝ๋์ ๋น๋, ํ
์คํธ, ๋ณํฉ๊น์ง๋ฅผ ์๋ฏธํ์๋๋ฐ, CD๋ ๊ฐ๋ฐ์์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋์ด, ๊ณ ๊ฐ์ ํ๋ก๋์
(Production) ํ๊ฒฝ๊น์ง ๋ฆด๋ฆฌ์ฆ ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
CI์์ ์๋ก ๋ MSA์ ๊ฐ์ ํ๊ฒฝ์์ Agile ๋ฐฉ๋ฒ๋ก ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ, ์๋น์ค์ ์ฌ์ฉ์๋ ์ต๋ํ ๋น ๋ฅธ ์๊ฐ ๋ด์ ์ต์ ๋ฒ์ ์ Production์ ์ ๊ณต๋ฐ์ ํ์๊ฐ ์์ต๋๋ค.
์ด ๋, ์ํํธ์จ์ด๊ฐ ์ธ์ ๋ ์ง ์ ๋ขฐ ๊ฐ๋ฅํ ์์ค์ ๋ฒ์ ์ ์ ์งํ ์ ์๋๋ก support ํ๋ ๊ฒ์ด CD๋ผ๊ณ ํ ์ ์์ฃ .
์ด๋ ์๋น์ค์ ๊ฐ๋ฐํ๊ณผ ๋น์ฆ๋์คํ(์์ , CSํ ๋ฑ) ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค์ผ๋ก์จ, ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง์ ๋ ธ๋ ฅ์ ์ต์ํ์ผ๋ก ๋จ์ถ์์ผ ์ค๋ค๋ Benefit์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ CI/CD๋ฅผ ๊ฐ๋ฅ์ผ ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก ์ ํจ์ค์ ๋๋ค.
์ ํจ์ค๋?
์ ํจ์ค์ ๊ฐ์ CIํด์ด ๋ฑ์ฅํ๊ธฐ ์ ์๋ ์ผ์ ์๊ฐ๋ง๋ค ๋น๋๋ฅผ ์คํํ๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ด์์ต๋๋ค. ํนํ ๊ฐ๋ฐ์๋ค์ด ๋น์ผ ์์ฑํ ์์ค๋ค์ ์ปค๋ฐ์ด ๋ชจ๋ ๋๋ ์ฌ์ผ ์๊ฐ๋์ ์ด๋ฌํ ๋น๋๊ฐ ํ์ด๋จธ์ ์ํด ์ง์ค์ ์ผ๋ก ์งํ๋์๋๋ฐ, ์ด๋ฅผ Nightly-Build๋ผ๊ณ ํ์ต๋๋ค. ํ์ง๋ง, ์ ํจ์ค๋ ์ ๊ธฐ์ ์ธ ๋น๋์์ ํ๋ฐ ๋์๊ฐ SVN, Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ์์คํ ๊ณผ ์ฐ๋ํ์ฌ ์์ค์ ์ปค๋ฐ์ ๊ฐ์งํ๋ฉด ์๋์ ์ผ๋ก ์๋ํ ํ ์คํธ๊ฐ ํฌํจ๋ ๋น๋๊ฐ ์๋๋๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์ ํจ์ค๊ฐ ์ฃผ๋ ์ด์
๊ฐ๋ฐ์ค์ธ ํ๋ก์ ํธ์์ ์ปค๋ฐ์ ๋งค์ฐ ๋น๋ฒํ ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์ปค๋ฐ ํ์๋งํผ ๋น๋๋ฅผ ์คํํ๋ ๊ฒ์ด ์๋๋ผ ์์ ์ด ํ์๋์ด ์์ ์ด ์คํ๋ ์ฐจ๋ก๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์ฝ๋์ ๋ณ๊ฒฝ๊ณผ ํจ๊ป ์ด๋ค์ง๋ ์ด ๊ฐ์ ์๋ํ๋ ๋น๋์ ํ ์คํธ ์์ ๋ค์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ค์ ๊ฐ์ ธ๋ค ์ค๋๋ค.
- ํ๋ก์ ํธ ํ์ค ์ปดํ์ผ ํ๊ฒฝ์์์ ์ปดํ์ผ ์ค๋ฅ ๊ฒ์ถ
- ์๋ํ ํ ์คํธ ์ํ
- ์ ์ ์ฝ๋ ๋ถ์์ ์ํ ์ฝ๋ฉ ๊ท์ฝ ์ค์์ฌ๋ถ ์ฒดํฌ
- ํ๋กํ์ผ๋ง ํด์ ์ด์ฉํ ์์ค ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ๋ณํ ๊ฐ์
- ๊ฒฐํฉ ํ ์คํธ ํ๊ฒฝ์ ๋ํ ๋ฐฐํฌ์์
์ด ์ธ์๋ ์ ํจ์ค๋ 500์ฌ๊ฐ์ง๊ฐ ๋๋ ํ๋ฌ๊ทธ์ธ์ ์จ๋ผ์ธ์ผ๋ก ๊ฐ๋จํ ์ธ์คํจ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ ํ์ด์ฌ๊ณผ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด ์์ฝ๊ฒ ์์ ์๊ฒ ํ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
๊ฐ์ข ๋ฐฐ์น ์์ ์ ๊ฐ๋ตํ
ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ค์ ๊ฐ๋ฐ์๋ค์ ์์ํ ๊ฐ๋ฐ ์์ ์ด์ธ์ DB์ ์ ์ด๋ ํ๊ฒฝ์ค์ , Deploy์์ ๊ณผ ๊ฐ์ ๋จ์ ์์ ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ค์ด๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์ถ, ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก์ Deploy, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฆด๋ฆฌ์ฆ์ ๊ฐ์ด ์ด์ ์ CLI๋ก ์คํ๋๋ ์์ ๋ค์ด ์ ํจ์ค ๋๋ถ์ ์น ์ธํฐํ์ด์ค๋ก ์์ฝ๊ฒ ๊ฐ๋ฅํด์ก์ต๋๋ค.
Build ์๋ํ์ ํ๋ฆฝ
๋น๋ ํด์ ๊ฒฝ์ฐ Java๋ maven๊ณผ gradle์ด ์๋ฆฌ์ก๊ณ ์์ผ๋ฉฐ, ์ด๋ฏธ ๋น๋ ๊ด๋ฆฌ ํด์ ์ด์ฉํด ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๋ค๋ฉด ์ ํจ์ค๋ฅผ ์ฌ์ฉํ์ง ์์ ์ด์ ๊ฐ ์์ต๋๋ค. ์ ํจ์ค์ ์ฐ๋ํ์ฌ ๋น๋ ์๋ํ๋ฅผ ํตํด ํ๋ก์ ํธ ์งํ์ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
์๋ํ ํ ์คํธ
์๋ํ ํ ์คํธ๋ ์ ํจ์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ค ํ๋์ด๋ฉฐ, ์ฌ์ค์ ์๋ํ ํ ์คํธ๊ฐ ํฌํจ๋์ง ์์ ๋น๋๋ CI์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค. ์ ํจ์ค๋ Subversion์ด๋ Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ์์คํ ๊ณผ ์ฐ๋ํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ์๋ํ ํ ์คํธ๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ๊ฐ์ธ์ด ๋ฏธ์ฒ ์ค์ํ์ง ๋ชปํ ํ ์คํธ๊ฐ ์๋ค ํ์ฌ๋ ๋ ๋ ํ ์์ ๋ง์ด ๋์ด์ค๋๋ค. ์ ๋๋ก ํ ์คํธ๋ฅผ ๊ฑฐ์น์ง ์์ ์ฝ๋๋ฅผ ์ปค๋ฐํ๊ฒ ๋๋ฉด ํ๋ ์ ํจ์ค๋ฅผ ๋ง๋๊ฒ ๋ฉ๋๋ค.
์ฝ๋ ํ์ค ์ค์์ฌ๋ถ ๊ฒ์ฌ
์๋ํ ํ ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ธ์ด ๋ฏธ์ฒ ์ค์ํ์ง ๋ชปํ ์ฝ๋ ํ์ค ์ค์ ์ฌ๋ถ์ ๊ฒ์ฌ๋ ์ ์ ๋ถ์์ ํตํ ์ฝ๋ ํ์ง ๊ฒ์ฌ๋ฅผ ๋น๋ ๋ด๋ถ์์ ์ํํจ์ผ๋ก์จ ๊ธฐ์ ์ ๋ถ์ฑ์ ๊ฐ์์๋ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค.
๋น๋ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ
2๊ฐ ์ด์์ ๋ชจ๋๋ก ๊ตฌ์ฑ๋๋ ๋ ์ด์ด๋ ์ํคํ ์ฒ๊ฐ ์ ์ฉ ๋ ํ๋ก์ ํธ์๋ ๊ทธ์ ๋ฐ๋ ๋น๋ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ์ด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, ๋๋ฉ์ธ -> ์๋น์ค -> UI์ ๊ฐ์ด ๊ฐ ๋ ์ด์ด์ ์ฐธ์กฐ ๊ด๊ณ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๋น๋๋ฅผ ์งํํ์ง ์์ผ๋ฉด ์๋ฉ๋๋ค. ์ ํจ์ค์์๋ ์ด๋ฌํ ๋น๋ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑ์ ๊ฐ๋จํ ํ ์ ์์ผ๋ฉฐ, ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์ ๋งค์ฐ ๋ณต์กํ ์ ์ด๊น์ง๋ ๊ฐ๋ฅํฉ๋๋ค.
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Jenkins] Maven Job ์ค์ ๊ฐ๋จํ ์ค๋ช (0) | 2021.08.11 |
---|---|
[Jenkins] Jenkins ์๊ฐ ๋ณ๊ฒฝ (0) | 2021.08.11 |
[Jenkins] warํ์ผ์ 1.0.0-BUILD-SNAPSHOT ์๋ถ๊ฒ ํ๊ธฐ (0) | 2021.08.11 |
[Jenkins] ์๋ฒ ๋ด Jenkins(์ ํจ์ค) ์ค์นํ๊ธฐ (0) | 2021.08.11 |
[Tomcat] ์๋ฒ ๋ด tomcat ์ค์นํ๊ธฐ (0) | 2021.08.11 |