🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
알림 설정과 관리자 정책 수정에서 사용자가 요청하지 않은 결과가 나오는 문제 세 가지를 고칩니다.
1. 요청한 적 없는 이메일 알림이 켜진다
createDefaultPreference() 가 emailEnabled = true 로 기본 행을 만듭니다.
그런데 설정 행이 없을 때 NotificationDispatcher 가 실제로 발송하는 채널에는 이메일이 없습니다.
즉 사용자가 설정 화면에서 다른 채널 하나를 끄는 순간, 그 시점에 기본 행이 만들어지면서
요청한 적 없는 이메일 알림이 켜집니다.
기본값은 설정 행이 없을 때 실제로 발송되는 채널과 같아야 합니다.
2. "모두 끄기" 가 동작하지 않는 사용자가 있다
disableAllNotifications() 가 저장된 행만 끕니다.
설정을 한 번도 건드린 적 없는 사용자는 행이 없어서, "모두 끄기" 를 눌러도 아무것도 바뀌지 않고
인앱·푸시 기본값으로 계속 알림을 받습니다.
알림을 끄려는 사용자에게 알림이 계속 가는 것은 신뢰 문제입니다.
3. 채널을 왜 못 쓰는지 알려주지 않는다
FCM 자격증명이 없으면 푸시가 비활성화되는데, 설정 화면에서는 그냥 켜지지 않을 뿐
이유를 알 수 없습니다. 사용자는 자기 문제인 줄 압니다.
왜 못 쓰는지는 채널마다 다르고(자격증명 미설정, 사업자 미연동) 발송기 자신만 압니다.
4. 관리자 정책 수정이 전체 교체만 가능하다
update() 는 요청에 없는 필드를 null 로 만듭니다.
금액 하나만 고치려 해도 모든 값을 담아 보내야 하고, 빠뜨리면 데이터가 지워집니다.
부분 수정에서는 "비우기" 와 "건드리지 않기" 를 구분해야 하는데,
값의 null 여부만 보면 둘을 구분할 수 없습니다. 요청 JSON 에 키가 왔는지를 봐야 합니다.
✅ To Dos
🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요
💚 어떤 기능인가요?
알림 설정과 관리자 정책 수정에서 사용자가 요청하지 않은 결과가 나오는 문제 세 가지를 고칩니다.
1. 요청한 적 없는 이메일 알림이 켜진다
createDefaultPreference()가emailEnabled = true로 기본 행을 만듭니다.그런데 설정 행이 없을 때
NotificationDispatcher가 실제로 발송하는 채널에는 이메일이 없습니다.즉 사용자가 설정 화면에서 다른 채널 하나를 끄는 순간, 그 시점에 기본 행이 만들어지면서
요청한 적 없는 이메일 알림이 켜집니다.
기본값은 설정 행이 없을 때 실제로 발송되는 채널과 같아야 합니다.
2. "모두 끄기" 가 동작하지 않는 사용자가 있다
disableAllNotifications()가 저장된 행만 끕니다.설정을 한 번도 건드린 적 없는 사용자는 행이 없어서, "모두 끄기" 를 눌러도 아무것도 바뀌지 않고
인앱·푸시 기본값으로 계속 알림을 받습니다.
알림을 끄려는 사용자에게 알림이 계속 가는 것은 신뢰 문제입니다.
3. 채널을 왜 못 쓰는지 알려주지 않는다
FCM 자격증명이 없으면 푸시가 비활성화되는데, 설정 화면에서는 그냥 켜지지 않을 뿐
이유를 알 수 없습니다. 사용자는 자기 문제인 줄 압니다.
왜 못 쓰는지는 채널마다 다르고(자격증명 미설정, 사업자 미연동) 발송기 자신만 압니다.
4. 관리자 정책 수정이 전체 교체만 가능하다
update()는 요청에 없는 필드를 null 로 만듭니다.금액 하나만 고치려 해도 모든 값을 담아 보내야 하고, 빠뜨리면 데이터가 지워집니다.
부분 수정에서는 "비우기" 와 "건드리지 않기" 를 구분해야 하는데,
값의 null 여부만 보면 둘을 구분할 수 없습니다. 요청 JSON 에 키가 왔는지를 봐야 합니다.
✅ To Dos