지속적 통합으로 소프트웨어를 개발하고 통합하기
지속적 통합(CI)은 코드 변경 사항을 공유 중앙 리포지토리에 자주 포함하는 개발 방식입니다. CI는 코드 빌드, 테스트, 패키징과 같은 활동을 자동화하고 표준화하여 팀 처리량과 소프트웨어 품질을 향상합니다. 예를 들어, 개발자가 코드 변경 사항을 중앙 리포지토리로 푸시할 때마다 지속적 통합 플랫폼은 변경 사항이 중앙 리포지토리의 대상 브랜치에서 충돌을 일으키지 않는다는 점을 확인하기 위해 테스트 스위트를 자동으로 실행할 수 있습니다.
지속적 통합은 다음과 같은 이점이 있습니다.
소프트웨어의 문제를 찾고 문제 발생 즉시 수정
코드 디버깅에 필요한 리소스는 줄이면서 더 많은 기능을 추가
변경 사항을 지속적으로 통합하여 통합 및 배포 오버헤드 최소화
소프트웨어 상태와 최근 변경 사항에 대해 명확히 전달
지속적 통합 워크플로
일반적인 지속적 통합 워크플로는 다음과 같이 세 단계로 구성되며, 각 단계에서 여러 단계를 수행합니다.
1단계: 로컬 리포지토리에서 기능 개발 및 가설 검정하기
기능을 개발하고 변경 사항을 로컬 리포지토리에 커밋합니다.
중앙 리포지토리를 복제하고 새 기능 브랜치를 만듭니다.
기존 파일을 변경하거나 필요에 따라 새 파일을 추가합니다.
MATLAB® 및 Simulink® 테스트를 실행하여 변경 사항을 가설 검정하고 로컬 리포지토리에 커밋합니다.
2단계: 지속적 통합 플랫폼에서 자동화된 파이프라인 실행하기
변경 사항을 중앙 리포지토리로 푸시하거나 풀 리퀘스트를 생성할 때 작업(테스트 포함)의 자동화된 파이프라인을 실행합니다.
커밋된 변경 사항을 중앙 리포지토리로 푸시하거나 기능 브랜치를 메인 브랜치에 병합하는 풀 리퀘스트를 만듭니다(이 단계는 CI 플랫폼에서 MEX 파일 컴파일, MATLAB 및 Simulink 테스트 실행, 툴박스 패키징 같은 작업의 자동화된 파이프라인을 트리거함).
CI 플랫폼은 자동화된 파이프라인을 실행하고 프로젝트 구성에 지정된 대로 아티팩트를 생성합니다.
3단계: 실패 조사 및 해결하기
변경 사항을 제대로 푸시하지 못했거나 풀 리퀘스트를 생성하지 못한 경우 다음 단계를 따르십시오.
자동화된 파이프라인 결과와 생성된 아티팩트를 검사합니다. 코드를 적절히 변경합니다.
변경 사항을 중앙 리포지토리로 푸시하거나 풀 리퀘스트를 생성하여 CI 플랫폼에서 새 파이프라인을 트리거합니다.
통합 엔지니어는 CI 플랫폼 아티팩트를 사용하여 기능 브랜치를 메인 브랜치로 병합할 시점을 결정할 수 있습니다.
이 그림에서는 Jenkins®를 CI 플랫폼으로 사용하고 Git™와 GitHub®를 소스 코드 관리 툴로 사용하는 지속적 통합 워크플로의 예를 보여줍니다. MATLAB과 Jenkins를 함께 사용하는 방법에 대한 자세한 내용은 Run MATLAB Tests on Jenkins Server 항목을 참조하십시오. 내장된 Git 및 Subversion®(SVN)과의 연동에 대한 자세한 내용은 MATLAB의 소스 컨트롤 연동 항목을 참조하십시오.
MathWorks 제품을 사용한 지속적 통합
다양한 CI 플랫폼에서 MATLAB을 사용하여 지속적 통합을 수행할 수 있습니다. MATLAB 코드와 Simulink 모델을 실행하고 테스트하며, 아티팩트를 생성하고, 결과를 플랫폼에 퍼블리시할 수 있습니다. 자세한 내용은 CI 플랫폼에서 MATLAB을 사용한 지속적 통합 항목을 참조하십시오.
MATLAB 외에도 다양한 툴박스가 지속적 통합 워크플로를 지원합니다. 다음 표에는 코드 및 모델에 흔히 적용되는 지속적 통합 사용 사례가 나와 있습니다.
툴박스 | 사용 사례 | 추가 정보 |
---|---|---|
Simulink |
| |
Simulink Test™ | CI 플랫폼에서 테스트 파일을 실행하고 Simulink Coverage™를 사용하여 CI 호환 커버리지 수집. | Continuous Integration (Simulink Test) |
Simulink Check™ | 개발 및 검증 활동을 식별하고, 자동화하며, 완료하는 데 도움이 되도록 팀에게 자동화된 프로세스 배포. | 지속적인 통합 (Simulink Check) |
Requirements Toolbox™ | CI 플랫폼에서 실행되는 테스트에 대한 요구 사항 확인 결과 요약. | Include Results from External Sources in Verification Status (Requirements Toolbox) |
Polyspace® Bug Finder™ Server™, Polyspace Code Prover™ Server |
|
|
참고 항목
함수
네임스페이스
도움말 항목
- MATLAB에서 Git 사용
- MATLAB에서 SVN 사용
- Reduce Test Runtime on CI Servers
- MATLAB 프로젝트에 소스 컨트롤 사용하기
- 예제 프로젝트 살펴보기
- CI 플랫폼에서 MATLAB을 사용한 지속적 통합