-
CI/CD : 어플리케이션 개발부터 배포 단계까지 자동화를 통해 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것
-
CI(Continuous Integration - 지속적인 통합)
- 버그 수정 또는 새로 만드는 기능들이 main 리포지토리에 주기적으로 빌드되고 테스트되어 merge
- 특징
(1) 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.
--> ! 최대한 작은 단위로 개발 + 통합이 중요 !
--> ! 주기적으로 Merge되어 코드의 변경 사항이 자동으로 빌드가 되어서 코드 변경사항 이외에도 빌드가 성공적으로 되는지 확인 + Test !
(2) 통합을 위한 단계(빌드, 테스트, 머지)의 자동화
--> CI Script를 통해서 빌드, 테스트 자동화(CI Server)
-> 장점
(1) 개발 생산성 향상 : 주기적 머지
(2) 문제점을 빠르게 발견 : 테스트 자동화
(3) 버그 수정 용이 : 주기적 머지 및 테스트 자동화로 수정 사항이 작은 단위이기에 용이
(4) 코드의 퀄리티 향상
-
CD(Continuous Delivery or Deployment - 지속적인 제공 또는 배포)
-> Continuous Delivery : 릴리즈가 정상적인지 개발자나 검증팀이 검증하고수동적으로 배포
-> Deployment : 배포 자동화
-
CI/CD라고 해서 모든 회사, 부서가 동일한 방식을 사용하지 않음(다른 방식 사용 가능)
-
예시 : Jenkins, Github Actions 등 툴이 많으므로 입사 후 공부하면 좋을 듯