[Daily morning study] Jenkins vs. GitHub Actions ๋น๊ต
#daily morning study
Jenkins vs. GitHub Actions ๋น๊ต
๊ฐ์
CI/CD(์ง์์ ํตํฉ/์ง์์ ๋ฐฐํฌ)๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ํ์์ ์ธ ๋ถ๋ถ์ด๋ค. Jenkins์ GitHub Actions๋ ์ด๋ฌํ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ ๋ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ค์ด๋ค. ์ด ๋ฌธ์์์๋ ๋ ๋๊ตฌ์ ์ฅ๋จ์ , ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋น๊ต๋ฅผ ํตํด ์ด๋ค ์ํฉ์์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ข์์ง์ ๋ํด ์์๋ณด๊ฒ ๋ค.
1. Jenkins ์๊ฐ
Jenkins๋ ์๋ฐ ๊ธฐ๋ฐ์ ์คํ ์์ค CI/CD ๋๊ตฌ๋ก, ์์ฒ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ง์ํ์ฌ ๋ค์ํ ์ธ์ด์ ๋๊ตฌ์ ์ฝ๊ฒ ํตํฉํ ์ ์๋ค. Jenkins๋ ์์ฒด ์๋ฒ์์ ์คํ๋๋ฉฐ, ์ฌ์ฉ์ ๋ง์ถคํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ค.
ํน์ง
- ํ๋ฌ๊ทธ์ธ ์ํ๊ณ: Jenkins์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ๋ค์ํ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ค๋ ์ ์ด๋ค.
- ์์ฒด ํธ์คํ : Jenkins๋ ์์ฒด ์๋ฒ์์ ํธ์คํ ๋๋ฏ๋ก ๋ณด์์ด๋ ์ปค์คํฐ๋ง์ด์ง์ด ํ์ํ ๊ฒฝ์ฐ ์ ๋ฆฌํ๋ค.
- ํ์ดํ๋ผ์ธ ์ง์: Jenkinsfile์ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์ค์ ํ ์ ์๋ค.
ํ๊ณ
- ์ค์ ๋ฐ ์ ์ง๊ด๋ฆฌ์ ๋ณต์ก์ฑ: ์ด๊ธฐ ์ค์ ์ด ๋ณต์กํ ์ ์์ผ๋ฉฐ, ์๋ฒ ๋ฐ ํ๋ฌ๊ทธ์ธ์ ์ ์ง๊ด๋ฆฌ๋ ํ์ํ๋ค.
- ์์ ์๊ตฌ๋: ์๋ฒ๋ฅผ ์ด์ํด์ผ ํ๋ฏ๋ก ์์์ด ๋ง์ด ์๋ชจ๋ ์ ์๋ค.
2. GitHub Actions ์๊ฐ
GitHub Actions๋ GitHub ๋ด๋ถ์์ CI/CD ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์๋น์ค๋ก, GitHub ์ ์ฅ์์ ๋ฐ์ ํ๊ฒ ํตํฉ๋์ด ์๋ค. ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ์๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ, ์ฝ๋ ํธ์, PR ์์ฑ ๋ฑ์ ์ด๋ฒคํธ์ ๋ฐ๋ผ ์์ ์ ์ํํ ์ ์๋ค.
ํน์ง
- ํตํฉ๋ ํ๊ฒฝ: GitHub์์ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ผ๋ฏ๋ก ์ค์ ์ด ๊ฐํธํ๋ค.
- YAML ๊ธฐ๋ฐ ์ค์ : YAML ํ์ผ๋ก ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ํ ์ ์์ด ์ง๊ด์ ์ด๋ค.
- ๋ฌด๋ฃ ์ ๊ณต: ์๊ท๋ชจ ํ๋ก์ ํธ๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค.
ํ๊ณ
- ์ ํ๋ ํ๋ฌ๊ทธ์ธ: GitHub Actions์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด Jenkins์ ๋นํด ์ ํ์ ์ผ ์ ์๋ค.
- ์ธ๋ถ ํธ์คํ ์๋น์ค: GitHub Actions๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด GitHub์ ์์กดํด์ผ ํ๋ค.
3. ์ฃผ์ ๋น๊ต
| ํน์ฑ | Jenkins | GitHub Actions |
|---|---|---|
| ์ค์น ๋ฐ ์ค์ | ๋ณต์กํจ | ๊ฐ๋จํจ |
| ํธ์คํ | ์์ฒด ์๋ฒ ํ์ | GitHub์์ ํธ์คํ |
| ํ๋ฌ๊ทธ์ธ ์ํ๊ณ | ๋ฐฉ๋ํ ํ๋ฌ๊ทธ์ธ | ์ ํ์ |
| ์ด๋ฒคํธ ๊ธฐ๋ฐ | ์ง์๋จ | ํ์์ |
| ๋ณด์ | ์ฌ์ฉ์์๊ฒ ์ฑ ์ | GitHub ๋ณด์ ๋ชจ๋ธ ์ ์ฉ |
4. ์ฌ์ฉ ์ฌ๋ก
Jenkins ์ฌ์ฉ ์ฌ๋ก
- ๋๊ท๋ชจ ๊ธฐ์ : ๋๊ท๋ชจ ํ๋ก์ ํธ ๋ฐ ํ์์ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์๋ก ํ ๋ ์ ์ฉํ๋ค.
- ํน์ ์๊ตฌ ์ฌํญ: ํน์ ๋ณด์ ์๊ตฌ ์ฌํญ์ด๋ ์ปค์คํฐ๋ง์ด์ง์ด ํ์ํ ๋ ์ ํฉํ๋ค.
GitHub Actions ์ฌ์ฉ ์ฌ๋ก
- ์คํ ์์ค ํ๋ก์ ํธ: ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๊ณ GitHub๊ณผ ํตํฉ๋์ด ์์ด ๊ด๋ฆฌ๊ฐ ์ฌ์ด ๊ฒฝ์ฐ์ ์ ํฉํ๋ค.
- ๊ฐ๋จํ ํ๋ก์ ํธ: ๋ณต์กํ ์ค์ ์ด ํ์ ์๋ ์๊ท๋ชจ ํ๋ก์ ํธ์์ ๋งค์ฐ ์ ์ฉํ๋ค.
5. ๊ฒฐ๋ก
Jenkins์ GitHub Actions๋ ๊ฐ๊ฐ์ ๊ฐ์ ๊ณผ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ํ๋ก์ ํธ์ ๊ท๋ชจ, ํ์ ํ์, ๋ณด์ ์๊ตฌ์ฌํญ ๋ฑ์ ๊ณ ๋ คํ์ฌ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค. Jenkins๋ ์ ์ฐ์ฑ๊ณผ ๊ธฐ๋ฅ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ๋ฐ๋ฉด, GitHub Actions๋ ๊ฐํธํ๊ณ ํตํฉ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
๋ณดํต, ๋๊ท๋ชจ ๋๋ ๋ณต์กํ CI/CD ํ์ดํ๋ผ์ธ์ ์๊ตฌํ๋ ์กฐ์ง์ Jenkins๋ฅผ ์ ํธํ๋ ๋ฐ๋ฉด, ์๊ท๋ชจ ํ์ด๋ ๋จ์ํ ์์ ์ ์๋ํํ๋ ค๋ ๊ฐ๋ฐ์๋ค์ GitHub Actions๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์๋ค.
์ด๋ฌํ ์ ์ ๊ณ ๋ คํ์ฌ ๊ฐ์์ ์ํฉ์ ๋ง๋ ๋๊ตฌ๋ฅผ ์ ํํ๋ฉด CI/CD์ ํจ์จ์ฑ์ ๊ทน๋ํํ ์ ์์ ๊ฒ์ด๋ค.