-
CI (Continuous integration)
- 지속적인 통합을 의미
- 직속적인 통합은 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어서 공유 레포지토리에 통합하는 것을 의미한다.
CI가 필요한 환경에서의 조건
다수의 개발자가 형성관리 툴을 공유하여 사용하는 환경
- 자동화된 빌드와 테스트는 원천 소스코드의 충돌 등을 방어
MSA(Micro Service Archietecture) 환경
- 최근에 떠오르고 있는 아키텍쳐 모델
- MSA는 작은 기능별로 서비스를 짧게 나누어 개발하는 형태를 의미
- MSA환경에서는 대부분 소규모 기능 단위로 빠르게 개발하는 것과 적용을 반복하는 개발방법론이 적용되기 때문에 기능 추가가 빈번하게 발생하게 된다. 이러한 상황에서 CI의 적용은 기능 충돌 방지 등을 제공한다.
CI의 핵심 목표
- 버그를 신속하게 찾아 해결
- 소프트웨어의 품질을 개선
- 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것
CD (Continuous Delivery & Continuous Deploymnet)
- 지속적인 서비스 제공 및 지속적인 배포
- Continuous Delivery는 공유 레포지토리로 자동으로 릴리즈하는 것
- Continuous Deployment는 Production 레벨까지 자동으로 Deploy하는 것
- CI가 새로운 소스코드의 빌드, 테스트, 병합을 의미한다면, CD는 개발자의 변경 사항이 레포지토리를 넘어서, 고객의 Production 환경까지 릴리즈 된는 것을 의미
'Back-End' 카테고리의 다른 글
TDD (Test-Driven Development) - 테스트 주도 개발 (0) 2022.02.23 OSI 7계층 (0) 2022.02.23 SQL Select Query 문법 처리 순서 (0) 2022.02.22 MongoDB 장점 (0) 2022.02.17 REST API (0) 2022.02.15