[이론] CI/CD가 무엇이냐!

준커·2023년 3월 14일
1

DevOps

목록 보기
1/6
post-thumbnail

CI/CD란?

어플리케이션 개발 단계부터 배포 단계 사이를 자동화시켜 사용자에게 효율적이고 빈번하게 배포시키는 것 -엘리-

1. CI란?

Continuous Integration -> 지속적인 통합

하나의 코드에 대해 여러 명의 사람이 지속적으로 수정하고 품질을 관리하는 것.
-> Git Repository에 지속적으로 commit하고 merge하는 것.

1-1. 코드 변경사항을 주기적으로 빈번하게 머지해야한다

  • 여러 사람이 작업할 때, 충돌이 발생하면 개발에 사용하는 시간보다 충돌을 잡는 시간에 더 많은 시간을 투자하게 됨.

  • 충돌을 최대한 적게 발생시키기 위해 최소한의 단위로 나누어 빈번하기 머지 해야 함.

1-2. 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화

  • 개발자가 merge를 할 때마다 해당 코드가 반영된 어플리케이션이 빌드가 잘 되는 자동으로 판단.
  • 빌드가 성공했다면, 다른 코드에 영향이 없는지 테스트.
  • 테스트까지 통과했다면, 배포 시 반영.

1-3. CI의 장점

- 생산성이 증가

  • CI를 주기적으로 merge를 하기 때문에 충돌을 잡는데 사용하는 시간이 현저히 감소.

- 버그 수정에 용이

  • 통합을 위한 단계가 자동화되므로 내가 merge한 코드가 버그가 있는지 즉시 확인 가능.
  • 또한 작은 단위로 merge하다 보니 rollback 시 risk가 적음.

- 위 2개의 장점이 합쳐져 코드의 퀄리티가 향상됨

2. CD란?

Continuous Delivery(Deployment) -> 지속적인 제공(배포)

CI가 끝난 후 마지막 배포 단계가 자동화하는 것

2-1. Continuous Delivery

  • 배포 준비 자동화수동 배포

2-2. Continuous Deployment

  • Continuous Delivery + 배포 검증부터 배포까지 자동화

3. 정리

4. CI/CD 파이프라인

CI/CD에는 여러 가지 파이프라인이 존재하지만 나는 다음 파이프라인에 대해 공부해 볼 예정이다.

출처

드림코딩 : 보고 한방에 이해해서 다른 자료 볼 필요 없다고 자부함.

profile
학부생일뿐

0개의 댓글