맨위로가기

CI/CD

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CI/CD는 소프트웨어 공학에서 지속적 통합(Continuous Integration)과 지속적 전달(Continuous Delivery) 또는 지속적 배포(Continuous Deployment)를 결합한 관행을 의미한다. CI/CD는 애플리케이션의 빌드, 테스트, 배포를 자동화하여 개발과 운영 간의 격차를 줄이고, 결함을 조기에 발견하며, 빠른 릴리스 주기를 제공하는 것을 목표로 한다. 현대적인 DevOps 관행에서 CI/CD 파이프라인은 핵심적인 역할을 하며, 클라우드 환경에서는 파이프라인 수, 권한 관리 등의 모범 사례를 통해 생산성을 향상시킬 수 있다.

더 읽어볼만한 페이지

  • 소프트웨어 설계 - 구조적 분석
    구조적 분석은 1960년대에서 1980년대 소프트웨어 개발의 복잡성을 해결하기 위해 개발된 기법으로, 다이어그램과 데이터 사전을 활용하여 시스템을 분석하고 설계했으며, 객체 지향 프로그래밍의 등장으로 활용도가 감소했다.
  • 소프트웨어 설계 - 지속적 배포
    지속적 배포(CD)는 소프트웨어 릴리스 프로세스를 자동화하는 접근 방식이며, 배포 파이프라인을 통해 구현되고 시장 출시 시간 단축, 제품 품질 향상 등의 이점을 제공하지만 테스트 자동화 부족 등의 과제도 존재한다.
  • 소프트웨어 개발 프로세스 - 버전 관리
    버전 관리는 파일 변경 이력을 체계적으로 관리하는 시스템이며, 다양한 구조와 소스 관리 모델을 통해 협업을 지원하고, 비즈니스 등 다양한 분야에서 활용된다.
  • 소프트웨어 개발 프로세스 - 소프트웨어 개발 수명 주기
    소프트웨어 개발 수명 주기(SDLC)는 시스템 설계자와 개발자가 따르는 일련의 단계로, 예비 분석부터 폐기까지 여러 단계를 거치며, 폭포수 모델, 시스템 분석 및 설계(SAD), 객체 지향 분석 및 설계(OOAD) 등 다양한 방법론을 포함한다.
CI/CD

2. 구성 요소

CI/CD는 지속적 통합(Continuous Integration), 지속적 전달(Continuous Delivery), 지속적 배포(Continuous Deployment)라는 세 가지 주요 요소로 구성된다.


  • 지속적 통합: 개발자들이 작성한 코드를 주기적으로 통합하고 테스트하여 소프트웨어 품질을 유지한다.
  • 지속적 전달: 소프트웨어를 짧은 주기로 개발하고, 언제든지 배포할 수 있도록 준비한다.
  • 지속적 배포: 새로운 소프트웨어 기능을 자동으로 사용자에게 배포한다.

2. 1. 지속적 통합 (Continuous Integration)

지속적 통합은 여러 개의 작은 변경 사항을 메인 브랜치에 자주 병합하는 것이다. CI/CD 서비스는 개발자가 만든 점진적인 코드 변경 사항을 컴파일한 다음, 소프트웨어 결과물로 링크하고 패키징한다.[3] 자동화된 테스트는 소프트웨어 기능을 확인한다.[4] 목표는 결함을 조기에 발견하고, 생산성을 높이며, 더 빠른 릴리스 주기를 제공하는 것이다.

오늘날의 DevOps 관행에는 지속적인 개발, 지속적인 테스트, 지속적인 통합, 그리고 개발 수명 주기 전체에 걸친 소프트웨어 애플리케이션의 지속적인 모니터링이 포함된다.

2. 2. 지속적 전달 (Continuous Delivery)

지속적 전달은 안정적인 소프트웨어를 언제든지 릴리스할 수 있도록 빠르고 빈번하게 짧은 주기로 소프트웨어를 생산하며, 배포를 결정할 때 간단하고 반복 가능한 배포 프로세스를 갖는 것이다.[3]

2. 3. 지속적 배포 (Continuous Deployment)

