continuous-integration

지속적 통합(CI)은 개발자가 코드 변경 사항을 중앙 리포지토리에 자주 병합하고, 이후 자동화된 빌드 및 테스트가 실행되는 소프트웨어 개발 방식입니다.

지속적 통합(CI)은 개발자가 일반적으로 하루에 여러 번 코드를 중앙 리포지토리에 정기적으로 병합하는 소프트웨어 개발 방식입니다. 각 병합은 자동화된 빌드와 자동화된 테스트 스위트로 검증됩니다. CI의 주요 목표는 통합 오류를 가능한 한 빨리 감지하여 코드 충돌을 방지하고 코드베이스가 일관되게 작동하는 상태를 유지하는 것입니다. 개발자가 코드를 커밋하면 Jenkins, GitLab CI 또는 GitHub Actions와 같은 자동화된 시스템이 변경 사항을 감지하고 최신 코드를 가져와 컴파일(빌드)하고 일련의 테스트(예: 단위 테스트, 기본 통합 테스트)를 실행합니다. 빌드 또는 테스트가 실패하면 팀은 즉시 알림을 받고, 일반적으로 결함이 있는 코드는 진행하기 전에 수정됩니다. 이 방식은 코드가 드물게 병합되는 전통적인 개발 주기에서 자주 발생하는 통합 문제를 크게 줄여줍니다. 문제를 조기에 발견함으로써 CI는 더 높은 코드 품질, 더 빠른 개발 주기 및 개선된 팀 협업으로 이어지며, 지속적 전달 및 지속적 배포의 기초를 형성합니다.

        graph LR
  Center["continuous-integration"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_cicd["cicd"]:::related -.-> Center
  click Rel_cicd "/terms/cicd"
  Rel_continuous_delivery["continuous-delivery"]:::related -.-> Center
  click Rel_continuous_delivery "/terms/continuous-delivery"
  Rel_cicd_pipeline["cicd-pipeline"]:::related -.-> Center
  click Rel_cicd_pipeline "/terms/cicd-pipeline"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 지식 테스트

1 / 3

🧒 5살도 이해할 수 있게 설명

모든 사람이 그림의 작은 부분을 그리고 서로 계속 확인하여 전체 그림이 좋아 보이게 하는 것과 같습니다.

🤓 Expert Deep Dive

지속적 통합은 현대 소프트웨어 개발, 특히 애자일 및 데브옵스 방법론에서 기본적인 실천 방법입니다. 이는 통합 지점을 드물고 대규모 병합에서 빈번하고 소규모 통합으로 근본적으로 전환합니다. 핵심 메커니즘은 버전 관리 시스템(예: Git), 자동화된 빌드 시스템 및 자동화된 테스트 프레임워크를 포함합니다. 빌드 시스템은 소스 코드를 실행 가능한 아티팩트로 컴파일하고, 테스트 스위트는 코드의 기능과 정확성을 검증합니다. 통합 빈도가 중요합니다. 하루에 여러 번 통합하면 통합 간의 변경 범위가 최소화되어 빌드 또는 테스트 실패의 원인을 더 쉽게 파악할 수 있습니다. 아키텍처 측면에서 CI 파이프라인은 종종 전용 CI 서버 또는 클라우드 기반 서비스를 사용하여 구현됩니다. CI의 효과는 빌드 및 테스트 스위트의 속도와 안정성에 직접 비례합니다. 느리거나 불안정한 테스트는 이 실천 방법을 약화시킵니다. 절충점에는 강력한 자동화를 설정하는 데 드는 초기 투자와 개발 팀이 빈번하게 통합해야 하는 규율이 포함됩니다. 이를 수행하지 않으면 "통합 지옥"이 발생할 수 있습니다.

🔗 관련 용어

선행 지식:

📚 출처