2026-03-15
CI / CD란
CI/CD는 코드 변경 사항을 자동으로 빌드, 테스트, 배포하는 자동화된 개발 프로세스이다.
CI (Continuous Integration)
- 여러 개발자가 작업한 코드를 지속적으로 통합하고 자동으로 빌드 및 테스트하는 과정
- 여러 개발자가 작업한 코드를 공유 저장소에 자주 통합하고, 그 변경 사항에 대해 자동 빌드와 테스트를 수행하는 과정
목적
- 코드 충돌 최소화
- 버그 조기 발견
- 안정적인 코드 통합
- 메인 브랜치를 항상 비교적 신뢰 가능한 상태로 유지
과정
- 개발자가 코드 커밋 또는 PR 생성
- CI 서버/워크플로우 실행
- 의존성 설치 및 프로젝트 빌드
- 테스트, 린트, 정적 분석 수행
- 결과 확인 후 머지 여부 판단
예시 도구
- GitHub Actions
- Jenkins
- GitLab CI
- CircleCI
CD (Continuous Delivery / Deployment)
Continuous Delivery: 배포 가능한 상태까지 자동화하지만 실제 배포는 사람이 승인
Continuous Deployment: 테스트 통과 시 자동으로 운영 서버까지 배포
과정
- 빌드 완료
- 테스트 및 검증 통과
- 스테이징 또는 운영 환경 배포
- 배포 후 모니터링 및 피드백 반영
CI/CD 흐름
코드 작성
↓
Git Push / PR 생성
↓
CI (빌드 + 테스트 + 검증)
↓
CD (릴리스/배포)
↓
서비스 반영
- 개발자가 PR을 올리면 자동으로 테스트/빌드 실행
- 테스트/빌드를 성공한 경우 메인 브랜치 머지 여부 판단
- 메인 브랜치 머지 후 스테이징 또는 운영 환경으로 배포
- 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