CI/CD
CI/CD는 DecOps에 속하며 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법
CI
지속적 통합
규칙
-
모든 소스코드가 실행되고있고, 모든 사용자가 소스코드에 접근할 수 있는 단일 지점을 유지할 것
-
모든 사용자가 단일 명령을 사용하여 빌드할 수 있도록 빌드 프로세스를 자동화할 것
-
단일 명령으로 언제든지 테스트 실행할 수 있도록한다.
-
다른 사용자가 현재 실행 파일을 얻었을때 지금까지 중 가장 완전한 실행 파일을 얻었다는 확신을 하게 할 것
CD
지속적 배포
CI와 같이 사용하며 CI과정에서 빌드와 테스트가 완료된 코드를 사용자에게 지속적으로 배포하는 과정
CI/CD 장점
1. 개발 속도 향상
- CI/CD를 통해 모든 개발 단계가 빨라짐
- 프로세스 전반에 걸쳐 반복 속도가 빨라져 모든 팀의 효율성이 향상됨
2. 더많은 배포
3. 빠른 테스트
- 자동화된 테스트를 통해 피드백을 더 빨리 받음으로써 개발 중간 단계나, 최악의 경우 최종 릴리즈에서 버그를 찾는 불상사를 줄이고 빠르게 문제를 잡을 수 있다.
4. 버그 감소
- 개발 전반에 걸쳐 자동화된 테스트를 통해 버그가 발생할ㄹ 때마다 버그를 잡아서 MERGE하지않고 롤백한다.
5. 개발자들의 편의성
- 많은 시간을 테스트와 코드 디버깅등에 할애하는데 빌드, 테스트, 배포와 같은 과정을 자동화함으로써 개발자는 좀더 핵심적이고 중요한일에 시간을 할애 가능하다.
CI/CD 툴
- 젠킨스
- 오늘날 시장에서 가장 널리 사용되는 CI/CD 도구 중 하나
- 여러 계열 운영체제용 패키지가 포함된 독립형 JAVA 기반 프로그램
- 다양한 플로그인을 설치할 수 있어 확장에 용이
- TeamCity
- JetBrains에서 개발한 CI/CD툴
- 자바기반
- GitAction
- GitHub에서 제공되는 CI/CD
- GitHub에서 코드를 관리하고 있는 소프트웨어 프로젝트에서 사용할 수 있으며 개인은 무료로 사용 가능
참고
https://about.gitlab.com/topics/ci-cd/