본문 바로가기

CI

지속적인 통합 (CI : Continuous Integration )

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