기타

CI/CD란 무엇인가? 왜 써야할까?

멍토 2021. 8. 22.

CI

CI = Continuous Integration

지속적 통합이란 뜻을 가지고 있다.

새로운 코드 변경사항을 빌드 및 테스트하여 통합하는 것을 의미한다.

Java에서는 Gradle, Maven 등을 통해 CI를 진행한다.

CD

CD = Continuous Delivery & Continuous Deployment

CI가 빌드 테스트를 했다면 CD는 변경된 사항을 릴리즈 하는것이다.

 

CI/CD를 왜 사용해야 하는가?

매번 코드를 업데이트 하기 위해서 서버에 접속해서 돌아가는 서비스를 kill 하고 git에서 pull한뒤 build하고 다시 서비스를 올리기 까지 많은 과정이 필요하다. 서버가 하나라면 불편함을 느끼지 못할 수 도 있다.

또한 서버가 내려가 있는 시간이 길어진다는 문제가 발생한다.

그렇지만 만약 코드변경시 업데이트 해야하는 서버가 하나가 아니라 여러개라면? 매번 모든 서버에 들어가서 업데이트를 해야할까? 효율성을 추구하는 개발자로써 이것은 엄청난 비효율이다.

이러한 문제를 해결하기 위해 CI/CD를 이용하게 된다.

자동으로 코드를 빌드하고 테스트후 배포까지 도와준다.

 

CI/CD 툴

  • Jenkins
    • 무료이다.
    • 서버를 직접 운영해야 한다.
  • Bamboo
    • 유료이다
    • 서버를 직접 운영하지 않아도 된다.
  • GitHub Action
    • CI는 가능하다고 알고있는데 CD는 되는지 모르겠음

'기타' 카테고리의 다른 글

캐시(Cache)란 무엇인가?  (0) 2021.08.24
소프트웨어 버전정책?  (0) 2021.08.23
apt와 apt-get의 차이점  (0) 2021.08.22
Git Branch 전략이란?  (0) 2021.08.22
ubuntu에서 .env로 겪은 일  (0) 2020.09.27

댓글

💲 광고입니다.