기술문서
>Flutter(플루터)
플루터(Flutter)를 사용하여 푸시 알림 기능을 구현
자료 기본정보
주요 프로그램 스펙
- 평점: 10.0
- 라이선스: free
피드백 및 다운로드
- 사용자 평점: 10.0
- 조회: 2
제조사 및 등록 정보
- 제작사: LUZENSOFT
- 등록일: 2026-01-25 14:54:01
- 설명
플루터(Flutter)를 사용하여 푸시 알림 기능을 구현하는 것은 앱의 사용자 유지율을 높이는 데 필수적인 작업입니다. 가장 표준적이고 강력한 도구인 **Firebase Cloud Messaging (FCM)**을 기준으로 핵심 단계를 정리해 드릴게요.
1. 프로젝트 준비 및 설정
먼저, Firebase 콘솔과 플루터 프로젝트를 연결해야 합니다.
Firebase 프로젝트 생성: Firebase 콘솔에서 새 프로젝트를 만듭니다.
CLI 도구 설치:
firebase-tools와flutterfire_cli를 사용하여 설정을 자동화하는 것이 가장 편합니다.Bash
dart pub global activate flutterfire_cli flutterfire configure의존성 추가:
pubspec.yaml파일에 필요한 패키지를 추가합니다.YAML
dependencies: firebase_core: ^latest_version firebase_messaging: ^latest_version flutter_local_notifications: ^latest_version # 포그라운드 알림용
2. 플랫폼별 추가 설정
Android
AndroidManifest.xml에서 권한 및 서비스 설정을 확인합니다. (최신 버전은 자동 설정되는 경우가 많으나 확인이 필요합니다.)
iOS (중요)
Apple Developer Program 유료 계정이 필요합니다.
Xcode에서 Push Notifications와 Background Modes (Remote notifications) 기능을 활성화해야 합니다.
APNs 인증서(.p8 파일)를 Firebase 콘솔에 업로드해야 합니다.
3. 푸시 알림 코드 구현
앱의 엔트리 포인트인 main.dart에서 초기화 및 핸들링 로직을 작성합니다.
기본 초기화 로직
Dart
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// 앱이 백그라운드나 종료된 상태에서 알림을 받았을 때 처리
print("Handling a background message: ${message.messageId}");
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// 백그라운드 핸들러 등록
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
runApp(MyApp());
}
권한 요청 및 토큰 획득
사용자에게 알림 권한을 묻고, 서버에서 특정 기기로 메시지를 보낼 때 필요한 FCM Token을 가져옵니다.
Dart
FirebaseMessaging messaging = FirebaseMessaging.instance;
// 권한 요청 (iOS/Android 13 이상)
NotificationSettings settings = await messaging.requestPermission(
alert: true,
badge: true,
sound: true,
);
// FCM 토큰 확인 (이 토큰을 DB에 저장하여 서버에서 활용합니다)
String? token = await messaging.getToken();
print("Device Token: $token");
4. 메시지 수신 상태 처리
푸시 알림은 앱의 상태에 따라 다르게 작동합니다.
상태 | 설명 |
|---|---|
Foreground | 앱이 켜져 있는 상태. |
Background | 앱이 내려가 있는 상태. 시스템 알림창에 자동으로 표시됨. |
Terminated | 앱이 완전히 종료된 상태. |