78 | 출제예상 | CI, CD | [CI의 정의] - 개발자 별로 소스코드를 지속적/연속적 통합하여 자동화된 빌드, 테스트 및 배포 기능을 통하여 단기간에 고품질의 SW를 획득하는 기술 (형상관리 필수적용) [CD의 정의] 변경된 요구사항에 대한 개발/통합/배포/테스트/릴리즈를 자동화함으로써 SW의 개발과 운영을 통합하여 DevOps를 지원하는 소프트웨어 연속적인 배포 출시 전략 |
CI, 자동화, 통합, 빌드, 배포, Jenkins 연속적 소스 머지, 연속 배포 CI : 소스파일을 실행파일(바이너리파일)로 컴파일, 테스트, 테스트서버에 배포까지 프로 세스(Build Tool) |
토픽 이름 | CI (Continuous Integration), CD (Continuous Delivery) |
분류 | PM > Agile > CI, CD |
키워드(암기) | 소스파일의 연속적인 통합(CI) 및 연속적 배포(CD) CI : 소스코드의 통합/테스트/배포 자동화를 통한 고품질 SW 획득 CD : S/W 개발 및 운영 통합을 통한 DevOps를 지원하는 연속적인 배포 |
암기법(해당경우) |
기출문제
번호 | 문제 | 회차 |
1 | 12. CI(Continuous Integration)에 대해 설명하시오. | 합숙_2019.04.관리.Day-5 |
2 | 4. CI(Continuous Integration)와 CD(Continuous Delivery)를 설명하고, 이를 통한 SW 생산성 향상방안에 대해 제시하시오. | 합숙_2018.08.공통.Day-5 |
3 | 1. 클라우드 환경 확산 따라 DevOps의 중요성이 증가하고 있다. DevOps 의 구성요소에 대해서 설명하고, CD(Continuous Delivery)의 개념과 절차에 대해서 설명하시오. | 모의_2017.04.관리.4 |
4 | 다양한 요구 변화에 대한 품질을 확보하며 안정적인 시스템 운영을 위해 스타트업 기업 위주로 DevOps 사상을 도입하는 경우가 증가하고 있다. DevOps 의 부각 배경과 CI(Continuous Integration) 도구, 그리고 DevOps 적용 시 고려사항에 대해서 설명하시오. | 모의_2016.04.관리.4 |
5 | 1. CI(Continuous Integration), CD(Continuous Delivery)에 대해 설명하시오. | 합숙_2014.07.공통.Day-3 |
I. SW의 품질개선과 위험 완화를 위한 Agile Practice, CI (Continuous Integration)) 개요
가. CI의 정의
- 개발자 별로 소스코드를 지속적/연속적 통합하여 자동화된 빌드, 테스트 및 배포 기능을 통하여 단기간에
고품질의 SW를 획득하는 기술 (형상관리 필수적용)
나. CI 목적/필요성
필요성 | 내용 |
에러의 조기 발견 | - 에러를 초기에 발견할 수 있어, 흔히 발생하는 일반적인 위험을 줄여줌 - 자주 통합할수록 에러가 발생하는 반경(소스Gap)이 좁아짐 |
배포 용이성 확보 | - 언제 어느 때라도 배포할 수 있는 소프트웨어를 생성 |
가시적 관리 및 자동화 | - 프로젝트 가시성 향상, 반복적인 수작업 최소화 |
II. CI 개념도 및 기술요소
가. CI 개념도

나. CI 기술요소
구성요소 | 설명 | CI 도구 |
버전관리 저장소 | 모든 프로젝트 파일의 중앙 저장소가 있어 팀원들의 작업을 전부 동기화 공간을 제공 | - CVS - Subversion - GIT |
지속적인 통합서버(CI시스템) | 컴파일, 테스트, 릴리즈, 디플로이, 결과보고등의 작업을 통합적 자동화 SW | - Hudson - Jenkins |
빌드스크립트 | 자동화된 절차를 위한 셀 스크립트(또는 배치파일)를 작성(소트 코드 컴파일, 테스트 수행 등) | - 스크립트 - 배치파일 |
Project Management Tool | 빌드 결과를 모니터링하거나 자동적으로 피드백을 받을 수 있는 관리도구 | - 이메일, UC - 문자메시지 |
자동화된 테스트 | 결과를 스스로 확인하는 자동화된 테스트 | - SonarQube |
III. CI의 위험요소와 프렉티스를 성공적 수행하기 위한 자동화 프로세스 Tools
소프트웨어 위험요소 | CI 자동화 프로세스 | CI 자동화 Tools |
배포 가능한 SW 부재 빌드 실패 DB 동기화 실패 배포 실패 |
소스 컴파일 자동화 DB Script 테스트 릴리즈 자동화 |
Ant, Maven |
뒤늦은 결함 발견 회귀테스트 부재 테스트 적용범위 부재 |
테스트 자동화 | JUnit, TestNG, Selenium |
프로젝트 가시성 부재 | 통합 결과 피드백 | Hudson, CruiseControl |
저품질 SW 코딩표준, 설계지침 위반 중복/복잡한 코드 |
코딩 표준, 설계 지침, 중복코드, 코드복잡도 검사 자동화 | Checkstyle, PMD, JDepent, Findbugs |
[CD(Continuous Delivery)]
I. SW 개발/운영 통합관리, DevOps를 위한 CD(Continuous Delivery)의 개요

- 변경된 요구사항에 대한 개발/통합/배포/테스트/릴리즈를 자동화함으로써 SW의 개발과 운영을 통합하여 DevOps를 지원하는 소프트웨어 연속적인 배포 출시 전략
II. CI와 CD 관계도

- Commit 한 코드를 CI를 수행하고 CD를 수행하여 지속적인 Deploy를 수행
[추가_2018.08.합숙풀이]






- 발전된 오픈소스를 통해 CI/CD를 넘어서 DevOps 환경 구성가능
반응형