최종주차 ci cd

김나현·2024년 10월 1일
1

CI/CD는 Continuous Integration (CI)Continuous Deployment/Delivery (CD)의 약자로, 소프트웨어 개발 및 배포 프로세스를 자동화하고 최적화하는 방법론입니다. 이 두 가지는 현대 소프트웨어 개발에서 매우 중요한 부분으로, 코드 변경 사항을 신속하게 테스트하고 배포하는 것을 목표로 합니다. 아래에서 CI/CD의 각 구성 요소를 간단히 설명하겠습니다.

계속적인(지속적인,계속 이어지는) 통합 / 계속적인 배포

  1. Continuous Integration (CI)
    정의: CI는 개발자가 코드를 변경할 때마다 자동으로 통합하고 테스트하는 프로세스입니다.
    목표: 코드 변경 사항이 기존의 코드와 잘 통합되는지를 자주 확인하여 통합 과정에서 발생할 수 있는 문제를 조기에 발견합니다.
    작동 방식:
    개발자는 코드 변경을 버전 관리 시스템(예: Git)에 푸시합니다.
    CI 서버(예: Jenkins, GitHub Actions, GitLab CI)가 자동으로 코드를 가져와 빌드하고 테스트를 실행합니다.
    모든 테스트가 성공하면, 변경 사항이 통합되며, 실패하면 개발자에게 알림이 전송됩니다.
  2. Continuous Delivery (CD)
    정의: CD는 CI의 다음 단계로, 코드가 항상 배포 가능한 상태를 유지하는 프로세스입니다.
    목표: 배포 준비가 완료된 소프트웨어를 언제든지 배포할 수 있도록 자동화하여, 배포의 빈도와 속도를 높입니다.
    작동 방식:
    CI 단계에서 성공적으로 통합된 후, 자동으로 배포 준비 상태로 설정됩니다.
    수동으로 배포를 승인하거나, 특정 조건을 충족할 경우 자동으로 배포됩니다.
  3. Continuous Deployment (CD)
    정의: Continuous Deployment는 Continuous Delivery의 더 발전된 형태로, 코드 변경 사항이 자동으로 프로덕션 환경에 배포되는 프로세스입니다.
    목표: 개발자가 푸시한 코드가 모든 테스트를 통과하면, 별도의 승인 없이 자동으로 배포됩니다.
    작동 방식:
    CI 단계에서 테스트를 통과한 변경 사항이 자동으로 프로덕션 환경에 배포됩니다.
    CI/CD의 이점
    빠른 피드백: 코드 변경 사항에 대한 피드백이 신속하게 이루어져 문제를 조기에 해결할 수 있습니다.
    자동화: 수작업을 최소화하고 자동화를 통해 오류를 줄입니다.
    일관성: 모든 빌드와 배포 프로세스가 일관되게 유지되어, 환경 간의 차이로 인한 문제를 줄입니다.
    빠른 배포: 새로운 기능이나 버그 수정을 신속하게 배포하여 고객에게 가치를 제공합니다.
    CI/CD 도구
    일반적으로 사용되는 CI/CD 도구에는 다음과 같은 것들이 있습니다:

Jenkins: 오픈 소스 자동화 서버로 CI/CD를 위한 가장 인기 있는 도구 중 하나입니다.
GitHub Actions: GitHub에서 제공하는 CI/CD 자동화 도구로, 리포지토리와 통합이 용이합니다.
GitLab CI: GitLab 플랫폼에서 제공하는 CI/CD 기능으로, 내장된 CI/CD 도구입니다.
Travis CI: GitHub와 통합하여 CI/CD 파이프라인을 쉽게 설정할 수 있습니다.
CircleCI: 빠르고 강력한 CI/CD 도구로, 클라우드와 온프레미스에서 사용 가능합니다.
CI/CD를 통해 개발 프로세스를 자동화하고 최적화함으로써, 팀의 생산성을 높이고 소프트웨어 품질을 개선할 수 있습니다.

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글