2026-03-15

CI / CD란

CI/CD는 코드 변경 사항을 자동으로 빌드, 테스트, 배포하는 자동화된 개발 프로세스이다.

CI (Continuous Integration)

  • 여러 개발자가 작업한 코드를 지속적으로 통합하고 자동으로 빌드 및 테스트하는 과정
  • 여러 개발자가 작업한 코드를 공유 저장소에 자주 통합하고, 그 변경 사항에 대해 자동 빌드와 테스트를 수행하는 과정

목적

  • 코드 충돌 최소화
  • 버그 조기 발견
  • 안정적인 코드 통합
  • 메인 브랜치를 항상 비교적 신뢰 가능한 상태로 유지

과정

  1. 개발자가 코드 커밋 또는 PR 생성
  2. CI 서버/워크플로우 실행
  3. 의존성 설치 및 프로젝트 빌드
  4. 테스트, 린트, 정적 분석 수행
  5. 결과 확인 후 머지 여부 판단

예시 도구

  • GitHub Actions
  • Jenkins
  • GitLab CI
  • CircleCI

CD (Continuous Delivery / Deployment)

Continuous Delivery: 배포 가능한 상태까지 자동화하지만 실제 배포는 사람이 승인

Continuous Deployment: 테스트 통과 시 자동으로 운영 서버까지 배포

과정

  1. 빌드 완료
  2. 테스트 및 검증 통과
  3. 스테이징 또는 운영 환경 배포
  4. 배포 후 모니터링 및 피드백 반영

CI/CD 흐름

코드 작성
   ↓
Git Push / PR 생성
   ↓
CI (빌드 + 테스트 + 검증)
   ↓
CD (릴리스/배포)
   ↓
서비스 반영
  1. 개발자가 PR을 올리면 자동으로 테스트/빌드 실행
  2. 테스트/빌드를 성공한 경우 메인 브랜치 머지 여부 판단
  3. 메인 브랜치 머지 후 스테이징 또는 운영 환경으로 배포
  4. Continuous Delivery라면 최종 배포 전 승인이 필요하고, Continuous Deployment라면 자동으로 운영 반영된다.

장점

  • 배포 자동화
  • 사람 실수 감소
  • 빠른 피드백과 버그 조기 발견
  • 개발 속도 향상
  • 협업 효율 증가
  • 항상 배포 가능한 상태 유지에 도움

주의할 점

  • 테스트 자동화 품질이 낮으면 CI/CD 효과가 떨어짐
  • Continuous Deployment는 운영 반영까지 자동이므로 테스트 신뢰도와 모니터링 체계가 매우 중요
  • 배포 자동화만 있고 테스트 자동화가 부족하면 진짜 CI/CD라고 보기 어려움

요약

CI/CD는 코드 변경 사항을 자동으로 빌드, 테스트, 배포하는 자동화된 개발 방식입니다. CI는 코드 통합 과정에서 자동 빌드와 테스트를 수행하는 것이고, CD는 이를 기반으로 배포까지 자동화하는 과정입니다.

⇒ CI는 통합·검증 자동화, CD는 릴리스·배포 자동화

참고자료

  • https://artist-developer.tistory.com/24
  • https://ccomccomhan.tistory.com/297
  • https://www.elancer.co.kr/blog/detail/759
  • https://blog.kakaocloud.com/138

results matching ""

    No results matching ""