• 0
  • 2
February 27, 2025

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일

    오오 ~~ :) 너무 글 좋네용