아 이게 뭐임!

CI/CD가 뭐임!

마로가마따 2021. 7. 14. 08:05

Contents

-       CI/CD가 뭐임!

-       CI/CD 왜 씀?

 

 

CI/CD가 뭐임!

CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. 또한 CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 솔루션입니다.

 

CI/CD"CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미합니다. “CI”를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다.

 

CI/CD"CD"는 지속적인 서비스 제공 또는 지속적인 배포를 의미하며 이 두 용어는 상호 교환적으로 사용됩니다.

지속적인 제공이란 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드 되는 것을 뜻하며, 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있습니다. 이는 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 해결해 줍니다. 지속적인 제공은 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 합니다.

지속적인 배포란 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미합니다. 이는 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결합니다. 지속적인 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적인 제공이 가진 장점을 활용합니다.

 

 

결론적으로 CI/CD 애플리케이션 개발에 지속적인 자동화 지속적인 모니터링을 추가하는 의미합니다.

 

 

CI/CD이 왜 씀?

병합하는 날(merge day)을 정해 모든 분기 소스 코드를 병합하는 경우, 결과적으로 반복적인 수작업에 많은 시간을 소모하게 됩니다. 이렇게 반복적인 수작업을 하는 이유는 독립적으로 작업하는 개발자가 애플리케이션에 변경 사항을 적용할 때 다른 개발자가 동시에 적용하는 변경 사항과 충돌할 가능성이 있기 때문입니다.

 

코드 변경 사항 병합부터 프로덕션에 적합한 빌드 제공에 이르는 모든 단계에는 테스트 자동화와 코드 릴리스 자동화가 포함됩니다. 이 프로세스를 완료하면 운영팀이 보다 빠르고 손쉽게 애플리케이션을 신뢰 가능한 수준의 프로덕션으로 배포할 수 있게 됩니다.

 

 

CI/CD…

공부하다 보니 이거 안쓰는게 이상하다는 생각이 들었다. 좀 더 검색해보니 CircleCI, Travis, Jenkins Hudson Bamboo BITRISE 이런 도구들이 있었다.  Jenkins를 많은 개발자들이 쓰는 것으로 생각이 되지만 남들이 쓴다고 막 가져다 쓰면 안되는법! 다음엔 찾은 도구들의 장점, 단점을 찾아보고 비교정리를 해봐야겠다.

 

 

 

 

반응형

'아 이게 뭐임!' 카테고리의 다른 글

Globals Are Evil이 뭐임!!  (0) 2021.07.16
Gradle이 뭐임!  (0) 2021.07.15
Lombok이 뭐임!  (0) 2021.07.13
Log4j가 뭐임!  (0) 2021.07.12
Junit이 뭐임!  (0) 2021.07.11