Make Be BackEnd

CI(Continuous Integration), 지속적 통합/CD(Continuous Delivery or Continuous Deployment), 지속적 배포/지속적 전달 ? 본문

ETC

CI(Continuous Integration), 지속적 통합/CD(Continuous Delivery or Continuous Deployment), 지속적 배포/지속적 전달 ?

Initsave 2024. 6. 24. 11:46

CI/CD 란 뭘 말하는걸까? 쉽게 생각하면 소프트웨어를 개발하고 그 개발한 프로그램을 빌드, 테스트, 배포 프로세스를 자동화하는것을 뜻한다. 배포는 수동/자동으로도 가능하기 때문에 수동을 했을 시 소요되는 시간을 줄이기 위 자동화 하는 것을 추천 한다 

 

CI(Continuous Integration)

  • 빠른 오류 발견 및 수정: 코드 변경 사항을 자주 통합함으로써, 버그를 초기 단계에서 발견하고 수정할 수 있습니다.
  • 자동화된 테스트: 코드가 통합될 때마다 자동으로 테스트를 수행하여 새로운 버그가 없는지 확인합니다.
  • 일관된 빌드 프로세스: 모든 통합 시 동일한 빌드 프로세스를 통해 일관된 환경을 유지합니다.

CD(Continuous Delivery or Continuous Deployment)

 

1. Continuous Delivery

  • 자동화된 배포 준비: 코드가 통합되고 테스트를 통과한 후, 자동으로 배포 준비가 됩니다.
  • 환경 간 일관성: 개발, 테스트, 스테이징 및 프로덕션 환경 간 일관성을 유지합니다.
  • 수동 배포 승인: 실제 프로덕션 배포는 수동으로 승인될 수 있습니다. 배포 준비 상태를 항상 유지하므로, 필요한 경우 언제든지 배포할 수 있습니다.

2. Continuous Deployment

  • 완전한 자동화: 배포 프로세스가 완전히 자동화되어 있어, 사람의 개입 없이 코드 변경 사항이 배포됩니다.
  • 신속한 피드백: 프로덕션에서 즉시 피드백을 받을 수 있어, 사용자 경험을 빠르게 개선할 수 있습니다.

지금까지 해본 배포 방법는

1. 수동 메이븐 배포 후 파일질라를 통해 war 파일 설정

2. tomcat을 통한 자동 배포 

그리고 앞으로 해볼 Jenkins를 이용한 배포를 해볼 것이다 . 

 

Jenkins를 사용하면 CI/CD 파이프라인(일련의 자동화된 단계들을 통해 코드가 개발, 빌드, 테스트, 배포되는 과정)을 손쉽게 구축할 수 있으며, 빌드, 테스트, 배포 과정을 자동화하여 개발 효율성을 높일 수 있을 것이다 !!