반응형
안녕하세요 코드짜는헬창입니다.
오늘은 개발을 하다보면 Jenkins를 사용하면서 CI/CD 라는 용어를 들어보신적이 있으시죠!
저도 CI/CD의 정확한 의미를 모르기에 알아가면서 포스팅 해보록 하겠습니다!
# CI (Continuous Integration) 이란 무엇인가?
개발자를 위한 자동화 프로세스인 지속적인 통합을 의미하며
코드를 Push 했을때 빌드 및 테스트를 자동화 해줍니다!
지속적 통합을 안하면? ? ! 어떤 다른 블로거분에 적절한 예를 들어주셔서 참고해보겠습니다.
10명의 개발자가 참여하는 프로젝트가 있다고 가정해보자.
git에 기본 틀이 잡혀있는 코드가 올라와있고, 각 개발자가 자신의 로컬환경에 clone 받아서 작업을 시작한다.
그런데 개발이 끝날때까지 모든 개발자가 한 번도 중앙저장소에 코드를 올리지 않았고,
개발이 끝난 이후에 10명의 개발자의 코드를 한 번에 통합해야하는 상황이라면?
상상만해도 끔찍하니 더 말하진 않겠다.
그렇습니다.. 지속적 통합은 필요한듯 보입니다.
이렇게 지속적 통합을 위해선 퇴근 전 코드 Commit , 출근 후 Update 등 하시면
소스 통합이 많이 순조롭게 될 듯 합니다..
#
지속적 배포로써 소프트웨어가 항상 배포될 수 있도록 관리되는 개념입니다.
CI 가 선행되어야 CD가 되는겁니다!
CI 프로세스가 개발중 지속적으로 코드 통합과 빌드를 진행하고
CD가 그 수정된 내용을 배포 함으로 또한 자연스럽게 빌드, 배포가 지속적으로 이루어집니다.
# CI / CD Tool!
대표적으로 Jenkins, TravisCI 등이 있습니다!
이만 CI / CD에 대하여 포스팅을 마치도록 하겠습니다.
감사합니다.
반응형
'이론' 카테고리의 다른 글
[BlockChain] IPFS (파일 분산 시스템) (0) | 2022.10.14 |
---|---|
[BlockChain] BIP-32 / BIP-39 / BIP-44 는 무엇인가 ? (0) | 2022.10.12 |
DevOps 란 무엇일까? (0) | 2020.07.28 |
Load Blancer란 무엇일까??? (0) | 2020.07.27 |
ORM과 JPA / Hibernate 란 무엇일까 (0) | 2020.07.23 |