1일 1CS(Computer Science)

CI/CD란 무엇인지 설명해주세요

표자 2025. 6. 27. 10:26

CI/CD란 무엇인지 설명해주세요

프론트엔드와 관련된 질문이에요.

CI/CD는 애플리케이션 배포 과정을 자동화하여 더 짧은 주기로 고객에게 서비스를 제공하는 방식입니다. 먼저, CI는 Continuous Integration의 약어로 지속적 통합을 의미합니다. CD는 Continuous Delivery(지속적 전달) 또는 Continuous Deployment(지속적 배포) 를 의미합니다.

먼저, CI 개발자들이 코드 변경사항을 주기적으로 메인 브랜치에 병합하는 과정을 자동화한 것입니다. 이 과정에서 코드 변경사항이 발생할 때마다 자동으로 빌드와 테스트를 수행하여 문제를 조기에 발견할 수 있습니다. 예를 들어, 여러 개발자가 함께 작업할 때 한 개발자의 변경사항이 다른 개발자의 작업과 충돌하거나 전체 애플리케이션에 문제를 일으킬 수 있는데, CI를 거치면 이러한 문제를 병합 이전에 미리 파악할 수 있습니다.

CD CI 이후 단계를 자동화하는 것으로, 애플리케이션의 변경사항을 production 환경으로 배포하는 과정을 자동화한 것입니다. Continuous Delivery의 경우, 배포 가능한 상태로 준비하는 과정까지는 자동화하고 실제 배포는 사람의 승인을 거쳐 수동으로 진행합니다. 반면, Continuous Deployment production 환경에 배포하는 과정까지 모두 자동화합니다.

현업에서는 GitHub Actions, Jenkins, GitLab CI 등의 도구를 사용하여 CI/CD 파이프라인을 구축합니다. CI/CD 프로세스에 대한 하나의 예시를 들면 다음과 같습니다.

  1. 개발자가 PR을 올리면 자동으로 테스트/빌드 실행
  2. 테스트/빌드를 성공한 경우 메인 브랜치로의 머지 활성화
  3. 메인 브랜치 머지 시 production 환경으로 자동 배포
728x90