본문 바로가기

개발정보

CI / CD

개발을 하다보면 CI 또는 CD에 대한 이야기를 많이 들어본다. 

간단하게 알기론

 

내가 git에 코드를 올리면 누군가가 빌드와 테스트, 배포를 해줘서 쓸대없는 시간이 낭비되는 것을
방지할 수 있다

 

프로젝트를 진행할 때 수정, 빌드, 배포하는 과정을 통해 작업한 내용이 실제로 동작하는지 테스트하고

검증할 필요가 있다.

이것을 매번 수동으로 반복하면 시간이 걸리고 실수를 할 수 있다. 

이를 위해서 CI / CD가 생겻다. 

 

CI ? 

지속적인 통합이라는 뜻이다. 

개발을 진행하면서 품질도 관리할 수 있는 것으로 여러 명이 하나의 코드에 수정을 진행해도 

지속적으로 통합해서 관리할 수 있다. 

 

CI는 개발자가 빌드와 테스트를 직접 하지 않고도 수정한 코드를 브랜치에 병합하기만 하면 

자동으로 빌드와 테스트를 검증할 수 있다. 

 

개발자가 기능 개발을 단위별로 병합할 때마다 자동화된 빌드와 테스트가 실행된다. 

그 결과를 통해 어떤 부분에 문제가 있는지, 배포 전에 확인할 수 있고 빠르게 해결할 수 있다. 

 

정리하면, 

▶ 1. 개발자가 구현한 코드를 기존 코드와 병합한다. 

▶ 2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다. 

▶ 3. 테스트 결과 문제가 있다면 수정하고, 1번부터 수행하고, 문제가 없다면 배포를 한다. 

 

CD ? 

지속적인 통합을 거친 코드를 신뢰하고 배포할 수 있다. 

즉, CD는 지속적인 배포이다.  또다른 개념으로 지속적 제공으로 사용되기도 한다. 

 

지속적 제공 

CI를 통해서 빌드와 테스트 병합까지 성공적으로 진행되었다면, 빌드와 테스트를 거쳐 

github와 같은 저장소에 업로드 하는 것을 의미한다. 

 

지속적 배포 

성공적으로 병합된 코드를 저장소 뿐만 아닌 사용자가 사용할 수 있는 

배포 환경까지 릴리즈 하는 것을 의미한다. 

반응형

'개발정보' 카테고리의 다른 글

비즈니스 로직  (0) 2022.11.25
Service Worker  (0) 2022.11.23
사파리의 vh  (1) 2022.10.23
Webpack css url 파일 문제  (1) 2022.10.15
Code Splitting  (1) 2022.10.10