CI / CD

2023. 2. 8. 16:33기술 창고/CI, CD

728x90
반응형
SMALL

개발을 처음 접해보거나 깊이 개발을 해보지 않은 개발자들이라면 프로젝트를 만들면서 일일히 정상적으로 동작하는지 가내수공업처럼 힘들게 실행하고 확인하고 손수 배포하는 과정을 많이 겪어보았을 것이다.

 

CI / CD 는 이러한 쓸데없는 리소스를 줄이기 위한 자동화 과정들이다.

 


CI (Continuous Integration)

해석하자면 지속적인 통합, 합치기라는 의미이다.

우리가 개발한 어플리케이션의 새로운 코드 변경 사항이 자동 주기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것이다.

따라서 CI 가 구현되어있는 환경이라면 여러명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

즉, commit 할 때마다 빌드와 테스트가 자동으로 이루어져 동작을 확인하고 변경되는 문제가 발생하지 않도록 보장한다.

 

 

# CI 가 필요한 환경 조건

(1) 여러 개발자가 형상관리 툴(git 등)을 공유하여 사용하는 환경

여러 개발자들이 모여있는 팀에서 개발을 진행하면 기능을 추가하거나 수정을 할 때 commit 작업 등을 실행해 repository에 반영을 하는데, 소수의 인원이 있다면 괜찮겠지만 다수의 인원이 작업을 할 경우에는 수많은 commit들이 쌓이게 된다.

이러한 상황에서 기능별로 전부 따로 빌드, 테스트, 병합까지 수행한다면 상당히 번거로울 뿐만 아니라 시간 및 리소스의 낭비가 발생한다.

이런 상황에 CI는 자동화된 빌드, 테스트를 지원하기 때문에 효과적이다.

 

(2) MSA 환경

MSA 환경이란 기존의 개발 환경과 다르게 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태이다.

MSA 환경은 대부분 Agile (소규모 기능 단위로 빠르게 개발 / 적용을 반복하는 개발 방식) 방식으로 운영되기 때문에 기능추가 변경이 매우 잦게 일어난다.

따라서 잦은 작업으로 인해 충돌될 수 있는 가능성을 CI가 자동화함으로서 방지해준다.

 

 

 

CD (Continuous Delivery / Continuous Deployment)

지속적인 서비스 제공, 배포를 의미한다.

운영하고있는 공유 레포지토리에 자동으로 배포를 한다.

 

CD는 두 가지의 의미를 가지고 있는데, Continuous Delivery 는 공유 레포지토리까지만 자동으로 배포를 하고 고객들이 이용하는 프로덕션까지는 수동으로 배포하는 방식이고, Continuous Deployment 는 레포지토리 뿐만이 아니라 실질적으로 클라이언트가 사용하는 실제 프로덕션 환경에까지 자동으로 배포되는 것을 의미한다.

 

 

# CD가 필요한 환경 조건

CD는 자동적으로 고객들의 사용환경에까지 자동적으로 배포되기 때문에 최대한 빠른 시간에 최신 버전의 프로덕션을 사용하고자 하는 고객들을 대상으로 하는 프로덕션 개발 프로젝트에 적합하다.

 

 

 

 

CI / CD 과정

 

 

 

CI / CD 툴

# 젠킨스
# 트래비스 CI
# 밤부

 

 

 

 

 

[도움받은 출처 글]

https://seosh817.tistory.com/104

 

[CI/CD] CI/CD란? - 지속적 통합(Continuous Integration)/지속적 배포(Continuous Deployment) 기본개념

매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면,

seosh817.tistory.com

https://artist-developer.tistory.com/24

 

CI/CD란 무엇인가 (Feat. DevOps 엔지니어)

안녕하세요. 개발자의 용어를 쉽고 명확하게 설명해드리는 개발자 김모씨입니다. CI/CD ?! 개발자로 밥먹고 사시는 분들이시라면, 혹은 IT서비스 업계에 종사하시는 분들이라면, 한 번 쯤은 들어

artist-developer.tistory.com

 

728x90
반응형
LIST