목록 보기
SwiftLint 캐싱을 통한 Incremental Build 최적화하기
프론트엔드

SwiftLint 캐싱을 통한 Incremental Build 최적화하기

29cm
29cm
2025년 1월 22일

두줄요약

SwiftLint가 매 빌드마다 실행되며 증분 빌드를 느리게 만드는 문제를 개선했습니다. xcfilelist와 dependency analysis로 캐싱하고, CI 린트로 보완했습니다.

문제 상황

  • Xcode Run Script의 SwiftLint가 컴파일마다 전체 코드베이스를 검사해 증분 빌드마다 15~30초의 추가 시간이 발생
  • 모듈화가 진행될수록 모듈별 SwiftLint 실행이 늘어나 빌드 지연이 더 커지는 구조

원인 분석

  • 일반적인 Run Script 방식은 매 빌드마다 SwiftLint를 수행하는 구조
  • 변경 여부와 무관하게 린트가 돌아 증분 빌드의 이점이 줄어듦

해결 방법

  • Based on dependency analysis와 xcfilelist를 활용해 변경 파일이 있을 때만 SwiftLint가 실행되도록 구성
  • Pre-actions로 타겟별 xcfilelist를 갱신하고, 병렬 스크립트로 여러 모듈을 빠르게 처리

주의할 점

  • 캐싱으로 린트 확인 시점이 늦어져 경고와 오류 발견이 지연될 수 있음
  • 일부 린트 오류가 컴파일 문제로 이어질 수 있어 보완 장치 필요

적용해볼 점

  • 증분 빌드에 포함된 Build Phase의 불필요한 실행 여부 점검
  • xcfilelist, Build Pre-actions, dependency analysis로 캐시 전략 검토

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...