CI/CD가 뭔가요?

문과능력자, 예능능력자 위한 개발 쉽게 이해하기 시리즈

개발자 용어로 CI/CD 라는 것이 있습니다.

“씨아이 씨디”라고 발음합니다. 콤팩트디스크 아닙니다.

CI/CD는 Continuous Integration / Cotinuous Deployment의 약어입니다.

CI = Continuous Integration 는 지속적 통합

CD = Continuous Deployment 는 지속적 배포

입니다.

용어가 어려워 보이지만 알고보면 별거 아닙니다.

소스코드를 소프트웨어가 실행되도록 구현체를 반드는 것을 빌드라고 합니다. 빌드를 소스코드를 고칠때마다 계속해서 실행해서 언제라도 소프트웨어를 배포할 수 있게 준비하는 것을 CI라고 부릅니다. 소스코드를 고쳐서 저장소에 업데이트할 때마다 자동으로 소프트웨어가 빌드됩니다.

그리고 자동으로 빌드된 소프트웨어가 자동 또는 반자동으로 서비스에 배포되는 것을 CD라고 합니다.

CI의 과정은 이렇습니다.

소스코드 고침 -> 빌드 됨 -> 자동으로 테스트 해줌 -> 빌드에서 오류가 발생하면 경고 메세지가 나타남 -> 다시 빨리 고침

CI를 하는 이유

  • 소스들 고치고 나서 빌드가 잘되는지 개발자가 확인하고 안되면 다시 수정하는 테스트 시간을 줄이기 위해서입니다.
  • 여러 사람이 소스코드를 동시에 편집하거나 같이 작업하기 때문에 각자 맡은 부분에서 자기가 고친 부분은 자기가 책임을 질 수 있게 하기 위한 것입니다.
  • 빈번하게 소스코드를 고치고 기능추가, 버그수정을 짧게 짧게 끊어서 하는 것이 더 효율적이고 관리도 편해서 그렇게 하기 위해서 입니다.

CD의 과정

가상 환경 준비 -> 빌드된 소프트웨어가 잘 작동하는지 테스트 -> 오류이면 경고 -> 패쓰 후에 자동으로 서비스에 적용 또는 제품소프트웨어 배포

CD를 하는 이유

서비스 업체(구글이나 네이버, 페이스북 같은데들)은 소프트웨어를 빌드한 후에 잘 작동하는지 실험하는 것도 큰 일이고 부담이 됩니다. 이것을 자동화해서 소프트웨어가 빌드될때마다 잘 작동하는지 지속적으로 테스트하고 테스트가 완료되면 자동으로 배포해서 최신으로 유지합니다.

다 개발자들 편하고 장애(에러)가 생기는 것을 줄이기 위한 것입니다.

DevOps

이런 일을 해주는 시스템을 만들고, 구축하고, 관리하는 사람을 요즘은 DevOps “데브옵스”라고 부릅니다.

Development Operations의 약어입니다. 즉 개발환경을 운영하는 사람을 말합니다.

그래서 DevOps는?

  • 소프트웨어 엔지니어입니다.
  • 개발도 조금 하지만 제품(판매하는 소프트웨어나 서비스소프트웨어)를 개발하지는 않습니다.
  • 개발환경을 구축하는데 필요한 개발만 합니다.
  • 하드웨어는 관리하지 않습니다.

참고자료

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

Author: euriion

답글 남기기