- 0
- 2
CI/CD(지속적 통합 & 지속적 배포)란?
답변 확인
- CI/CD는 **Continuous Integration(지속적 통합)**과 **Continuous Deployment(지속적 배포) 또는 Continuous Delivery(지속적 제공)**의 약어로, 소프트웨어 개발 과정에서 자동화된 빌드, 테스트, 배포를 통해 개발 사이클을 빠르고 안정적으로 운영하는 방법론
- 이 프로세스를 통해 개발자는 코드 변경을 자주 반영할 수 있고, 배포의 신뢰성을 높여 안정적인 운영 환경을 유지할 수 있음
1. CI(Continuous Integration, 지속적 통합)
CI는 개발자가 변경한 코드를 주기적으로 병합하고, 자동화된 빌드와 테스트를 수행하는 과정
📌 CI의 핵심 개념
- ✔ 코드 변경 사항을 주기적으로 통합 → 코드 충돌 방지
- ✔ 자동화된 빌드 및 테스트 실행 → 오류 조기 발견
- ✔ 팀원 간 협업 강화 → 최신 코드 유지
✅ CI 동작 과정 예시
- 1️⃣ 개발자가 새로운 기능을 브랜치에서 개발
- 2️⃣ 기능 개발이 완료되면 메인 브랜치(예:
main
,develop
)로 병합 - 3️⃣ 병합 후 CI 시스템(GitHub Actions, Jenkins 등)이 자동으로 빌드 및 테스트 실행
- 4️⃣ 테스트를 통과하면 코드가 안정적이라고 판단 → 다음 배포 단계로 진행
🛠 CI를 위한 주요 도구
GitHub Actions
: GitHub 저장소와 연동하여 CI/CD 자동화 가능Jenkins
: 오픈소스 CI/CD 서버, 플러그인 확장성이 높음GitLab CI/CD
: GitLab과 통합된 자동화 파이프라인CircleCI
: 빠른 CI/CD 구축을 위한 클라우드 기반 서비스
2. CD(Continuous Deployment/Delivery, 지속적 배포/지속적 제공)
CI 이후, CD는 코드가 운영 환경에 배포될 준비 상태를 유지하거나, 자동으로 배포하는 과정을 의미합니다.
✅ Continuous Delivery(지속적 제공)
- ✔ CI 이후, 빌드 및 테스트를 거친 코드가 운영 배포 가능 상태로 유지됨
- ✔ 배포는 자동이 아니라, 수동 승인 후 진행됨
예제
- 새로운 기능이 staging 환경에 자동 배포
- QA 팀이 기능을 검토하고 승인 후 운영 배포 진행
✅ Continuous Deployment(지속적 배포)
- ✔ CI/CD의 최종 단계, 사람의 개입 없이 자동으로 운영 환경에 배포됨
- ✔ 모든 테스트를 통과한 코드가 자동으로 프로덕션(운영) 서버에 배포됨
예제
- 개발자가 코드를 푸시하면 CI/CD 파이프라인이 자동으로 배포
- 사용자는 즉시 새로운 기능을 경험 가능
🛠 CD를 위한 주요 도구
Docker
: 컨테이너 기반 배포를 자동화Kubernetes(K8s)
: 컨테이너 오케스트레이션을 통한 확장성 관리AWS CodePipeline
: AWS 클라우드 환경에서 CI/CD 자동화ArgoCD
: GitOps 기반의 Kubernetes 지속적 배포 도구
3. CI/CD 동작 방식 한눈에 보기
단계 | 설명 |
---|---|
1. 개발 | 개발자가 코드 작성 및 변경 |
2. 코드 푸시 | GitHub, GitLab 등에 코드 푸시 |
3. 지속적 통합(CI) | 자동 빌드 및 테스트 실행 |
4. 지속적 제공(CD - Delivery) | 운영 배포 가능 상태 유지 (수동 승인 필요) |
5. 지속적 배포(CD - Deployment) | 모든 테스트를 통과하면 자동 운영 배포 |
🔹 결론
- ✔ 배포 속도 향상 → 코드 변경 사항을 빠르게 반영
- ✔ 자동화된 테스트로 코드 품질 유지 → 버그 감소
- ✔ 개발-운영팀 간 협업 강화 → 신속한 피드백
- ✔ 배포 안정성 증가 → 롤백 및 블루그린 배포 가능
📌 CI/CD를 활용하면 안정적인 배포 환경을 구축할 수 있으며, 개발 생산성과 운영 효율성이 향상됨!
참고 자료
Top comments (2)
- DavidYang2월 19일
우와 댓글이다~
- Olivia2월 19일
오오 ~~ :) 너무 글 좋네용