728x90
CI/CD란 무엇인가?
CI/CD는 소프트웨어 개발과 배포 과정을 자동화하여 효율성과 품질을 높이는 DevOps의 핵심 개념입니다. 이 용어는 두 가지 주요 프로세스를 결합한 것으로, 각각의 의미와 역할은 다음과 같습니다.
CI(Continuous Integration, 지속적 통합)
- 여러 개발자가 작업한 코드 변경 사항을 자주(하루에도 여러 번) 공통 저장소에 통합(merge)하는 과정을 의미합니다.
- 코드가 저장소에 병합될 때마다 자동으로 빌드와 테스트가 실행되어, 오류나 버그를 조기에 발견할 수 있습니다.
- CI의 목적은 소규모, 빈번한 코드 변경을 통해 코드 충돌을 최소화하고, 개발 생산성과 코드 품질을 향상시키는 데 있습니다356.
CD(Continuous Delivery & Continuous Deployment, 지속적 제공 & 지속적 배포)
- CI 이후의 단계로, 코드가 빌드와 테스트를 거쳐 실제 서비스 환경(프로덕션)까지 배포되는 과정을 자동화합니다.
- CD는 두 가지 의미로 사용됩니다:
- 지속적 제공(Continuous Delivery): 배포 가능한 상태까지 자동화하지만, 실제 프로덕션 배포는 사람이 수동으로 결정합니다.
- 지속적 배포(Continuous Deployment): 테스트를 통과한 코드를 자동으로 프로덕션 환경까지 배포합니다.
- 두 방식 모두 배포 주기를 단축하고, 사용자에게 더 빠르게 새로운 기능이나 버그 수정을 제공할 수 있습니다3568.
CI/CD 파이프라인의 특징
- 자동화: 빌드, 테스트, 배포 등 반복적인 작업을 자동화하여 개발자가 본연의 개발 업무에 집중할 수 있습니다.
- 효율성: 수동 개입을 최소화해 배포 속도를 높이고, 오류 발생 시 신속하게 대응할 수 있습니다.
- 품질 향상: 자동화된 테스트를 통해 코드 품질을 보장하고, 버그를 조기에 발견할 수 있습니다.
- 빠른 피드백: 변경 사항이 즉시 테스트되고 배포 준비가 되므로, 사용자 피드백을 빠르게 반영할 수 있습니다5678.
대표적인 CI/CD 도구
- 오픈소스: Jenkins, GitLab CI 등
- 클라우드 기반: AWS CodePipeline, Azure DevOps, GitHub Actions 등
- Kubernetes 환경: ArgoCD 등28
요약
CI/CD는 소프트웨어 개발에서 코드 변경의 통합부터 최종 배포까지의 과정을 자동화하는 일련의 방법론입니다. 이를 통해 개발팀은 더 빠르고 안정적으로 소프트웨어를 사용자에게 제공할 수 있으며, DevOps 문화를 실현하는 데 필수적인 역할을 합니다3567.
Citations:
- https://artist-developer.tistory.com/24
- https://www.elancer.co.kr/blog/detail/759
- https://ccomccomhan.tistory.com/297
- https://velog.io/@pp8817/CICD%EB%9E%80
- https://unity.com/kr/topics/what-is-ci-cd
- https://www.redhat.com/ko/topics/devops/what-is-ci-cd
- https://ko.wikipedia.org/wiki/CI/CD
- https://beer1.tistory.com/52
- https://jud00.tistory.com/entry/CICD%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
728x90
'IT 자료 > Software engineering' 카테고리의 다른 글
| 터크만 사다리 모델(Tuckman Ladder Model) (0) | 2025.05.20 |
|---|---|
| 제품계열(Product Line) 방법론 (1) | 2025.05.18 |
| 소프트웨어 품질비용(Cost of Software Quality, CoSQ) (1) | 2025.05.16 |
| PAF(Prevention-Appraisal-Failure) 모델 (0) | 2025.05.16 |
| GitHub(깃허브) (0) | 2025.05.13 |