Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

지속적 통합으로 소프트웨어를 개발하고 통합하기

지속적 통합(CI)은 코드 변경 사항을 공유 리포지토리에 자주 통합하는 개발 방식입니다. CI는 코드 빌드, 테스트, 패키징과 같은 활동을 자동화하고 표준화하여 팀 처리량과 소프트웨어 품질을 향상합니다. 예를 들어, 개발자가 새로 커밋된 변경 사항을 원격 리포지토리로 푸시할 때마다 지속적 통합 플랫폼은 변경 사항이 원격 리포지토리의 대상 브랜치에서 충돌을 일으키지 않는다는 점을 보장하기 위해 테스트 스위트를 자동으로 실행할 수 있습니다.

지속적 통합은 다음과 같은 이점이 있습니다.

  • 소프트웨어의 문제를 찾고 문제 발생 즉시 수정.

  • 코드 디버깅에 필요한 리소스는 줄이면서 더 많은 기능을 추가.

  • 지속적으로 통합을 수행하여 통합 및 배포 오버헤드 최소화.

  • 소프트웨어 상태와 소프트웨어에 대한 변경 사항을 명확히 전달.

지속적 통합 워크플로

지속적 통합을 사용하는 일반적인 소프트웨어 개발 워크플로는 여러 단계로 구성됩니다.

  1. 원격 리포지토리 복제와 기능 브랜치 생성

  2. 파일 편집 및 로컬 리포지토리에 변경 사항 커밋

  3. 원격 리포지토리에 커밋된 변경 사항 푸시(이 단계는 CI 플랫폼에서 MEX 파일 컴파일, 테스트 실행, 툴박스 패키징 같은 작업의 자동화된 파이프라인을 트리거함)

  4. CI 플랫폼에 의해 생성된 리포트 분석 및 파이프라인 내부의 오류 수정

  5. 풀 리퀘스트(Pull Request)를 통해 원격 기능 브랜치를 메인 브랜치로 병합(이 단계는 CI 플랫폼에서 또 다른 작업의 자동화된 파이프라인을 트리거함)

  6. CI 플랫폼에 의해 생성된 리포트 분석 및 병합 실패 해결

이 그림에서는 Jenkins® CI 서버와 Git™ 및 GitHub®와 같은 오픈 소스 소스 코드 관리 툴을 사용하는 개발 주기의 예를 보여줍니다. MATLAB®과 Jenkins를 연결하는 방법에 대한 자세한 내용은 Run MATLAB Tests on Jenkins Server를 참조하십시오.

An example of the development cycle using continuous integration

1단계: 로컬 리포지토리에서 기능 개발 및 가설 검정하기

기능을 개발하고 변경 사항을 로컬 리포지토리에 커밋합니다.

  1. GitHub 리포지토리를 복제하고 새 기능 브랜치를 만듭니다.

  2. 기존 파일을 변경하거나 필요에 따라 새 파일을 추가합니다.

  3. MATLAB 및 Simulink® 테스트를 실행하여 변경 사항을 가설 검정하고 로컬 리포지토리에 커밋합니다.

2단계: 지속적 통합 플랫폼에서 자동화된 파이프라인 실행하기

변경 사항을 원격 리포지토리로 푸시하거나 풀 리퀘스트를 생성할 때 작업(테스트 포함)의 자동화된 파이프라인을 실행합니다.

  1. 커밋된 변경 사항을 GitHub로 푸시하거나 풀 리퀘스트를 생성하여 원격 기능 브랜치를 메인 브랜치로 병합하여 Jenkins에서 작업의 자동화된 파이프라인을 트리거합니다.

  2. Jenkins는 MATLAB 및 Simulink 테스트를 포함한 자동화된 파이프라인을 실행하고 프로젝트 구성에 지정된 대로 아티팩트를 생성합니다.

3단계: 실패 조사 및 해결하기

변경 사항을 제대로 푸시하지 못했거나 풀 리퀘스트를 생성하지 못한 경우 다음 단계를 따르십시오.

  1. 자동화된 파이프라인 결과와 생성된 아티팩트를 검사합니다. 코드를 적절히 변경합니다.

  2. 변경 사항을 GitHub로 푸시하거나 풀 리퀘스트를 생성하여 Jenkins에서 새 파이프라인을 트리거합니다.

통합 엔지니어는 Jenkins 아티팩트를 사용하여 기능 브랜치를 메인 브랜치로 병합할 시점을 결정할 수 있습니다.

MathWorks 제품을 사용한 지속적 통합

다양한 지속적 통합 플랫폼에서 MATLAB을 사용하여 지속적 통합을 수행할 수 있습니다. MATLAB 코드와 Simulink 모델을 실행하고 테스트하며, 아티팩트를 생성하고, 결과를 플랫폼에 퍼블리시할 수 있습니다. 자세한 내용은 CI 플랫폼에서 MATLAB을 사용한 지속적 통합 항목을 참조하십시오.

MATLAB 외에도 다양한 툴박스가 지속적 통합 워크플로를 지원합니다. 다음 표에는 모델 및 코드에 흔히 적용되는 지속적 통합 사용 사례가 나와 있습니다.

툴박스사용 사례추가 정보
Simulink

  • 모델 및 프로젝트의 빌드와 테스트

  • 시뮬레이션 및 코드 생성을 위한 파일 캐시

About Source Control with Projects (Simulink)

Using a Project with Git (Simulink)

더 빠른 시뮬레이션을 위해 Simulink 캐시 파일 공유하기 (Simulink)

Attach Model Comparison Report to GitHub Pull Requests (Simulink)

Simulink Test™

CI 플랫폼에서 테스트 파일을 실행하고 Simulink Coverage™를 사용하여 CI 호환 커버리지 수집

Continuous Integration (Simulink Test)

Simulink Check™

Jenkins를 사용하여 모델에서 메트릭 임계값 위반 감지

Fix Metric Threshold Violations in a Continuous Integration Systems Workflow (Simulink Check)

Requirements Toolbox™CI 플랫폼에서 실행되는 테스트에 대한 요구 사항 확인 결과 요약

Include Results from External Sources in Verification Status (Requirements Toolbox)

Polyspace® Bug Finder™ Server™, Polyspace Code Prover™ Server

  • Jenkins를 사용하는 인스턴스에 대한 지속적 통합의 일부로서 C/C++ 코드에 대한 Polyspace 분석 실행

  • Polyspace Access 웹 인터페이스에서 검토하기 위한 분석 결과(버그, 런타임 오류 또는 코딩 표준 위반) 업로드

  • Polyspace Bug Finder 또는 Polyspace Code Prover 결과를 포함한 이메일 알림 보내기

Set Up Bug Finder Analysis on Servers During Continuous Integration (Polyspace Bug Finder)

Set Up Code Prover Analysis on Servers During Continuous Integration (Polyspace Code Prover)

참고 항목

함수

네임스페이스

관련 항목

외부 웹사이트