강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이영훈님의 프로필 이미지
이영훈

작성한 질문수

React Native with Expo: 제로초에게 제대로 배우기

리모트 푸쉬 노티피케이션

알림 수신 상태 변경

작성

·

14

0

제로초님 안녕하세요!
유저가 알림 허용을 해서 granted 상태가 되고 백엔드 서버에 pushToken까지 보내놓은 상태에서, 유저가 알림을 다시 off 했을때, 서버에서도 알림 상태를 off로 만들려면 이 상태를 DB에 저장해놨던 pushToken을 삭제하는 방식으로 관리하나요??


답변 2

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네네 서버에서 토큰을 삭제하시면 됩니다

이영훈님의 프로필 이미지
이영훈
질문자

감사합니다!

이영훈님의 프로필 이미지
이영훈
질문자

제로초님 추가로 질문이 있습니다..!

기존에는 앱을 실행할때마다 useEffect에서 서버로 expo push token을 보내고 있었는데, 백엔드측에서 앱을 실행할때마다 보내는 게 좋지 않은 거 같다고 하셔서 앱을 최초로 다운받아서 실행하고 알림 허용을 누른 유저만 push token을 서버로 보내는 게 어떻겠냐 하셔서 그렇게 수정중입니다.

제가 사용한 방법은 SecureStore에
key: isPushTokenSent_${userId}, value: boolean 값을 저장하고, 알림 허용을 한 유저가 한번 push token을 서버로 보냈으면 true로 만들고, 더이상 서버에 보내지 않게 하는 방법으로 구현했는데, development build된 앱을 아이폰에서 테스트해보니 앱을 삭제하고 다시 깔았는데도 SecureStore에 저장한 값들이 초기화되지 않고 그대로 남아있습니다.

이렇게 최초 앱 접속 사용자인지 판단하는 플래그 값을 보통 클라이언트, 서버 어느쪽에서 판단하나요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

클라이언트 기기가 여러 개일 수 있다면 서버에서 판단해야 합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

이영훈님, 푸시 알림과 관련된 상태 변경에 대해서는 몇 가지 방법으로 관리할 수 있습니다. 일반적으로, 유저가 알림을 비활성화했을 때 서버에서도 그 상태를 반영하기 위해 몇 가지 전략을 고려할 수 있습니다:

  1. Push Token 갱신 관리:

    • 유저가 푸시 알림을 비활성화한 경우, 앱에서 서버로 해당 정보를 전송하여 서버에 저장된 pushToken을 비활성화하거나 삭제하는 방법을 사용할 수 있습니다. 이렇게 하면 서버에서 더 이상 해당 유저에게 푸시 알림을 보내지 않도록 관리할 수 있습니다.
  2. 알림 상태 플래그:

    • 서버의 데이터베이스에 유저별로 알림 상태를 나타내는 플래그(예: isNotificationEnabled)를 저장하고, 유저가 알림 설정을 변경할 때 이 값을 업데이트하는 방법도 가능합니다. 이 플래그를 통해 현재 알림을 보내야 하는지 여부를 판단할 수 있습니다.

이러한 방법들을 결합하여 사용자에게 최적의 경험을 제공하는 푸시 알림 시스템을 구축할 수 있습니다. 푸시 알림을 비활성화한 사용자에게는 서버에서 알림을 발송하지 않도록 꼭 이 상태를 적절히 관리하는 것이 중요합니다.

더 자세한 내용은 푸시 알림 구현 관련 게시물에 나와 있는 기존 질문과 답변을 참조하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이영훈님의 프로필 이미지
이영훈

작성한 질문수

질문하기