모바일 앱 개발에서 사용자에게 적절한 시기에 알림을 전송하는 것은 사용자 참여도를 높이는 중요한 전략 중 하나입니다. Firebase Cloud Messaging(FCM)은 이를 위한 강력한 도구를 제공하며, 특히 토픽 메시징 기능을 통해 개발자는 사용자의 관심사에 따라 맞춤화된 알림을 쉽게 전송할 수 있습니다. 이 글에서는 Firebase에서 FCM의 토픽 메시징 기능을 사용하여 사용자 관심사별로 알림을 전송하는 방법을 단계별로 안내합니다.
Firebase와 FCM 소개
Firebase는 앱 개발을 위한 백엔드 서비스의 집합을 제공하는 구글의 플랫폼입니다. Firebase Cloud Messaging(FCM)은 이 플랫폼에서 제공하는 무료 메시징 서비스로, 앱 개발자가 서버나 다른 클라이언트 앱에 메시지를 안정적으로 전송할 수 있게 해 줍니다.
토픽 기반 메시징의 이점
토픽 메시징을 사용하면 개발자는 사용자를 특정 주제별로 구분하여, 해당 토픽에 관심이 있는 사용자 그룹에게만 메시지를 전송할 수 있습니다. 예를 들어, '스포츠 뉴스'에 관심이 있는 사용자만을 대상으로 최신 스포츠 소식을 전송할 수 있습니다. 이 접근 방식은 메시지의 관련성을 높이고, 사용자 경험을 개선하는 데 큰 도움이 됩니다.
토픽 구독 설정하기
사용자가 앱 내에서 특정 토픽을 구독하게 하려면 다음과 같은 코드를 사용할 수 있습니다.
import FirebaseMessaging
// 사용자가 '스포츠 뉴스' 토픽을 구독하도록 설정
Messaging.messaging().subscribe(toTopic: "sports_news") { error in
if let error = error {
print("Error subscribing to sports news topic: \(error)")
} else {
print("Subscribed to sports news topic")
}
}
이 코드 스니펫은 iOS 앱에서 사용자가 '스포츠 뉴스' 토픽을 구독하도록 하는 방법을 보여줍니다. Android 앱에서도 유사한 방법을 사용할 수 있습니다.
토픽을 이용한 알림 전송
서버 측에서는 다음과 같이 특정 토픽을 구독하는 사용자들에게 알림을 전송할 수 있습니다.
const registrationToken = 'YOUR_REGISTRATION_TOKEN';
const message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};
// Send a message to the device corresponding to the provided
// registration token.
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
더 다양한 사용법은 아래 Firebase 문서에서 확인할 수 있습니다.
Firebase 클라우드 메시징
Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 크로스 플랫폼 메시징 솔루션입니다.
firebase.google.com
'2023년 부터 > iOS&Swift' 카테고리의 다른 글
[iOS&Swift] 버그& 이슈 (BGTaskSchedulerPermittedIdentifiers ) (0) | 2024.03.26 |
---|---|
[iOS&Swift] 버그&이슈 (Asset validation failed Invalid bundle) (0) | 2024.03.26 |
[iOS] ScrenDelegate 와 Appdelegate에서 navigationViewcontroller 호출하기 (0) | 2024.02.08 |
[iOS/Swift]OneLink 적용 및 테스트 방법 (0) | 2024.02.08 |
[iOS/Swift]Decoding Error(The data couldn’t be read because it is missing) (0) | 2024.01.15 |