🛠️ Flutter에서 디버그 모드일 때만 기능 실행하기
개발 중에만 실행하고 싶은 코드가 있을 때,
릴리즈 빌드에서는 제외되길 원하는 기능이 있을 때,
“디버그 모드에서만 실행되는 코드”**는 정말 유용한 패턴입니다.
Flutter는 이런 상황을 위해 간단한 방법을 제공합니다.
바로 kDebugMode를 사용하는 거예요.
✅ kDebugMode란?
Flutter에서 kDebugMode는 현재 앱이 디버그 빌드 상태인지 확인하는 전역 상수입니다.
import 'package:flutter/foundation.dart';
if (kDebugMode) {
print('디버그 모드입니다!');
}
- 디버그 빌드일 때만 true
- 릴리즈 빌드나 프로파일 모드에서는 false
- 코드 트리밍으로 인해 릴리즈 빌드에서는 이 조건문 자체가 제거됩니다
🎯 언제 사용할 수 있을까?
상황예시
개발자 전용 기능 실행 | 개발 중에만 보이는 버튼/토스트 |
로그 출력 | 디버그 중에만 print() 사용 |
테스트 데이터 주입 | 가짜 계정으로 자동 로그인 |
저장소 초기화 | SharedPreferences 강제 리셋 등 |
🧪 실전 예시
📌 1. 디버그일 때만 실행 횟수 초기화
Future<void> resetLaunchCountIfDebug() async {
final prefs = await SharedPreferences.getInstance();
if (kDebugMode) {
await prefs.setInt('launchCount', 0); // 디버깅 중엔 무조건 0부터 시작
}
int count = prefs.getInt('launchCount') ?? 0;
await prefs.setInt('launchCount', count + 1);
print('앱 실행 횟수: ${count + 1}');
}
📌 2. 디버그 모드에서만 개발자용 버튼 표시
if (kDebugMode)
TextButton(
onPressed: () => print('디버그용 기능 실행'),
child: Text('개발자 전용 버튼'),
),
❗주의할 점
- kDebugMode는 package:flutter/foundation.dart에서 제공됩니다.
- 릴리즈 빌드에서는 조건문 자체가 포함되지 않기 때문에 성능에도 영향 없음
- kReleaseMode, kProfileMode도 함께 활용 가능해요.
✨ 마무리
Flutter 앱을 개발할 때, 디버깅 전용 기능을 안전하게 분리하고 싶다면
kDebugMode를 적극 활용해보세요!
- 기능 테스트가 깔끔해지고
- 실수로 릴리즈 빌드에 들어가는 걸 방지할 수 있어요.
🧡 이 글이 도움이 됐다면 공감 & 댓글 부탁드립니다 :)
Flutter 실전 팁, 상태관리, 배포 전략 등 계속 업데이트할게요!
'programing > App' 카테고리의 다른 글
[Flutter macOS] 앱 아이콘 적용 방법 (0) | 2025.04.15 |
---|---|
[Flutter/macOS] .dmg 설치 파일 만들기 (create-dmg) (0) | 2025.04.15 |
[Flutter]UUID 사용법 완벽 정리 – v1, v4, v5 차이점과 예제까지 (1) | 2025.04.03 |
[Flutter macOS] 앱을 항상 위에 고정(Always on Top) + 기본 창 크기 설정하는 방법 (1) | 2025.04.01 |
[React] key를 분명히 넣었는데도 Warning이 뜬다면? (Fragment 주의!) (0) | 2025.03.27 |