CI란?

  • Continuous Integration(지속적 통합)이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 하는 것으로 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다.

CI 간단한 프로세스

  1. 개발자가 개발한 코드를 기존 코드와 Merge 한다.
  2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다.
  3. 해당 코드에 문제가 있다면 수정하고 1번 작업으로 돌아간다. 그리고 문제가 없다면 배포를 진행

🔻 CI의 장점

  • 코드의 검증에 들어가는 시간이 줄어든다. 만일 지속적으로 통합을 하지 않고 일정기간에 한 번씩 통합을 하게 된다면 분명히 통합된 코드들에서 충돌 및 문제가 생길 것이다. 해당 문제의 원인을 찾는 과정에서 꽤 많은 리소스가 발생할 것이다.
  • 개발 편의성이 증가한다.
  • 항상 테스트 코드를 통과한 코드만이 레포지터리에 올라가기 때문에, 좋은 코드 퀄리티를 유지할 수 있다.

CD 란?

  • Continuous Delivery 또는 Continuous Deployment(지속적 배포)로 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념 CI를 통한 지속적인 빌드와 테스트를 진행하고 통과한 코드를 테스트 서버와 운영서버에 바로 배포해 반영하는 것이다. 따라서 CD는 배포 자동화로 볼 수 있다.

🔻 간단한 CD의 적용 프로세스

  1. CI를 적용하여 코드를 검증
  2. 배포환경과 비슷한 곳에서 검증을 진행
  3. 검증된 소프트웨어를 실제 프로덕션 환경으로 배포

🔻 CD의 장점

  • 개발자는 배포보다 개발에 더욱 신경 쓸 수 있도록 도와준다.
  • 개발자가 원클릭으로 수작업 없이 빌드, 테스트, 배포까지의 자동화를 할 수 있다.

🔻 CI/CD 도구

  1. Jenkins
  2. Travice CI
  3. Bamboo
  4. Circle CI
  5. TeamCity

CI = 빌드 및 테스트 자동화
CD = 배포 자동화

📝 Reference Site

https://velog.io/@jch9537/%ED%95%9C-%EC%A4%84-%EC%9A%A9%EC%96%B4-CICD
https://jud00.tistory.com/entry/CICD%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

 

반응형

'📖 공부' 카테고리의 다른 글

MVP(Minimum Viable Product)개발이란?  (0) 2023.03.30
모바일 앱 종류  (0) 2023.02.21
애자일 방법론(Agile) 이해하기  (0) 2022.09.07
ISO 25010 품질특성  (0) 2022.08.18
API 이해하기  (0) 2022.08.05
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기