AI: 모니터링/실행 – CI/CD Pipeline

ㅁ 모니터링/실행

ㅇ 정의:
소프트웨어 개발에서 코드 변경 사항을 자동으로 빌드, 테스트, 배포하는 일련의 자동화 프로세스를 의미하며, 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment)를 포함함.

ㅇ 특징:
– 코드 변경 시 자동 빌드 및 테스트 수행
– 배포 과정 자동화로 인적 오류 최소화
– 빠른 피드백 루프 제공
– 다양한 환경(개발, 스테이징, 운영)으로의 자동 배포 가능

ㅇ 적합한 경우:
– 빈번한 코드 변경이 이루어지는 애자일 개발 환경
– 마이크로서비스 아키텍처 기반 서비스
– 빠른 배포와 롤백이 필요한 서비스 운영

ㅇ 시험 함정:
– CI와 CD를 혼동하는 경우 많음 (CI는 통합, CD는 배포)
– CD를 Continuous Delivery와 Continuous Deployment로 구분해야 함
– 파이프라인 자동화만으로 품질 보장이 되는 것이 아님

ㅇ 시험 대비 “패턴 보기” 예시:
– O: “코드 변경 시 자동 빌드, 테스트, 배포 과정을 거치는 자동화 프로세스”
– X: “CI/CD는 수동 배포를 전제로 한 테스트 자동화 도구이다”

ㅁ 추가 학습 내용

CI/CD Pipeline 학습 시 주요 도구별 특징과 차이점을 이해해야 한다. Jenkins는 오픈소스이자 플러그인 확장이 강력하고, GitLab CI는 GitLab과 통합된 CI/CD 기능을 제공하며, GitHub Actions는 GitHub 저장소와 밀접하게 연동된다. Azure DevOps는 마이크로소프트의 통합 개발 플랫폼으로 다양한 서비스와 연계가 가능하고, CircleCI는 클라우드 기반으로 빠른 설정과 빌드 속도를 제공한다.

파이프라인 구성 요소는 빌드 단계, 테스트 단계, 배포 단계로 나뉘며, 배포 전략으로는 Blue-Green Deployment, Canary Release 등이 있다. Rollback 전략은 배포 실패 시 이전 안정 버전으로 되돌리는 절차를 의미한다. 환경변수 관리는 실행 환경별로 설정값을 관리하는 방법이며, Secret 관리는 API 키, 비밀번호 등 민감 정보를 안전하게 저장하고 사용하는 방법이다.

시험에서는 CI(Continuous Integration)와 CD(Continuous Delivery/Continuous Deployment)의 차이를 구분하는 문제가 자주 나온다. Continuous Delivery는 배포 가능한 상태를 항상 유지하되 실제 배포는 수동으로 진행하는 것이고, Continuous Deployment는 테스트를 통과하면 자동으로 배포까지 진행한다. 또한 파이프라인 실패 시 처리 방식, 병렬 처리와 캐시 활용 방법, 그리고 Infrastructure as Code(IaC)와 CI/CD의 연계성에 대한 이해도 중요하다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*