개요
기본적으로 서비스를 배포하기까지는 개발 외에도 테스트, 빌드, 배포 등 여러 과정을 거치게 된다. 이 과정이 일회성으로 이루어지거나 단순히 몇 진행된다면, 이 과정을 그대로 진행해도 무방할 것이다. 하지만, 서비스를 운영하는 동안 생길 수 있는 오류를 수정하거나 새로운 기능을 추가해야 하는 상황은 지속적으로 일어나게 되며, 이럴 때 마다 해당 과정을 계속해서 반복하는 것은 개발자들에게 상당한 피로감을 주고 개발 생산성을 떨어뜨릴 것이다. CI/CD는 빌드 및 배포 과정을 자동화하여 이 과정에서 생길 수 있는 문제를 줄일 수 있다. 이로써, 개발자들은 개발에 더 시간을 투자할 수 있고, 오로지 개발에만 집중할 수 있게 된다.
CI란?
CI/CD에서 CI는 "Continuous Integration"의 약자로서, 지속적인 통합을 의미한다.
애플리케이션에 변경 사항이 생기면 이를 빌드 및 테스트하는 과정이 이루어지고, 이를 통해 빌드의 성공 혹은 실패 여부를 파악하고 이를 개선할 수 있는 방안을 찾게 된다. 다만, 개발을 진행하는 과정에서 여러 개발자들이 참여하여 코드를 변경하고 각자 변경한 코드를 병합하는 과정을 거처야 하는데, 이때 병합하는 과정에서 충돌이 발생할 수 있고, 이로 인해 많은 코드를 병합하는 과정은 매우 많은 시간을 소비하게 되는 문제가 발생한다.
CI를 구축한다면 개발자 각자가 원격 저장소(GitHub, GitLab, etc)로 push할 때마다 코드를 병합하고 테스트와 빌드를 수행하면서 자동으로 코드가 통합되어 더는 수동으로 코드를 통합할 필요가 없어지므로, 개발자들은 개발에만 더욱 집중할 수 있는 환경이 만들어지게 된다.
CD란?
CI/CD에서 CD는 "Continuous Delivery" 혹은 "Continuous Deployment"의 약자로, 지속적인 서비스 제공 혹은 지속적인 배포를 의미한다.
두 가지 의미 모두 CI 이후 추가적인 단계의 자동화를 뜻하지만, 어느 부분까지 자동화가 이루어졌나에 따라 다른 의미로 사용되기도 한다.
Continuous Delivery
지속적인 제공이라는 뜻을 가진 continuous delivery는 CI 과정이 정상적으로 완료된 이후, 비프로덕션 테스트 또는 스테이징 환경으로 자동으로 업로드되는 것을 뜻한다. 작업자들은 자동으로 업로드된 프로덕트에 문제가 없는지 검증 후, 애플리케이션을 실시간으로 프로덕션 환경에 수동으로 배포할 수 있다.
Continuous Deployment
지속적인 배포라는 뜻을 가진 continuous deployment는 delivery와는 다르게 작업자들의 검증 과정을 거치지 않고, 프로덕션 환경에 배포하는 과정까지 자동화하는 것이다. 즉, delivery와 비슷하지만 최종 배포 과정이 자동화 유무의 차이라고 볼 수 있다.

