CI ( Continuous Integration)
CI를 말로 표현해보면 "지속적인 통합" 이라는 뜻을 가지고 있다.
지속적인 통합이란 어플리케이션 또는 서비스의 코드 및 설정에 새로운 변경사항이 정기적으로 빌드 및 테스트하고 공유 레포지토리에 통합된다는것을 의미한다.
CI를 사용해야하는 환경은 다음과 같다.
- 여러 개발자가 함께 형상관리 툴을 사용하는 통합 개발 환경일 경우
서비스가 업데이트 될때마다 git, svn에 업데이트된 코드를 commit하여 레포지토리에 반영해야한다.
많은 Commit들을 빌드/테스트/병합하기 어렵기 때문에 이런경우 CI를 사용한다. - 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 |