๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CICD

[CI/CD] CI/CD๋ž€?

by The Future Engineer, Lucy 2025. 1. 16.
728x90
๋ฐ˜์‘ํ˜•

CI/CD๋ž€?

CI/CD๋Š” Continuous Integration(์ง€์†์  ํ†ตํ•ฉ)๊ณผ Continuous Delivery/Deployment(์ง€์†์  ์ „๋‹ฌ/๋ฐฐํฌ)์˜ ์•ฝ์ž์ด๋‹ค.

Continuous Integration(CI)

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž์ฃผ ํ†ตํ•ฉํ•˜๊ณ , ์ด๋ฅผ ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆํ•˜์—ฌ ์‹ ์†ํ•˜๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.
  • CI์˜ ๋ชฉํ‘œ๋Š” ์ฝ”๋“œ ์ถฉ๋Œ ๋ฐฉ์ง€, ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ์ œ๊ณต, ์ฝ”๋“œ ํ’ˆ์งˆ ํ–ฅ์ƒ์ด๋‹ค.

Continuous Delivery(CD)

  • CI ๊ณผ์ • ์ดํ›„, ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ๋ฅผ ์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.
  • ๋ฆด๋ฆฌ์Šค๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ค€๋น„ํ•˜๊ณ , ์ˆ˜๋™ ๊ฐœ์ž… ์—†์ด ๋ฐฐํฌ ๊ฐ€๋Šฅ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.

Continuous Deployment(CD)

  • Coninuous Delivery์˜ ํ™•์žฅ์œผ๋กœ, ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์ž๋™ ๋ฐฐํฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.
  • ๋ฐฐํฌ ๊ณผ์ •์˜ ์ž๋™ํ™”์™€ ๋ฆด๋ฆฌ์Šค ์†๋„ ๊ทน๋Œ€ํ™”๊ฐ€ ๋ชฉํ‘œ์ด๋‹ค.
  • ์™„์ „ ์ž๋™ํ™”๋ฅผ ์œ„ํ•ด ์ฒ ์ €ํ•œ ํ…Œ์ŠคํŠธ ์ฒด๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ์š”์†Œ

CI/CD๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋„๋‹ˆ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

  1. ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ
  • Git, GitHub, GitLab ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ.
  • ๋ธŒ๋žœ์น˜ ์ „๋žต ์ˆ˜๋ฆฝ.
  1. ๋นŒ๋“œ
  • ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ณ€ํ™˜.
  • ์ž๋™ํ™” ๋„๊ตฌ: Maven, Gradle, npm ๋“ฑ.
  1. ํ…Œ์ŠคํŠธ
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, E2E ํ…Œ์ŠคํŠธ ์‹คํ–‰.
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ: JUnit, Selenium, Jest.
  1. ๋ฐฐํฌ
  • ํ…Œ์ŠคํŠธ ํ›„ ์ฝ”๋“œ๋ฅผ ์Šคํ…Œ์ด์ง• ๋˜๋Š” ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ๋ฐฐํฌ.
  • ๋ฐฐํฌ ๋„๊ตฌ: Docker, Kubernetes, Ansible, Terraform.
  1. ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ฐฐํฌ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ.
  • ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ: Prometheus, Grafana, ELK Stack.

CI/CD์˜ ์ค‘์š”์„ฑ

  • ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ: ์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌ.
  • ํ’ˆ์งˆ ๋ณด์žฅ: ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์œ ์ง€.
  • ํ˜‘์—… ๊ฐ•ํ™”: ์—ฌ๋Ÿฌ ํŒ€์› ๊ฐ„์˜ ์ฝ”๋“œ ํ†ตํ•ฉ ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™”.
  • ์šด์˜ ์•ˆ์ •์„ฑ: ์ง€์†์ ์ธ ๋ฐฐํฌ๋กœ ์•ˆ์ •๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์šด์˜ ๊ฐ€๋Šฅ.

์ฃผ์š” ๋„๊ตฌ ๋ฐ ํ”Œ๋žซํผ

  • CI ๋„๊ตฌ: Jenkins, Travis Ci, CircleCI, GitHub Actions.
  • CD ๋„๊ตฌ: ArgoCD, Spinnaker, Octopus Deploy.
  • ์ข…ํ•ฉ ํ”Œ๋žซํผ: GitLab CI/CD, AWS CodePipeline, Azure DevOps.

CI/CD ๋„์ž… ์‹œ ์œ ์˜์‚ฌํ•ญ

CI/CD ๋„์ž… ์‹œ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐฐํฌ ๋‹จ๊ณ„๊นŒ์ง€ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌ ๊ณผ์ •์—์„œ ๋ฏผ๊ฐ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ์ž‘์€ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ ์ง„์ ์œผ๋กœ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'CICD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CI/CD] SonarQube๋ž€?  (1) 2025.01.22
[CI/CD] Docker๋กœ Jenkins ์„ค์น˜ํ•˜๊ธฐ  (0) 2025.01.11