- CI/CD는 코드를 더 자주, 더 안전하게, 더 자동으로 배포하기 위한 개발 문화이자 자동화 파이프라인이다.
CI란?
- Continuous Integration, 지속적 통합
- feature 브랜치에서 작업한 코드를 main에 병합하기 전/후에 자동으로 빌드·테스트해서 병합해도 안전한지 검증하는 과정
CI가 없는 경우
- 각자 로컬에서만 개발
- 나중에 한 번에 머지
- 충돌 폭발, 테스트 지옥
CI가 있는 경우
- 코드 push
- 자동으로 빌드 / 테스트 / 린트 검사
- 문제 있으면 즉시 실패 알림
- 머지 시점에 문제가 드러나는 구조
CI의 핵심 목적
- 버그를 초기에 발견
- 코드 품질 자동 검증
- 팀원 간 코드 충돌 최소화
CD란?
- Continuous Delivery/Deployment, 지속적 제공/배포
- CI 이후 단계
- 배포와 관련된 자동화
Continuous Delivery
- 배포 직전까지 자동화
- 실제 배포는 사람이 버튼 클릭
CI 통과 → 배포 준비 완료 → (사람이 승인) → 배포
deploy:
stage: deploy
script:
- echo "Ready to deploy"
when: manual
only:
- main
Continous Deployment
CI → 테스트 통과 → (자동) 서버 배포
deploy:
stage: deploy
script:
- aws s3 sync build/ s3://my-bucket
only:
- main
- main 브랜치 머지
- CI 통과
- 즉시 서비스 반영
CD의 핵심 목적
- 배포 과정의 반복 작업 제거
- 배포 실수 감소
- 빠른 피드백 & 빠른 릴리즈
CI/CD 전체 흐름 한줄 요약
코드 Push → 자동 빌드 → 자동 테스트 → 자동 배포
사람이 하는 일은 : 코드 작성 + 결과 확인 뿐
CI/CD는 코드를 더 자주, 더 안전하게, 더 자동으로 배포하기 위한
개발 문화이자 이를 실현하기 위한 자동화 파이프라인이다.
CI는 코드 변경이 발생할 때마다
자동으로 빌드·테스트를 수행해 품질을 검증하는 단계이고,
CD는 CI를 통과한 코드를
사람의 개입을 최소화해 배포까지 연결하는 단계다.
CI
- 병합해도 괜찮은지?
- 코드 품질 괜찮은지?
- 빌드 깨지지 않는지?
CD
- 언제 배포할지?
- 자동 vs 수동?
- 어디에 배포할지?
파이프라인
- 코드가 배포되기까지 거치는 모든 자동화 단계를 한 줄로 연결한 흐름
- 자동으로 실행되는 작업들의 흐름
- Stage들의 묶음
- 코드 push 한 번 -> 파이프라인 1개 생성
- 그 안에 stage들이 순서대로 실행됨
CI/CD는 결국 파이프라인을 설계하고 자동으로 실행하는 시스템이다.