문제 상황

- 가장 최근의 빌드인데 'Scheduled to completion 20 min' 20분이나 걸림
- 편하자고 사용하는 Jenkins인데 오히려 불편하다는 생각이 듦
원인 분석
- 일단 어떤 부분에서 가장 시간이 오래걸리는지 확인해보자

- Jenkins의 Plugins에 들어가면 여러가지 플러그인을 설치할 수 있는데 그 중 'Pipeline: Stage View Plugin'을 설치했다
- Pipeline: Stage View Plugin = 파이프라인의 각 단계를 시각적으로 보여주는 플러그인

- 설치가 완료되면 각 stage 별로 걸린 시간이 나오면서 어떤 부분에서 오랜 시간을 사용하는지 알 수 있음
해결 방법
- 병렬 처리 : 파이프라인은 순차적으로 실행되는데, 서로 의존성을 갖지 않는 stage는 병렬로 실행해 시간을 감소

- Docker 이미지 캐싱 : 이미지 빌드 시 캐시를 활용, 변경이 없는 레이어는 캐시를 사용할 수 있도록 최적화

- rsync 사용 : Deploy to AWS에서 현재는 scp 명령어로 동작하고 있는데 rsync를 사용해 변경된 파일만 전송하여 시간을 절약

- 만약 1, 2가 원래 빌드보다 오래걸리게 하는거라면? (rsync만 사용)

결과
- 문제를 확인하고, 알맞게 수정하면 올바른 방향으로 수정 가능
- 코드 수정 후에 빌드 시간을 계속 모니터링하고, 문제가 없다면 빌드 시간이 짧은게 제일 좋을 듯