CI(Continuous Integration, 지속적 통합)는 개발자들이 코드 변경 사항을 자주(보통 하루에 여러 번) 공유 저장소에 병합하는 개발 방식이에요.
코드를 push할 때마다 자동으로:
1. 빌드 — 코드를 컴파일/번들링
2. 테스트 — 자동화된 테스트 실행
3. 결과 알림 — 성공/실패 여부 통보
| 도구 | 특징 |
|---|---|
| GitHub Actions | GitHub와 통합, 무료 플랜 있음 |
| Jenkins | 오픈소스, 자체 서버 운영 |
| GitLab CI | GitLab 내장 |
| CircleCI | 클라우드 기반 |
쉽게 말하면, "코드 합칠 때마다 자동으로 테스트해주는 시스템" 이에요.
CD는 CI 다음 단계로, 두 가지 의미가 있어요.
테스트를 통과한 코드를 언제든 배포 가능한 상태로 자동 준비해두는 것.
배포는 사람이 수동으로 승인 후 진행해요.
테스트를 통과하면 사람 개입 없이 자동으로 실서버에 배포되는 것.
코드 push
↓
[CI] 빌드 + 테스트 자동화
↓
[Continuous Delivery] → 배포 준비 완료 → 👤 사람이 승인 → 배포
[Continuous Deployment] → 자동으로 바로 배포 🚀
| 단계 | 역할 |
|---|---|
| CI | 코드 합치고 테스트 |
| CD (Delivery) | 배포 가능 상태로 패키징 |
| CD (Deployment) | 실서버에 자동 배포 |
CI가 "자동 검증" 이라면, CD는 "자동 배포" 라고 보면 돼요! 😊