CI, CD, 파이프라인

CI / CD 개념 정리

CI / CD 는 Continuous Integration( 지속적인 통합 ) 과 Continuous Delivery/Deployment( 지속적인 제공 / 배포 ) 를 의미하는 개발 프로세스 자동화 개념입니다. 이러한 자동화는 소프트웨어 개발의 효율성을 극대화하고, 오류를 최소화하며, 신속한 배포를 가능하게 합니다.

CI

CI 는 개발자가 작성한 코드 변경 사항을 정기적으로 중앙 저장소( 리포지토리 ) 에 통합하고 빌드 및 테스트를 자동으로 수행하는 프로세스입니다.

 

CI 를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이나 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로, 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다.

CI 의 핵심 목표

코드 변경 사항을 자주 통합하여 버그를 조기에 발견

여러 개발자가 동시에 작업하더라도 코드 충돌을 최소화

작은 단위의 변경 사항을 빠르게 테스트하여 안정적인 개발 환경 유지등이 있습니다.

CI 프로세스 단계

코드 작성, 푸시 → 빌드 → 테스트 → 결과확인

 

CD

CI / CD 에서 CD 는 지속적인 제공과 지속적인 배포로 나뉩니다.

이 두 개념은 소프트웨어 배포의 자동화 정도에 따라 다르게 사용됩니다.

 

지속적인 제공

CI 이후, 빌드된 코드가 운영 환경( 프로덕션 ) 배포 직전까지 자동화됩니다.

운영팀이 최종 배포 여부를 결정하고, 배포는 수동으로 수행하며, 빠른 배포가 가능하지만, 

검토 후 배포할 수 있는 유연성을 유지합니다.

 

즉 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것을 뜻하며, 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있습니다.

 

지속적인 배포

CI /CD 의 최종 단계로, 코드 변경이 자동으로 프로덕션까지 배포됩니다.

운영팀 개입 없이 모든 코드 변경 사항이 자동으로 사용자에게 제공되며 

테스트가 충분히 검증되었다는 가정하에 빠른 피드백 루트를 형성합니다.

 

즉 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미합니다.

넷플릭스, 페이스북 등은 하루에도 수십 번의 변경 사항을 지속적으로 배포로 운영합니다.
사용자는 그에 따른 개발자가 배포한 최신 버전을 바로 사용이 가능합니다.

 

CI/CD 파이프라인

 

CI/CD 를 효과적으로 구현하려면 CI/CD 파이프라인이 필요합니다. CI/CD 파이프라인은 소프트웨어 개발에서 코드가 사용자에게 제공되기까지의 자동화된 과정을 의미합니다.

 

파이프라인 예시

개발자가 코드 푸시 → 자동 빌드 → 자동 테스트 → 배포 승인 요청 → 최종 승인 및 배포

 

참고 자료

'CS' 카테고리의 다른 글

JAR , WAR 차이  (1) 2025.03.07
Maven, Gradle 이란  (0) 2025.02.26
Tomcat 이란  (2) 2025.01.03
Base64, Blob  (0) 2024.11.29
XML  (1) 2024.11.19