본문 바로가기

기타

CI/CD의 개념

CI ( Continuous Integration) 

CI를 말로 표현해보면 "지속적인 통합" 이라는 뜻을 가지고 있다.

지속적인 통합이란 어플리케이션 또는 서비스의 코드 및 설정에 새로운 변경사항이 정기적으로 빌드 및 테스트하고 공유 레포지토리에 통합된다는것을 의미한다.

 

CI를 사용해야하는 환경은 다음과 같다.

  1. 여러 개발자가 함께 형상관리 툴을 사용하는 통합 개발 환경일 경우

    서비스가 업데이트 될때마다 git, svn에 업데이트된 코드를 commit하여 레포지토리에 반영해야한다. 
    많은 Commit들을 빌드/테스트/병합하기 어렵기 때문에 이런경우 CI를 사용한다.
  2. MSA환경

    MSA는 Micro Service Architecture의 준말로 기존 모든기능을 포함하여 하나의 서비스로 가지고 있는 Monolithics와 반대되는 개념이다.  기능별로 서비스를 쪼개어 개발하기 때문에 추가/삭제 등 업데이트 주기가 짧다.

 

 

CD(Continuous Delivery / Deploy)

CD의 뜻은 "지속적인 서비스 제공 또는 서비스 배포" 를 의미한다.

이 말은 즉 코드의 변경사항을 개발/통합/배포/테스트/릴리즈 등을 Producution 환경까지 자동으로 해주는것을 의미한다.

 

 

즉, CI/CD란

여러 개발자가 개발한 소스코드를 빌드/테스트/병합하여 레포지토리에 반영 후 해당 내용을 Production환경에 자동으로 릴리즈 되게끔 만드는 것이다.

 

 

 

이러한 CI/CD를 주로 다루는 엔지니어를 DevOps 엔지니어라고 한다.

 

CI/CD를 이용한 Tool은 Jenkins, Travis CI, Circle CI 등이 있다.

 

 

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

MVC패턴이란???  (0) 2021.09.10
HTTP 응답 상태 코드(Status Code) 정리  (0) 2021.08.30
REST API란  (0) 2021.08.30