Flutter 앱 빌드 시간 30% 단축한 방법
문제 상황
플러터 프로젝트가 50개 이상의 화면과 다수의 서드파티 패키지를 포함하면서 빌드 시간이 점점 늘어났다. iOS 기준 cold build 5분, hot reload도 간헐적으로 느려지는 상황이었다.
원인 분석
flutter build ios --verbose로 확인한 결과 몇 가지 병목을 발견했다.
- 불필요한 네이티브 디펜던시 재빌드
- 과도한 코드 제너레이션 파일
- Xcode derived data 누적
적용한 해결책
1. CocoaPods 캐싱
.ios/Podfile에 캐시 설정을 추가했다.
install! 'cocoapods',
:deterministic_uuids => false,
:disable_input_output_paths => true
2. build_runner 최적화
freezed, json_serializable 등 코드 제너레이션을 사용 중이었는데, 필요한 파일만 생성하도록 수정했다.
# build.yaml
targets:
$default:
builders:
json_serializable:
options:
explicit_to_json: true
generate_for:
- lib/models/**
3. Gradle 설정 튜닝
Android 빌드를 위해 android/gradle.properties에 메모리 설정을 추가했다.
org.gradle.jvmargs=-Xmx4096m
org.gradle.parallel=true
org.gradle.caching=true
결과
iOS cold build 5분 → 3분 30초로 단축되었다. hot reload 속도는 체감상 크게 개선되었고, 팀원들의 만족도도 높아졌다.
빌드 시간은 개발 경험에 직접적인 영향을 주는 요소다. 프로젝트 초기부터 설정을 잘 잡아두는 것이 중요하다는 것을 다시 느꼈다.