본문 바로가기
까망 동네/IT 용어

🧑‍💻 CI / CD 란 무엇일까?

by 까망 하르방 2022. 4. 11.
반응형

CI / CD 란?

CI/CD

 

Continuous Integration (지속적 통합)

• Continuous Delivery (지속적 제공)

• Continuous Deployment (지속적 배포)

 

 

규모 있는 SW 개발은 단순 기능 개발에 그치지 않고

클린코드 명목하에 리팩토링 과정을 거친다.

📌 SW 개발자에게 유지보수란?

 

SW 개발자에게 유지보수란?

SW 개발 주기에 대해 작성한적이 있습니다. 요구사항 분석(Analysis) → 설계(design) → 구현(Implementation) → 테스트(Testing) → 유지보수 ▶ 애자일과 워터폴 : 요구사항 분석 → 설계 → 구현 →.

zoosso.tistory.com

 

결국, 소스 코드를 어떻게 관리하고 배포할지 전략을 갖추는 것이다.

요즘은 「DevOps라는 단어로도 많이 표현된다.

 

 


CI (Continuous Integration, 지속적 통합)

빌드 및 통합 테스트 자동화

 

대규모 프로젝트 일수록 Sub System 단위로 개발되어

전체 코드로 통합되기 마련이다.

 

이때, Unit Test 부터 통합 테스트까지 Build 되는지 확인해야 한다.

개발자가 직접 모든 단위의 Build Test 할 수는 없다.

그렇게 되면 퇴근시간은 보장할 수 없다.

 

그렇기에 형상 관리 시스템에 반영했을 때, 

자동으로 빌드 테스트 되어 결과 보고(Report) 되어야 한다.

이는 개발자가 빠트린 부분도 자동으로 확인해주는 효과가 있다.

검증 커버리지를 높여서 신뢰 가능한 수준으로 지속하는 것이다.

 

 

 

CD (Continuous Delivery/Deployment, 지속적 제공/배포)

서비스 배포 자동화 및 모니터링

 

SW 제품을 신뢰 가능한 상태로 지속적 배포해야 한다.

CI 과정이 끝난 소스 코드를 배포 서버까지 반영되어야 한다.

이 경우에도 프로젝트 규모에 따라

통합 테스트를 위한 Master 서버와 서비스 배포를 위한 Release 서버를 두기도 한다.

 

 

CI / CD 도구

• Jenkins

• Travice CI

• Bamboo 

• Circle CI 

• TeamCity

 

 


요약

CI/CD 의미를 되새겨보면

각 단계별로 구분해보면 아래와 같이 해석할 수도 있다.

* Sub System Branch  Master → Release

 

소규모 단위로는 개발자가 자체적으로 운영하기도 하지만

규모가 커질수록 체계적인 관리가 필요하기에

DevOps 전담조직이 생기기도 한다.

 

결국 소스 버전을 어떻게 관리하고,

서비스 운영을 보다 효율적으로 관리할 수 있을지 전략을 짜는 것이다.

잘 갖춰진 시스템이 있다면 

개발자가 직접 서버에 들어가 실행할 수고가 최소화된다.

반응형

'까망 동네 > IT 용어' 카테고리의 다른 글

빅엔디안 & 리틀엔디안  (3) 2024.01.05
👨‍💻 Shmoo Plot 이란?  (0) 2022.07.30
컴파일 / 링크 / 빌드가 무엇일까?  (0) 2021.12.04
SW 개발자에게 유지보수란?  (0) 2021.11.20
미들웨어(MiddleWare)란?  (0) 2021.09.18

댓글