CI / CD
각각 Continuous Integration와 Continuous Delivery / Deployment의 약자
CI는 지속적 통합, CD는 지속적 서비스 제공과 지속적 배포라는 의미
Continuous Integration

새로운 코드 변경 사항을 일정 시점마다 자동으로 빌드 및 테스트 하여 공유 레포지토리에 통합하는 것을 의미
CI가 필요한 환경
다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경
형상관리 툴을 사용하면 기능 추가시마다 commit 등을 날려 레포지토리에 버전 업데이트
다수의 개발자가 한 팀으로 작업하면 commit이 많이 쌓임 => 기능별로 빌드/테스트/병합? 번거롭다.
CI의 적용이 원천 소스코드의 충돌 등을 방어하는 이점 제공
Micro Service Architecture 환경
대부분 agile 방법론이 적용되기 때문에 기능 추가가 매우 빈번
CI의 적용이 기능 충돌 방지 등의 이점 제공
CI의 핵심 목표
- 버그를 신속하게 찾아 신속하게 해결 => 작은 단위로 빈번하게 merge 하기 때문에 문제 발생 범위가 작아 신속하게 해결 가능
- 소프트웨어의 품질 개선
- 새로운 업데이트의 검증 및 릴리즈 시간의 단축
Continuous Delivery / Deployment
지속적인 서비스 제공은 공유 레포지토리를 자동으로 release 하는 것
=> 개발자의 응용 프로그램 변경 사항이 자동으로 버그 테스트를 거치고 레포지토리에 업로드 된다는 것을 의미
=> 이후 레포지토리에서 운영 팀이 변경사항을 라이브 프로덕션 환경으로 배포 (의사소통 문제 해결)
배포는 Production 레벨까지 자동으로 배포 하는 것
CI가 새로운 소스코드의 빌드, 테스트 병합 까지를 의미하였다면, CD는 개발자의 변경사항이 레포지토리를 넘어, 고객의 프로덕션 환경까지 릴리즈 되는 것
ex
MSA와 같은 환경에서 Agile 방법론이 적용될 경우
서비스의 사용자는 최대한 빠른 시간 내에 최신 버전의 Production을 제공 받을 필요
=> 소프트웨어가 언제든지 신뢰 가능한 수준의 버전을 유지할 수 있도록 support 하는 것이 CD
CI / CD가 왜 중요해?
버그 및 코드 오류를 예방하는 동시에 지속적인 소프트웨어 개발 및 업데이트 주기를 유지하는데 도움
CI / CD의 기능을 활용해 복잡성은 줄이고 효율성을 높이며 워크 플로우 간소화 가능
CI / CD 파이프라인

이미지 처럼 연결된 사례를 일반적으로 CI/CD 파이프라인이라고 명칭
Micro Service Architecture 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태
Agile 방법론 소규모 기능 단위로 빠르게 개발, 적용을 반복하는 개발 방법론
'FE Study' 카테고리의 다른 글
| DNS (0) | 2024.06.20 |
|---|---|
| http / https (0) | 2024.06.19 |
| Github Action (0) | 2024.06.02 |
| Docker (0) | 2024.06.02 |
| OAuth 2.0 (0) | 2024.05.12 |