CI
- 지속적으로 퀄리티 컨트롤(품질 관리)을 적용하는 프로세스를 실행하는것
- 모든 개발완료 후 퀄리티 컨트롤을 적용하는 방법 -> 소프트웨어 질적향상, 소프트웨어 배포시간 단축
- 문제점 조기발견 및 피드백사이클을 짧게 하여 품질과 생상성을 향상
1. CI server
- 빌드프로세스를 관리하는 서버
- Jenkins, Hudson, CruiseControl.NET, TeamCity
2. SCM(Source Code Management)
- 소스형상관리 시스템
- 여러사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 자동으로 동기화 할수 있는 시스템
- Subversion, Git, Mercurial
3. Build Tool
- 컴파일, 테스트, 정적분석 등을 실시해 동작 가능한 소프트웨어를 생성
- Ant, Maven, MSBuild, Make
4. Test Tool
- 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구로, 빌드 툴의 스크립트에서 실행
- JUnit, CppUnit, CppTest, MSTest, Selenium
5. Test Coverage Tool
-테스트 코드가 대상 소스 코드에 대해 어느정도 커버하는지 분석하는 도구
- Emma, Covertura, TestCocoon
6. Inspection Tool
- 프로그램을 실행하지 않고, 소스코드 자체로 품질을 판단할 수 있는 정적분석 도구
-코딩 표준 준수 검사, 코드 메트릭 측정, 중복코드 검사, 코드 인스펙션 검사 등이 있음
-CheckStyle, FindBugs, Cppcheck, Valgrind
= 빌드 스크립트를 통한 ci 자동화 수행절차 =
1. 소스코드를 바이너리 파일로 컴파일
2. 바이너리 파일을 배포 형태로 패키징
3. 단위테스트 수행
4. 정적분석 수정
5. 분석 결과 리포팅
6. 패키징한 파일을 테스트서버에 배포
'CI' 카테고리의 다른 글
MLOps란 머신러닝 (1) | 2023.11.24 |
---|