CI/CD 가 뭘까?
CI/CD 살펴보기
CI (Continuous Integration) 란 지속적인 통합이란 뜻으로 소프트웨어 공학에서 쓰인다.
- 통합 (merge)
- 빌드 (build)
- 테스트 (test)
보통 간략하게 세 단계를 거쳐 배포의 과정까지 거친다. 협업을 할 때, 많은 커밋들이 있을텐데 이를 통합하고 빌드에 테스트까지 더해지면 소스코드를 운영해 나가기엔 반복적인 작업들과 시간비용들이 많이 든다. 이 때문에 지속적 통합을 구축한다. 자주 통합하자 라는게 지속적 통합이라는 소프트웨어 개발방법이다. 물론, 자동화를 더해줘야한다.
CD (Continuous Delivery or Continuous Deploy) 란 소프트웨어 공학에서 짧은 주기로 배포하는 방법이다. 물론 이것도 자동화가 낀다. 앞서 살펴본 CI 가 성공적으로 이루어졌다면 (통합 -> 빌드 -> 테스트
) CD 는 배포(delivery or deploy)를 담당한다.
deploy 가 더 마음에 드는 단어인 듯 하다.
얻는 이점
내가 생각하는 가장 큰 이점 두 가지이다.
1. 개발에 집중할 수 있다.
개발자가 작업한 부분에 대해 통합, 빌드, 테스트 과정이 자동화 되어 생략이 가능하기 때문에 자신이 작성할 코드에 더 집중이 가능하다. 다음의 이점인 '신뢰' 부분과 연관되어 있기도 하다.
2. 신뢰
통합, 빌드, 테스트 과정이 자동화가 된다면 '누가', '언제' 작성한 코드에 문제가 있는지 파악이 가능하고 이를 찾기위한 시간비용도 줄어들게 된다. 이렇게되면 자신의 문제점도 파악할 수 있게 되고 자신을 신뢰할 수 있게되는데 서로의 신뢰는 자신의 신뢰로부터 발생된다고 본다.
CI/CD 툴중에 circleci 를 다뤄보려고한다.