2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #21 CI/CD

2023. 10. 1. 12:12ㆍ[백엔드] 기술면접
반응형

CI/CD

 

CI/CD 란

  • 소프트웨어 개발 및 배포 프로세스를 개선하고 자동화하기 위한 개발 방법론과 도구의 집합이다.
  • 이를 통해 소프트웨어 품질을 향상시키고 빠른 개발 및 배포를 가능하게 한다.

CI - 지속적 통합 ( Continuous Integration )

  • CI는 개발자들이 작성한 코드를 자주 (주로 여러 번의 일일 또는 주간 기간 동안) 통합하는 프로세스이다.
  • 개발자가 코드를 버전 관리 시스템(Git 등)에 커밋하면, CI 서버는 자동으로 코드를 빌드하고 테스트를 실행한다.
  • 목표는 작은 변경사항이나 새로운 기능을 빈번하게 통합하여 코드 충돌을 방지하고 품질을 유지하는 것이다.

CD - 지속적 배포 ( Continuous Deployment )

  • CD는 CI를 확장하여 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포하는 프로세스이다. 
  • 개발자가 코드를 커밋하고 CI/CD 파이프라인에서 통과하면, 자동으로 프로덕션 환경에 배포된다. 
  • 이를 통해 빠른 소프트웨어 배포와 사용자 피드백 수집이 가능하다.

CI/CD 장점

  • 자동화: 코드 빌드, 테스트 및 배포를 자동화하여 인간 에러를 줄이고 일관된 프로세스를 유지한다. 
  • 빠른 피드백: 코드 변경사항에 대한 빠른 피드백을 통해 결함을 빠르게 발견하고 수정한다.
  • 릴리스 빈도 증가: 지속적인 개발 및 배포를 통해 새로운 기능 및 개선 사항을 더 빠르게 사용자에게 제공한다. 
  • 신뢰성 향상: 자동화된 테스트 및 배포 과정을 통해 소프트웨어 품질을 향상시킨다.
  • 비용 절감: 자동화로 인해 작업 시간 및 비용을 절감하고 생산성을 높인다.

요약

CI/CD는 Continuous Integration와 Continuous Deployment의 약자로, 소프트웨어 개발과 배포를 자동화하는 개발 방법론이다.
CI는 코드 통합과 자동 테스트를 지속적으로 수행하고, CD는 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포한다.
이를 통해 더 빠른 소프트웨어 릴리스, 품질 향상, 비용 절감을 이룰 수 있습니다. 다양한 CI/CD 도구와 서비스를 활용하여 구현할 수 있다.
반응형