CI/CD 개념과 파이프라인
4. 응용 변형 예제
4.1 정적 검사 단계에 린터 추가하기
Checkstyle·SpotBugs 같은 외부 린터를 쓰면 run_step "정적 검사" checkstyle ... 처럼 한 줄만 바꾸면 됩니다. 단계 순서와 실패 처리 방식은 그대로 재사용됩니다.
4.2 실패 시 알림 붙이기
run_step 의 실패 분기(else 블록)에 메일이나 메신저 호출 명령을 한 줄 추가하면 실패 즉시 담당자에게 알릴 수 있습니다. 폐쇄망이면 사내 메신저 API 나 로그 파일 감시로 대체합니다.
4.3 여러 모듈을 병렬로 빌드하기
모듈이 여러 개면 run_step "build-a" javac ... & run_step "build-b" javac ... & wait 형태로 백그라운드 실행 후 wait 로 모두 끝나길 기다립니다. 다만 병렬 단계는 실패 지점을 구분하기 어려워지므로 로그에 모듈 이름을 반드시 남깁니다.
4.4 빌드 캐시로 반복 실행 줄이기
의존 라이브러리가 있는 프로젝트는 매번 새로 받지 않도록 캐시 폴더를 재사용합니다. GitHub Actions 의 actions/cache 도 같은 개념으로, 이전 실행의 폴더를 다음 실행에 복원합니다.
4.5 실패를 로컬에서 먼저 재현하기
원격 파이프라인이 실패하면 같은 ci.sh 를 로컬에서 그대로 실행해 원인을 먼저 좁힙니다. 이 레슨의 예제 3·4번처럼 소스만 바꿔 같은 스크립트로 성공·실패를 재현할 수 있으면 원격 로그만 보고 헤매지 않습니다.