지속적 배포(Continuous Deployment)는 새로운 소프트웨어 기능의 자동 롤아웃을 의미한다.[3] CI/CD 서비스는 개발자가 만든 점진적인 코드 변경 사항을 컴파일한 다음, 소프트웨어 결과물로 링크하고 패키징한다.[3] 자동화된 테스트는 소프트웨어 기능을 확인하고, 자동화된 배포 서비스는 최종 사용자에게 이를 제공한다.[4]

3. DevOps와 CI/CD

CI/CD는 애플리케이션의 빌드, 테스트 및 배포 자동화를 통해 개발과 운영 활동 및 팀 간의 격차를 해소한다. CI/CD 서비스는 개발자가 만든 점진적인 코드 변경 사항을 컴파일한 다음, 소프트웨어 결과물로 링크하고 패키징한다.[3] 자동화된 테스트는 소프트웨어 기능을 확인하고, 자동화된 배포 서비스는 최종 사용자에게 이를 제공한다.[4] 목표는 결함을 조기에 발견하고, 생산성을 높이며, 더 빠른 릴리스 주기를 제공하는 것이다. 이 프로세스는 최신 버전을 배포하기 전에 일련의 소프트웨어 업데이트를 하나의 큰 배치로 통합하는 기존 방식과 대조된다.

오늘날의 DevOps 관행은 소프트웨어 애플리케이션의 개발 수명 주기 전체에 걸쳐 지속적인 개발, 지속적인 테스트, 지속적인 통합, 지속적인 배포, 지속적인 모니터링을 포함한다.

소프트웨어 엔지니어링에서, '''CI/CD''' 또는 '''CICD'''는 일반적으로 지속적 통합과 지속적 전달 또는 지속적 배포를 결합한 관행을 의미한다.[8][9][10]

3. 1. CI/CD 파이프라인

CI/CD 파이프라인은 현대 DevOps 운영의 중추를 형성한다.[8][9][10] CI/CD 파이프라인은 애플리케이션의 빌드, 테스트 및 배포의 자동화를 실행하여 개발 및 운영 활동과 팀 간의 격차를 해소한다.

4. 클라우드 환경에서의 CI/CD 모범 사례


  • '''파이프라인 수''': 소규모 팀은 하나의 저장소와 하나의 파이프라인을 갖는 것이 더 생산적일 수 있다. 반대로, 대규모 조직은 각 팀별로 별도의 저장소와 파이프라인을 가질 수 있으며, 심지어 팀 내 각 서비스별로 별도의 저장소와 파이프라인을 가질 수도 있다.
  • '''권한''': 파이프라인 관련 권한의 맥락에서, 최소 권한 원칙을 준수하는 것은 소프트웨어 아키텍처의 동적 특성으로 인해 어려울 수 있다. 관리자는 피해 범위를 최소화하기 위해 보상적인 보안 제어를 구현하면서 더 허용적인 권한을 선택할 수 있다.

5. 기업 커뮤니케이션

기업 커뮤니케이션의 맥락에서 '''CI/CD'''는 기업 아이덴티티와 기업 디자인의 전체적인 프로세스를 지칭하기도 한다.

참조

[1] 뉴스 What is CI/CD? Continuous integration and continuous delivery explained https://www.infoworl[...] InfoWorld 2020-01-17
[2] 웹사이트 What is Continuous Development and How Does It Work? | Synopsys https://www.synopsys[...]
[3] 서적 Continuous Integration, Delivery, and Deployment Packt Publishing 2017-10
[4] 서적 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME) 2019
[5] 서적 Serverless Architectures on AWS Manning
[6] 서적 Pipeline as Code Continuous Delivery with Jenkins, Kubernetes, and Terraform Manning
[7] 서적 Continuous Delivery Reliable Software Releases Through Build, Test, and Deployment Automation
[8] 뉴스 5 common pitfalls of CICD -- and how to avoid them https://www.infoworl[...] 2018-03-28
[9] 뉴스 Continuous integration is not always the right answer. Here's why. https://techbeacon.c[...] 2015-07-20
[10] 웹사이트 Continuous integration vs. continuous delivery vs. continuous deployment https://www.atlassia[...] 2017-04-14
[11] 웹사이트 Corporate Identity https://www.ionos.co[...] 2020-07-22



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com