CI/CD (Continuous Integration / Continuous Delivery or Deployment)란?
1. 지속적으로 퀄리티 컨트롤(품질 관리)을 적용하는 프로세스를 실행하는 것
2. 모든 개발을 완료한 뒤에 컬리티 컨트롤을 적용하는 고전적인 방법에 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데
걸리는 시간을 줄이는데 초점
3. 초기에 그리고 자주 통합해서 통합 시 발생하는 여러가지 문제점을 조기에 발견하고, 피드백사이클을 짧게 하여 소프트웨어 개발의 품질과
생산성을 향상시키는 것.
CI 적용 시 고려할 점
1. 모든 소스 코드가 살아있고(현재 실행되고) 어느 누구든 현재의 소스를 접근할 수 있는 단일 지점을 유지할 것
2. 빌드 프로세스를 자동화시켜서 어느 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것
3. 테스팅을 자동화시켜서 단일 명령어를 통해서 언제든지 시스템에 대한 건전한 테스트 수트를 실핼할 수 있게 할 것
4. 누구나 현재 실행 파일을 얻으면 지금까지 최고의 실행파일을 얻었다는 확신을 하게 만들 것
CI 시스템 구축을 위한 핵심 구성요소
1. CI Server : 빌드 프로세스를 관리하는 서버
ex) Jenkins etc..
2. SCM(Source Code Management) : 소스코드 형상 관리 시스템
ex) Git, SVN etc..
3. Build Tool : 컴파일, 테스트, 정적 분석 등으로 동작 가능한 소프트웨어를 생성하는 도구
ex)Maven, Gradle, Ant etc..
4. Test Tool : 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구
ex) JUnit etc..
'Jenkins' 카테고리의 다른 글
[Jenkins] 자동배포 설정 (0) | 2018.07.21 |
---|---|
[Jenkins] Github 연동 (0) | 2018.07.21 |
[Jenkins] SVN 연동 (0) | 2018.07.21 |
[Jenkins] Maven 설정 (0) | 2018.07.21 |
[Linux] Jenkins 설치 (0) | 2018.02.10 |