[ Data Engineering ] 데이터 엔지니어링 공부 06 : CD/CI/CD란??

▽CD/CI/CD란??
목 차
1. CI/CD/CD의 정의와 개념
2. CI/CD/CD의 차이
3. Continuous Integration(CI)의 특징
4. Continuous Deployment(CD)의 특징
5. Continuous Delivery(CD)의 특징
6. CI/CD/CD의 구체적인 활용방안 및 실무 적용
7. CI/CD/CD의 이점과 도전 과제
8. CI/CD/CD 구현 사례와 도구


1. CI/CD/CD의 정의와 개념.
CI(Continuous Integration):
- 개발자가 코드를 자주 병합하여 코드의 일관성을 유지하고, 오류를 조기에 발견할 수 있도록 합니다.
CD(Continuous Deployment):
- 코드 변경이 자동으로 프로덕션 환경에 배포됩니다.
- 이는 사용자에게 즉시 반영되며, 빠른 피드백을 받을 수 있습니다.
CD(Continuous Delivery):

2. CI/CD/CD의 차이.
CI(Continuous Integration):
- 코드의 통합과 테스트를 자동화하여 코드의 품질을 보장합니다.
CD(Continuous Deployment):
- 코드 변경이 자동으로 프로덕션 환경에 배포됩니다.
CD(Continuous Delivery):
- 코드 변경이 자동으로 스테이징 환경에 배포되어,
수동으로 프로덕션 환경으로 배포될 수 있는 상태입니다.

3. Continuous Integration(CI)의 특징.
자동화된 빌드와 테스트:
- 코드 변경이 발생할 때마다 자동으로 빌드와 테스트가 수행됩니다.
코드 품질 향상:
- 조기에 오류를 발견하고 수정하여 코드의 품질을 높입니다.
개발자 협업 강화:
- 코드 변경이 자주 병합되므로 개발자 간의 협업이 원활해집니다.

4. Continuous Deployment(CD)의 특징.
자동 배포:
- 코드 변경이 자동으로 프로덕션 환경에 배포됩니다.
빠른 피드백:
- 사용자에게 즉시 반영되며, 빠른 피드백을 받을 수 있습니다.
위험 관리:
- 자동화된 테스트와 모니터링을 통해 배포 후 문제를 신속히 감지하고 해결할 수 있습니다.

5. Continuous Delivery(CD)의 특징.
자동화된 배포 준비:
- 코드 변경이 자동으로 스테이징 환경에 배포되어 수동으로 프로덕션 환경으로 배포될 수 있는 상태입니다.
수동 배포 결정:
- 배포 전 테스트나 검토가 가능하여, 배포 시점을 선택할 수 있습니다.
안정성과 신뢰성:
- 자동화된 테스트와 검토를 통해 배포 전 품질을 보장합니다.

6. CI/CD/CD의 구체적인 활용방안 및 실무 적용.
활용방안.
-
자동화된 배포 파이프라인:
Jenkins, GitLab CI/CD, CircleCI 등 다양한 도구를 사용하여 자동화된 배포 파이프라인을 구축합니다.
이를 통해 코드 변경이 자동으로 빌드, 테스트, 배포됩니다.
-
테스트 자동화:
자동화된 테스트를 통해 코드의 품질을 보장하고, 배포 전 문제를 조기에 발견합니다.
이는 단위 테스트, 통합 테스트, UI 테스트 등 다양한 형태로 수행됩니다.
-
모니터링과 피드백 루프:
배포 후 모니터링을 통해 문제를 신속히 감지하고, 사용자 피드백을 수집하여 지속적으로 개선합니다.

실무 적용.
-
전자상거래 플랫폼:
- 새로운 결제 기능을 추가할 때, CI/CD 파이프라인을 통해 자동으로
빌드, 테스트, 배포하여 사용자에게 신속하게 제공합니다.
-
모바일 앱 업데이트:
- 앱의 버그 수정이나 기능 추가 시, CI/CD를 통해 자동으로
빌드, 테스트, 배포하여 사용자에게 빠르게 제공합니다.

7. CI/CD/CD의 이점과 도전 과제.
이점:
- 빠른 배포 주기, 자동화된 테스트, 사용자 피드백의 신속한 반영 등이 있습니다.

도전 과제:
- 자동화된 배포 프로세스를 구축하는 데 필요한 인프라와 기술적 준비가 필요합니다.
- 또한, 배포 후 문제 발생 시 신속한 대응이 요구됩니다.