💡 CI/CD란 ?
CI (Continuous Integration)
- 빌드/테스트 자동화 과정
- 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미
- 지속적으로 코드에 대한 통합을 진행하면서 품질 유지
- 개발자간의 코드 충돌 방지하기 위한 목적
- 정기적인 빌드 및 테스트를 거쳐 공유 레포지토리에 병합되는 과정
- 여러 명이 하나의 코드에 대해 수정을 진행
CD (Continuous Delivery/Deploy)
- 배포 자동화 과정
- 지속적인 서비스 제공 or 지속적인 배포를 의미
- 지속적인 서비스 제공 (Continuous Delivery)
- CI를 통해 빌드/테스트 병합까지 성공적으로 진행됐다면, 이를 통과한 코드에 대해 테스트서버와 운영서버에 자동으로 릴리즈
- 운영팀이 보다 빠르고 손쉽게 애플리케이션을 Production으로 배포 가능
- Production 환경으로 배포할 준비가 되어 있는 코드베이스를 확보하는 것이 목표
- 지속적인 배포 (Continuous Deploy)
- Production 준비가 완료된 빌드를 Source Repository에 자동으로 릴리즈하는 지속적 서비스 제공의 확장된 형태
- 애플리케이션을 하나의 Production으로 릴리즈하는 작업을 자동화
코드를 코드 저장소에 push
로컬 환경에서 프로젝트 build
추출물을 테스트 서버로 전송
배포 스크립트를 통해 배포
테스트 진행
테스트 완료 후 코드 저장소 release 브랜치에 push
versioning 후 로컬 환경에서 프로젝트 build
추출물을 본 서버로 전송
배포 스크립트를 통해 배포
이 외에도 젠킨스는 1000여가지가 넘는 플러그인을 온라인으로 간단히 설치할 수 있는 기능을 제공하고 있고, 스크립트를 이용해 쉽게 자신에게 필요한 기능 추가 가능 !

📍 참고자료