앱 개발 시, 중요하게 보는 요소 중 하나가 바로 앱 빌드 속도입니다. 앱을 개발할 때 빌드 속도가 느리면 생산성이 크게 떨어질 수 있기 때문입니다. 특히, 대규모 프로젝트에서는 컴파일 시간이 길어지면서 개발 효율이 저하될 수 있습니다. 이를 보완하기 위해 Flutter에서는 몇 가지 설정과 최적화 기법을 적용하면 컴파일 속도를 크게 향상할 수 있습니다. 지금부터 Flutter 빌드 속도를 빠르게 만드는 5가지 핵심 방법을 자세히 살펴보겠습니다.
1. --no-sound-null-safety 옵션 활용하기
Flutter 2.0부터 Null Safety가 도입되면서 코드의 안정성은 향상되었지만, 컴파일 속도는 상대적으로 느려질 수 있습니다. 만약 기존 라이브러리를 사용하거나, Null Safety가 필요 없는 경우 --no-sound-null-safety
옵션을 사용하면 컴파일 속도를 소폭 향상시킬 수 있습니다.
flutter run --no-sound-null-safety
flutter build apk --no-sound-null-safety
이 옵션은 특히 구버전 패키지와 호환성을 유지해야 할 때 유용하며, 불필요한 타입 체크 과정을 줄여 빌드 시간을 단축할 수 있습니다. 하지만 최신 Flutter 버전에서는 필요하지 않을 수도 있으므로 버전을 체크하여 프로젝트 환경에 맞춰 적용하는 것이 좋습니다.
2. Hot Reload와 Hot Restart 적극 활용
Flutter는 Hot Reload와 Hot Restart 기능을 제공하여 빠른 코드 변경을 반영할 수 있습니다. 그러나 모든 경우에 Hot Reload가 적용되지 않으며, 특정 코드 변경 사항은 전체 빌드를 다시 해야 하는 경우가 있습니다. 변경된 코드가 어떤 건지 확인하여 상황에 맞게 적절히 사용한다면 보다 빠른 코드 작업을 수행할 수 있습니다.
Hot Reload 사용이 적합한 경우:
- UI 수정 (스타일, 레이아웃, 텍스트 변경)
- 함수 내부 코드 수정
Hot Restart가 필요한 경우:
- 새로운 패키지를 추가했을 때
main()
함수나 앱 초기화 로직을 변경했을 때
이 기능을 적절히 활용하면 전체 빌드 시간을 대폭 단축할 수 있습니다.
3. 불필요한 패키지 제거 및 pubspec.yaml 정리
패키지나 라이브러리 정리 또한 빌드 속도에 영향을 주는 요소 중 하나입니다. Flutter 프로젝트에서 사용하지 않는 패키지가 많다면, 컴파일 속도에 영향을 줄 수 있습니다. pubspec.yaml
을 정리하고 불필요한 의존성을 제거하는 것이 중요합니다.
패키지 정리 방법:
pubspec.yaml
파일을 열어 불필요한 패키지를 확인합니다.flutter pub remove <패키지명>
명령어를 사용하여 제거합니다.flutter pub get
을 실행하여 의존성을 업데이트합니다.
또한, dev_dependencies
에 있는 패키지는 개발 환경에서만 필요하므로, 실제 빌드 시 불필요한 패키지가 포함되지 않도록 주의해야 합니다.
4. --split-per-abi 옵션 사용하기
안드로이드 앱을 빌드할 때 --split-per-abi
옵션을 사용하면 APK 크기를 줄이고 빌드 속도를 향상시킬 수 있습니다.
flutter build apk --split-per-abi
이 옵션을 사용하면 특정 CPU 아키텍처에 맞는 APK만 생성되므로 빌드 시간이 단축됩니다. 예를 들어, arm64용 APK만 필요하다면 불필요한 x86, armeabi 등의 빌드를 제외할 수 있습니다.
5. 멀티코어 CPU 활용 및 Gradle 캐시 최적화
Flutter 빌드는 내부적으로 Gradle을 사용하므로, Gradle 캐시를 최적화하면 빌드 속도를 크게 향상할 수 있습니다.
Gradle 속도 최적화 방법:
android/gradle.properties
파일을 열어 아래 옵션을 추가합니다.
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
flutter build apk
실행 시 멀티코어 CPU를 활용하도록 설정합니다.
export GRADLE_OPTS="-Dorg.gradle.parallel=true -Dorg.gradle.daemon=true"
- Gradle 캐시를 활성화하여 반복 빌드 속도를 개선합니다.
flutter clean
flutter pub get
이 방법을 적용하면 기존 빌드 데이터를 재사용하여 전체 빌드 시간을 줄일 수 있습니다.
결론
Flutter 빌드 속도를 빠르게 하는 방법에는 여러 가지가 있지만, 가장 중요한 것은 프로젝트의 특성과 개발 환경에 맞게 최적화하는 것입니다. --no-sound-null-safety
옵션을 활용하고, Hot Reload를 적극적으로 사용하며, 불필요한 패키지를 정리하는 것만으로도 상당한 속도 개선이 가능합니다. 또한, --split-per-abi
옵션과 Gradle 캐시 최적화도 병행하면 더욱 빠른 빌드 속도를 경험할 수 있습니다.
적을 알고 나를 알면 백전백승이라는 말이 있듯이, 우선 나의 개발환경을 먼저 파악한 다음 위에 나와 있는 방법들을 환경에 맞게 적용해 나가면 더욱 효율적인 Flutter 개발 환경을 구축해 나갈 수 있을 겁니다.