Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/#161: 알림 받을 수 있도록 기능 추가 & 마이페이지 디자인 개선 #164

Merged
merged 20 commits into from
Aug 22, 2023

Conversation

pp449
Copy link
Member

@pp449 pp449 commented Aug 20, 2023

🤠 개요

💫 설명

학교 공지사항 알림 & 학과 공지사항 알림

  • 일단 학과 공지사항 알림만 할 수 있도록 추가했어요
  • 만약 학과 공지사항 알림이 잘 된다면 학교 공지사항 알림도 쉽게 추가할 수 있을거 같아요!

알림은 몇개..?

  • 만약 새로운 공지사항이 올라왔으면 올라온 모든 공지사항을 알림으로 보낼건지, 아니면 새로운 공지가 있다고 알림 1개만 보낼 지 고민해봐야할거 같아요

알림 허용 문제

  • PWA 는 웹 브라우저에서 돌아가기 때문에 만약 사용자가 웹 브라우저의 알림을 껐다면 알림을 받을 수 없어요..
  • 마이페이지 하단에 알림을 받을 수 있는 가이드라인을 하나 만들어야할 것 같아요

알림 방법

  • 알림을 받는 방법은 추후 부리미 기술 블로그에 상세히 작성해둘게요!

📷 스크린샷 (Optional)

Screen Recording 2023-08-20 at 11 41 02 AM
image

@hwinkr
Copy link
Collaborator

hwinkr commented Aug 21, 2023

알림은 몇개..?

  • 만약 새로운 공지사항이 올라왔으면 올라온 모든 공지사항을 알림으로 보낼건지, 아니면 새로운 공지가 있다고 알림 1개만 보낼 지 고민해봐야할거 같아요

제 개인적인 생각은, 일단 새로운 공지가 왔다는 알림을 보내고 앱 내부에 들어오면 어떤 알림이 왔는지 알려주면 좋을 것 같아요!

알림 허용 문제

  • 마이페이지 하단에 알림을 받을 수 있는 가이드라인을 하나 만들어야할 것 같아요

동의합니다!

Copy link
Collaborator

@hwinkr hwinkr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM! 알림 서비스 고생하셨습니다~

try {
const registration = await navigator.serviceWorker.ready;
const VAPID_PUBLIC_KEY =
'BMTktqZlaL5Bqx7rR2h_fbqBsWROO4k2RnXxwbJXDsP99RSaihgNEkA3JT1iQVT2XRQMRHYMJUyDQS7_r8S5BMc';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 KEY는 뭔가욤?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

서버에서 보낸 알림이 인증된 서버에서 보냈는지 클라이언트의 public key 와 서버의 private key 로 확인할 때 쓰이는 key 에요

만약 인증된 서버에서 알림을 보낸게 아니라면 알림을 클라이언트에게 보내지 않도록 하기위해 사용하고 있어요

환경변수에 넣어서 관리하는 것이 좋지만 Vite, jest 에서 환경변수의 값을 에러없이 가져오기 힘들어서 일시적으로 키값을 노출시켰어요

그래도 비대칭키 특성 상 public key 값으로 private key 값을 유추하기 쉽지 않아 보안상의 큰 문제는 없을거란 생각이 들어요!

Comment on lines +44 to +50
const storedSubscribe = localStorage.getItem('subscribe');
if (major && storedSubscribe) {
http.delete(`${SERVER_URL}/api/subscription/major`, {
data: { subscription: JSON.parse(storedSubscribe), major },
});
localStorage.removeItem('subscribe');
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 함수는 이미 선택된 전공이 있고, 수정할 경우를 처리하기 위한 함수가 맞나요~?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 만약 전공을 새로 바꾼다면 바뀐 전공을 구독하는게 아닌 이전 전공 구독을 취소하게 만들었어요

Comment on lines +74 to +77
const subscription = await registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(VAPID_PUBLIC_KEY),
});
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

학과 공지사항에 대한 알림서비스를 주려면, 사용자 기기정보와 그 사용자가 선택한 전공에 대한 정보가 필요한데 그러면 subscribe 함수 반환값(subscription)이 사용자 기기정보인가요??

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 subscription이 사용자 기기정보와 사용자가 알림을 받을 수 있는 엔드포인트 값을 가지고있어요

@pp449 pp449 merged commit e1f06f3 into dev Aug 22, 2023
1 check passed
@pp449 pp449 deleted the feat/#161 branch August 22, 2023 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feat: 마이페이지에 푸시 알림 받을 수 있는 토글 버튼 추가
2 participants