참고
지속적 전달이란 무엇입니까? - Amazon Web Services
지속적 전달은 전체 소프트웨어 릴리스 프로세스를 자동화합니다. 수정 버전이 커밋될 때마다, 업데이트를 빌드 및 테스트한 후, 스테이징하는 자동화된 흐름이 트리거됩니다. 라이브 프로덕션
aws.amazon.com
Continuous Delivery vs. Continuous Deployment: A Comparison
What is the CI/CD pipeline and what are the differences between continuous delivery vs continuous deployment? Learn the differences with Katalon.
katalon.com
CI/CD란?
개발자가 사용자들에게 서비스를 배포하기까지는 개발, 테스트, 빌드, 배포 등의 많은 과정들이 필요하다. 서비스를 한 번만 배포를 하면 이러한 과정을 수행하는 것이 문제가 없지만, 실제 서
seongwon.dev
'CI&CD' 카테고리의 다른 글
[CI/CD] Jenkins + GitHub 인증 설정하기 (0) | 2024.09.16 |
---|---|
[CI/CD] Jenkins를 활용하여 CI/CD 구축하기 2 - CD 구축 (0) | 2024.09.09 |
[CI/CD] Jenkins를 활용하여 CI/CD 구축하기 1 - Jenkins 설치 및 CI 구축 (0) | 2024.09.05 |
개요
기본적으로 서비스를 배포하기까지는 개발 외에도 테스트, 빌드, 배포 등 여러 과정을 거치게 된다. 이 과정이 일회성으로 이루어지거나 단순히 몇 진행된다면, 이 과정을 그대로 진행해도 무방할 것이다. 하지만, 서비스를 운영하는 동안 생길 수 있는 오류를 수정하거나 새로운 기능을 추가해야 하는 상황은 지속적으로 일어나게 되며, 이럴 때 마다 해당 과정을 계속해서 반복하는 것은 개발자들에게 상당한 피로감을 주고 개발 생산성을 떨어뜨릴 것이다. CI/CD는 빌드 및 배포 과정을 자동화하여 이 과정에서 생길 수 있는 문제를 줄일 수 있다. 이로써, 개발자들은 개발에 더 시간을 투자할 수 있고, 오로지 개발에만 집중할 수 있게 된다.
CI란?
CI/CD에서 CI는 "Continuous Integration"의 약자로서, 지속적인 통합을 의미한다.
애플리케이션에 변경 사항이 생기면 이를 빌드 및 테스트하는 과정이 이루어지고, 이를 통해 빌드의 성공 혹은 실패 여부를 파악하고 이를 개선할 수 있는 방안을 찾게 된다. 다만, 개발을 진행하는 과정에서 여러 개발자들이 참여하여 코드를 변경하고 각자 변경한 코드를 병합하는 과정을 거처야 하는데, 이때 병합하는 과정에서 충돌이 발생할 수 있고, 이로 인해 많은 코드를 병합하는 과정은 매우 많은 시간을 소비하게 되는 문제가 발생한다.
CI를 구축한다면 개발자 각자가 원격 저장소(GitHub, GitLab, etc)로 push할 때마다 코드를 병합하고 테스트와 빌드를 수행하면서 자동으로 코드가 통합되어 더는 수동으로 코드를 통합할 필요가 없어지므로, 개발자들은 개발에만 더욱 집중할 수 있는 환경이 만들어지게 된다.
CD란?
CI/CD에서 CD는 "Continuous Delivery" 혹은 "Continuous Deployment"의 약자로, 지속적인 서비스 제공 혹은 지속적인 배포를 의미한다.
두 가지 의미 모두 CI 이후 추가적인 단계의 자동화를 뜻하지만, 어느 부분까지 자동화가 이루어졌나에 따라 다른 의미로 사용되기도 한다.
Continuous Delivery
지속적인 제공이라는 뜻을 가진 continuous delivery는 CI 과정이 정상적으로 완료된 이후, 비프로덕션 테스트 또는 스테이징 환경으로 자동으로 업로드되는 것을 뜻한다. 작업자들은 자동으로 업로드된 프로덕트에 문제가 없는지 검증 후, 애플리케이션을 실시간으로 프로덕션 환경에 수동으로 배포할 수 있다.
Continuous Deployment
지속적인 배포라는 뜻을 가진 continuous deployment는 delivery와는 다르게 작업자들의 검증 과정을 거치지 않고, 프로덕션 환경에 배포하는 과정까지 자동화하는 것이다. 즉, delivery와 비슷하지만 최종 배포 과정이 자동화 유무의 차이라고 볼 수 있다.

참고
지속적 전달이란 무엇입니까? - Amazon Web Services
지속적 전달은 전체 소프트웨어 릴리스 프로세스를 자동화합니다. 수정 버전이 커밋될 때마다, 업데이트를 빌드 및 테스트한 후, 스테이징하는 자동화된 흐름이 트리거됩니다. 라이브 프로덕션
aws.amazon.com
Continuous Delivery vs. Continuous Deployment: A Comparison
What is the CI/CD pipeline and what are the differences between continuous delivery vs continuous deployment? Learn the differences with Katalon.
katalon.com
CI/CD란?
개발자가 사용자들에게 서비스를 배포하기까지는 개발, 테스트, 빌드, 배포 등의 많은 과정들이 필요하다. 서비스를 한 번만 배포를 하면 이러한 과정을 수행하는 것이 문제가 없지만, 실제 서
seongwon.dev
'CI&CD' 카테고리의 다른 글
[CI/CD] Jenkins + GitHub 인증 설정하기 (0) | 2024.09.16 |
---|---|
[CI/CD] Jenkins를 활용하여 CI/CD 구축하기 2 - CD 구축 (0) | 2024.09.09 |
[CI/CD] Jenkins를 활용하여 CI/CD 구축하기 1 - Jenkins 설치 및 CI 구축 (0) | 2024.09.05 |