사용자가 로그아웃하고 돌아와도 이미 확인한 알림, 그동안 못 받은 알림이 보이고
알림이 없어지는건 사용자가 직접 이벤트옆에 X버튼을 누르거나 알림이 30개 이상 쌓여 오래된 것부터 자동삭제 되는 경우로 할 것
처음엔 실시간 알림과 별개로 디스크 DB를 활용할 생각이었음
그런데 사실 알림이 크게 중요한 내용이 있는건 아님 홍길동한테 편지가 왔습니다, 님 글이 인기글이 되었습니다 정도임
DB를 안 쓸 수있는 방법을 고민하기 시작
X표시 하지않아 남아있는 알림을 DB없이 확인하려면? 쿠키나 로컬스토리지 활용 알림을 지우는것은 프론트에서 쿠키나 스토리지를 통해 적용이 가능함 중요한 알림이 아니라 그렇게 해도 큰 상관없다는 판단
이벤트캐시와 이벤트ID를 활용하면 로그아웃동안 못받은 알림을 받을 수 있음
그런데 이미 받았던 알림을 재 로그인 후에도 확인하려면??
쿠키든 로컬스토리지든 보안상 로그아웃시점에 비워줘야함 만약 안 비운다면 재 로그인 후에도 이전에 받았던 알림을 확인할 수 있겠지만
어디까지나 동일한 기기로 로그인한다는 보장이없고 예를들어 피시방에서 로그인하면 피시방 브라우저에 알림 정보가 그대로 남아있을 수 있다는 것 그리고 핸드폰으로 로그인하면 이전에 받았던 알림을 확인할 수 없음
결국 디스크 DB를 가져야만 하는건가??
- dc official App
너무 장문이라 안읽었는데 메모리로 하면 되잖음 맨날 로그인 로그아웃 할때마다 DB 업데이트 하고 있을거임?
장애인이냐... 메모리같은 소리하고있네
아 메모리 그렇네 이벤트캐시를 조금 변동하면 됐겠네 변동할 생각을 못했네 ㄱㅅㄱㅅ - dc App
엇 댓달자마자 동시에 메모리아닌가..? 머쓱타드 - dc App
118.235가 아픈애라 그럼 로그인 시 레디스든 메모리든 어디에 올려서 상태 관리하고 브로드캐스트로 알람 뿌리셈
DB 써라
난 알림 기능 구현할 때 DB 조회하긴 했었음. 어차피 user_id로 인덱싱 되어 있어서 빨리 가져오니까.로컬스토리지에 해당 정보가 없을 때만 가져오게 하면 괜찮지 않을까? 알람이 하나도 없는 유저면 매번 DB를 조회하겠지만, 중요한 문제는 아닌 거 같음
아 아니네 빈 리스트로 두면 되겠구나
알림의 내용이 중요치 않아 DB를 사용하지 않겠다고 했지만, 보안상의 이유나 재확인 같은 요구사항이 있으면 내용은 중요하지 않아도 알림이란 대상은 중요하게 처리해줘야 할 거 같음. 그냥 DB 쓰는 게 좋을 듯. 메모리에 모든 유저의 알림 내용을 저장하기에도 한계가 있을 거 같은데.
로그인 상태만 관리하라는거야
아 이거보고 중요한거 이제 생각남 나 t2micro 프리티어였지 메모리엄청 작고 반면에 rds는 20기가까지 공짜라서 db가야겠네 - dc App