본문 바로가기
개발 지식/Devops

[Devops] CI/CD란?

by 꾸준함 2023. 4. 9.

CI/CD

1. CI/CD란?

CI 란?


  • CI는 Continous Integration의 약자로 지속적 통합 을 뜻한다.

    애플리케이션의 새로운 코드들을 자동으로 빌드 및 테스트 되어서 레포지토리에 통합(merge) 되는 것을 의미.

    예시

    예를 들어, 하나의 프로젝트를 진행하는데 여러명의 개발자가 협업을 하며 개발을 같이 진행하고있다. 이런 상황에서 개발자들이 빈번한게 merge하지 않고, 3~4일에 걸쳐 merger를 하거나 더 오랜 기간동안 개발을 진행하며 며칠동안 작업한 코드들을 한 번에 merge를 한다면 결과는?

    → 분명 생각치 못한 코드들의 충돌이 생겨날 것이다. 이렇게 된다면 코드를 작성하고, 충돌을 수정하는데에 시간을 더 소비하는 상황이 생긴다.

    CI의 Point

    위의 예시를 보았을 때, CI의 특징으로는 다음과 같다.

    • 개발자들은 최대한 작은 단위의 개발을 해나가며 빈번하게 merger를 해야한다.
    • 애플리케이션들의 빌드, 테스트, 병합하는 과정을 주기적으로 자동화시켜야 한다.

CD 란?


  • CD는 Continous Deployment 혹은 Continous Delivery의 약자로 **지속적인 배포** 를 뜻한다.

    새로운 기능을 개발하거나 버그를 수정하는 등의 작업이 이루어졌을 때, 이를 빠르고 안정적으로 배포하기 위해서이다. 또한 이를 통해 사용자들의 피드백을 받아 개발을 지속적으로 진행할 수 있다.

    CD의 Point

    CD의 특징으로는 다음과 같다.

    • 애플리케이션의 자동화된 배포
    • 사용자들의 피드백을 빠르게 반영하여 지속적인 개발을 꾀할 수 있다.

CI/CD의 장점

  • CI/CD 파이프라인은 소프트웨어 배포 프로세스를 자동화하고 개발자들이 일일이 수작업으로 수행해야 하는 반복적인 작업을 줄여준다. 이를 통해 소프트웨어 배포를 더 빠르고 안정적으로 수행할 수 있으며, 개발자들은 더 많은 시간을 코드 작성에 집중할 수 있다.

CI/CD의 장점다음 포스팅에서는 CI/CD를 위한 도구들을 알아보겠습니다.