🔎 CI (Continuous Integration, 지속적 통합)
- 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스
- 어플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드/테스트 되어 공유 레포지토리에 통합되므로, 여러 명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업할 경우 서로 충돌하는 문제 해결
- 소스/버전 관리 시스템에 대한 변경 사항을 정기적으로 커밋하여 모든 팀원에게 동일 작업 기반을 제공
- 커밋할 때마다 빌드와 일련의 자동 데스트가 이루어져 동작을 확인. 변경으로 인해 문제가 발생하는 부분이 없도록 보장
🔎 CD (Continuous Delivery/Deploy, 지속적 전달/배포)
- CI의 빌드/테스트를 통해서 정상적으로 수행됨을 확인 후, 배포를 수동 or 자동하느냐에 따라 차이
Continuous Delivery
지속적 전달: 프로덕션 배포를 위한 상태가 되고 배포 자체는 수동으로 실행
→ 개발팀과 비즈니스팀 간의 커뮤니케이션 부족 문제 해결
Continuous Deploy
지속적 배포: 프로덕션까지 자동으로 배포
→ 어플리케이션의 제공 속도 증가
🔎 CI/CD 서비스
- Jenkins, Travis CI, Circle CI 등
- CI/CD 서비스 다이어그램
References:
https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/ci-cd.md
https://seosh817.tistory.com/104