티스토리 뷰
반응형
1. CI/CD는 무엇일까?
1) CI, CD란?
CI/CD는 코드 병합, 테스트, 배포를 자동화하는 걸 이야기합니다.
- CI(Continuous Integration)는 지속적 통합을 의미
- CD는 지속적인 서비스 제공(Continuous Delivery), 배포(Continuous Deployment)를 의미
- CI, CD는 각각 개념이 다르지만, 같이 구축되는 경우가 많아 CI/CD라고 묶임
(1) CI?
- CI는 지속적 통합을 뜻하며, 일련의 통합 과정을 자동화하는 걸 의미
- 그런데 CI는 어떤 경우 사용할까요?
A팀에 개발자가 5명 존재한다.
이 팀은 각각, 코드 작업을 완료하여 github에 push한다.
그리고 모인 코드는 병합을 거치게 된다.
그런데 병합 과정에서 동일한 코드를 수정한 경우 충돌이 발생하게 된다.
발생한 충돌을 해결하기 위해 수동으로 작업을 진행한다.
그 다음 배포를 해야하는데,
배포 하기에 앞서 코드에 문제가 없는 지 테스트를 진행한다.
그런데 코드에 치명적인 버그가 발생한다.
이 버그를 해결하기 위해 이 코드와 관련된 팀원이 일을 진행한다.
이처럼 A팀은 코드 푸시 -> 병합 -> 충돌 발생시 해결 -> 기능 테스트 작업을 매번 거친다.
- A팀은 앞서 언급한 일련의 과정을 매번 수동으로 진행
- 소규모 팀의 경우, 이 과정을 반복하는 게 어렵지 않겠지만, 팀이 성장함에 따라 과정의 규모는 커짐
- 규모가 커질수록 투자하는 시간이 증가하게 되고, 이는 배포에 영향을 줌
- 하지만 CI를 이용한다면 이 과정을 자동화시켜 시간을 절약
(2) CD?
- CD는 지속적 서비스 제공 & 배포 두가지를 의미하는데, 이 둘의 차이는 배포를 자동으로 하는지 여부
- 배포란 사용자에게 소프트웨어를 전달하는 걸 뜻하며, 지속적 배포는 작업이 마칠 때마다 자동으로 배포
- CD를 진행하기에 앞서, 코드를 병합하고 테스트하는 CI가 우선
- CI/CD는 개발 ~ 배포에 이르는 모든 단계를 자동화하는 걸 의미하며, 이러한 일련의 과정을 CI/CD 파이프라인이라고 함
그렇다면 이러한 CI/CD의 장점은 무엇이 있을까요?
(3) CI/CD의 장점
- 코드에서 발생하는 버그 발견, 코드 테스트가 자동화되므로 배포 간격이 짧아짐
- 각 개인이 코드를 병합할 때마다 자동으로 테스트를 거치므로, 버그 발생 가능성이 낮아짐
- 코드 배포 및 체크가 자동화되므로, 최종 코드 확인에 필요한 시간이 단축됨
- 매 작업마다 테스트가 진행되므로 버그를 초기에 발견할 수 있으며 이는 버그의 빠른 해결에 도움이 됨
CI/CD가 무엇인지 알아보았으니 CI/CD의 대표적인 툴인 github actions를 다음 글에서 작성해보도록 하겠습니다.
반응형
'Git' 카테고리의 다른 글
[Jekyll] 나만의 위키만들기 (2) | 2022.12.20 |
---|---|
[Git] 편리한 git alias 사용하기 (0) | 2022.09.24 |
[Git] Github actions 맛보기 (0) | 2021.12.01 |
[Git] Bitbucket 이용하여 private git project 생성 및 VS Code 연동 (8) | 2021.11.20 |
[Git] Sourcetree Fatal: could not read username for 에러 해결법 (0) | 2021.11.08 |
[Jekyll] Jekyll을 Git에 올려보자 (0) | 2021.04.20 |
댓글
공지사항