Web

[언그래머] 쉰네번째 아티클_CI/CD 2탄_CD 개념이 하나가 아니라고..?

송코딩 songcoding 2023. 12. 26. 08:31

안녕하세요 여러분 :)

송아지할때 송아 김송아입니다.

 

 

오늘은 지난 아티클에 이은 CI/CD 2탄, CD에 대해 간단하게 알아보려 합니다!

 

 

 

일단 그 전에 여러분들께 한가지만 여쭤볼게요.

CD는 무슨 약자인가요?

🤔 Continuous Delivery?

🤔 Continuous Deployment?

 

 

@SNL

 

 

요즘 너무 자연스럽게 CI/CD를 붙여말하면서 

그냥 하나의 단어처럼 말하고 있죠‼️

 

 

그럼, CD가 다른 뜻이 있다는거야..?

맞습니다.

 

 

 

 

우선 아래 그림부터 보실까요?

 

 

@RedHat

 

 

 

사실 상 CD는 하나의 덩어리로 볼 수 있는 개념이기도 하지만,

자세히 들여다보면 배포 단계에서의 자동화 여부에 따라 큰 차이점을 가지고 있습니다.

 

 

 

하나씩 뜯어보도록 하죠!

먼저, Continuous Delivery 입니다.

 

 

✔️ 지속적 제공(Continuous Delivery, CD)

 

간단히 말해, 사용자에게 배포할 준비가 되어 있는 배포용 코드를 만들어내는 것입니다.

 

CI의 빌드 자동화, 유닛 및 통합 테스트 수행 후, 이어지는 지속적 제공 프로세스에서는 유효한 코드를 공유 리포지토리에 자동으로 릴리스합니다. 그러므로 효과적인 지속적 제공 프로세스를 실현하기 위해서는 개발 파이프라인에 CI가 먼저 구축되어 있어야겠죠?

 

 

지속적 제공의 경우, 코드 변경 사항 병합부터 프로덕션에 적합한 빌드 제공에 이르는 모든 단계에는 테스트 자동화와 코드 릴리스(병합) 자동화가 포함됩니다.

이 프로세스를 완료하면 운영팀이 더욱 빠르고 손쉽게 애플리케이션을 프로덕션으로 배포할 수 있게 됩니다. (= 배포하기 전 단계까지)

 

 

 

@Unity

 

 

 

그럼 또다른 의미의 CD는 무엇일까요? 

바로, Continuous Deployment 입니다. 

 

✔️ 지속적 배포(Continuous Deployment, CD)

 

사실 상, CI/CD 파이프라인의 마지막 단계는 지속적 배포입니다.

💡 파이프라인이란?

컴퓨터 과학에서 파이프라인은 특히 이전 단계의 출력이 다음 단계의 입력으로 이어지는 형태이자,
여러 단계를 동시에 (즉, 병렬적으로) 수행될 수 있도록 연결된 형태를 말합니다.

 

 

프로덕션 준비가 완료된 빌드를 코드 리포지토리에 자동으로 릴리스하는 지속적 제공의 확장된 형태인

지속적 배포는 애플리케이션을 프로덕션으로 배포하는 작업을 자동화합니다.

 

 

실제 사례에서 지속적 배포란 개발자가 애플리케이션에 변경 사항을 작성한 후 몇 분 이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미합니다(자동화된 테스트를 통과한 것으로 간주합니다)

 

 

-

 

CI/CD는 소프트웨어 공학의 개념인 만큼, 애자일 방법론의 권장 사항이기도 합니다.

 

CI/CD는 통합과 제공을 자동화하여 어플리케이션 배포에 파이프라인을 구축하는 것입니다.

이런 파이프라인은, 소프트웨어 개발팀이 코드 품질과 소프트웨어 보안을 보장하는 동시에 비즈니스 요구사항을 충족하는 데 집중할 수 있게 해주죠.

 

 

또한 경쟁력도 갖출 수 있지 않을까요?

사용자의 피드백을 지속적으로 적용하고 통합하는 일이 훨씬 편하고 빨라질테니까요!

 

 

 

여러분들의 이번 일주일도,

하나하나의 루틴이 쌓여서 지난주보다 조금 더 편하고 조금 더 멋진 한주가 되시길 바라며 :)

 

 

다가오는 금요일,

2023년 마지막 아티클에서 만나요.

 

감사합니다.

김송아 드림

 

 

 

 

 

아니 근데 잠깐, 옆집 사는 김송아가 유데미 강의를 냈다고?
 
옆집 개발자 지금 구경가기 👇🏻