CI/CD란?
CI/CD는 "지속적인 통합(Continuous Integration)"과
"지속적인 전달 또 배포 (Continuous Delivery / Deployment)"를 의미합니다.
복잡하고 반복적인 "배포" 과정을 자동화하여
더 빠르고 안정적인 소프트웨어 개발 주기를 가능하게 해줍니다.
🔧 용어 간단 정리
약어 | 의미 | 설명 |
CI | Continuous Integration | 개발자가 작성한 코드를 자주 통합하고, 테스트까지 자동화하는 과정 |
CD (1) | Continuous Delivery | 테스트를 마친 코드를 자동으로 배포 가능한 상태까지 준비 |
CD (2) | Continuous Deployment | 준비된 코드를 자동으로 운영 환경까지 배포하는 단계 |
CI/CD가 필요한 이유
- ✅ 수동 배포의 불안정성 해결
- ✅ 버그를 빠르게 발견하고 수정
- ✅ 실시간 사용자 피드백에 빠르게 대응
- ✅ 협업 개발 시 통합 충돌을 최소화
- ✅ 개발-운영-테스트 간 경계 해소 (DevOps)
CI/CD 파이프라인 구조
전 과정 자동화!
단순 반복 작업을 줄이고, 개발자는 "개발"에만 집중
예시 도구들
단계 | 도구 |
CI | GitHub Actions, Jenkins, GitLab CI, Travis CI |
CD | ArgoCD, Spinnaker, GitHub Actions, AWS CodeDeploy |
기타 | Docker, Kubernetes, Ansible, Terraform 등 |
실제 예시 - GitHub Actions
# .github/workflows/main.yml
name: CI/CD Pipeline
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Build Docker image
run: docker build -t myapp .
- name: Deploy to Server
run: |
ssh user@server "docker pull myapp && docker-compose up -d"
코드 Push → Docker 이미지 빌드 → 서버 배포까지 자동으로 진행
CI와 CD의 관계 (비유)
마치 자동차 공장과 같음.
- CI는 자동차를 조립하는 "생산 라인"
- CD는 완성된 자동차를 검사하고 "운전까지 직접 해주는 단계"
즉, CI는 준비, CD는 실제 출고 과정이라 보면 됩니다.
마무리
CI/CD는 현대 소프트웨어 개발의 표준입니다.
- 빠른 개발 사이클
- 자동화된 품질 보증
- 실수 없는 배포
도입이 처음엔 어렵게 느껴질 수 있지만, 한 번 적용하면 속도, 안정성, 효율성 모두 얻을 수 있습니다.
'DevOps' 카테고리의 다른 글
[DevOps] Blue-Green 전략으로 무중단 배포 하기 (1) | 2025.04.19 |
---|