• CI/CD

    2025. 1. 16.

    by. hyunji1109

    출처: https://www.civo.com/blog/the-role-of-the-ci-cd-pipeline-in-cloud-computing

     

    CI/CD

    지속적 통합(Continuous Integration)과 지속적 배포/지속적 전달(Continuous Delivery/Continuous Deployment)을 의미하는 소프트웨어 개발 및 운영 방식

     

    1. CI(지속적 통합)

    • 개발자가 작성한 코드가 중앙 저장소에 자주 통합되도록 하는 개발 관행
    • 코드 변경 사항을 자주 통합하여 버그를 빨리 발견하고 해결

     

     

    주요 요소

    • 자동화된 빌드
      • 코드 변경이 발생할 때마다 자동으로 빌드를 수행하여 코드가 올바르게 실행될 수 있는지 확인
    • 자동화된 테스트
      • 새로운 코드가 기존 코드와 충돌하지 않도록 자동으로 테스트를 실행
    • 빈번한 통합
      • 개발자는 코드 변경을 저장소에 자주 통합하여 다른 팀원들이 작성한 코드와 빠르게 병합

     

    장점

    • 빠른 오류 발견
      • 코드 변경이 발생할 때마다 자동으로 빌드 및 테스트를 실행하여 문제를 빨리 발견
    • 개발 효율성 향상
      • 수동으로 빌드하고 테스트하는 시간을 줄여 더 빠른 배포가 가능

     

     

    2. CD(지속적 배포)

    • 소프트웨어가 자동으로 테스트되고 배포될 수 있도록 만드는 과정

     

      ❗ 지속적 전달과 지속적 배포는 비슷하지만 다른 개념 ❗  

    • 지속적 전달 (Continuous Delivery)
      • 지속적 전달은 코드가 배포 가능한 상태로 항상 준비되어 있는 것을 의미
      • 자동화된 테스트를 거친 후 자동화된 배포 파이프라인을 통해 새로운 기능이나 변경 사항이 실제 운영 환경에 배포될 준비
      • 실제로 배포가 이루어지는 것은 수동 
        • 자동으로 테스트가 끝난 후 변경된 코드가 테스트 환경이나 스테이징 서버에 자동 배포
        • 운영 환경으로 배포되기 전에 승인을 기다림

     

    • 지속적 배포 (Continuous Deployment)
      • 지속적 전달의 한 단계 더 나아간 개념
      • 코드 변경이 자동으로 운영 환경에 배포되는 것을 의미
      • 테스트가 끝나고 승인된 코드는 별도의 수동 작업 없이 자동으로 사용자에게 제공
        • 새로운 기능이 코드 저장소에 커밋되면 자동으로 빌드, 테스트, 배포가 진행
        • 사용자는 바로 새로운 기능을 사용

     

    장점

    • 빠른 피드백 제공
      • 코드가 자동으로 배포되어 사용자는 빠르게 새로운 기능을 경험
      • 고객 만족도를 높이고 개발자에게도 빠른 피드백을 제공
    • 운영 환경과 가까운 테스트 환경
      • 지속적 배포를 통해 코드가 실제 운영 환경에 배포되기 전에 테스트 환경에서 실제 환경과 유사한 조건을 만들어 검증
    • 배포 자동화
      • 수동 배포의 필요성을 없애 배포가 일관되게 이루어지므로 배포 오류를 최소화

     

     

    CI/CD 도구

    • Jenkins
      • 오픈소스 CI/CD 도구
      • 파이프라인을 구성하고 자동화하는 데 많이 사용
    • GitLab CI/CD
      • GitLab의 내장된 CI/CD 기능을 사용
      • 코드의 빌드, 테스트, 배포를 자동화
    • CircleCI
      • 클라우드 기반의 CI/CD 도구
      • 빠른 속도와 유연성을 제공

     

     

     

     

     

    'CS > 웹개발' 카테고리의 다른 글

    Docker  (0) 2025.01.20
    JPA N+1 문제  (0) 2025.01.19
    JPA Dirty Checking  (0) 2025.01.13
    google.com을 검색했을 때 일어나는 과정  (0) 2025.01.08
    OAuth  (0) 2025.01.06

    댓글