안녕하세요 이번 글은 알림 메시지를 구현하는 과정을 적은 글입니다.
알림 서비스
요즘은 앱을 많이 사용하기 때문에 Kusinsa앱을 이용하면은 상품 배달이 완료되었거나, 상품 재입고 알림을 신청하고 재입고 되었을 시 알림 메시지를 받을 수 있습니다.
그러나, 푸시 알림으로 끝나지 않고 아래의 사진과 같이 최근에 받았던 알림이나 소식을 볼 수 있는 기능이 필요했습니다.


요구사항
- 최근 30일 동안 받았던 알림만 보여주면 됩니다.
- 삭제되지 않아야 할 알림이 존재할 수도 있습니다 ex) 읽지 않은 알림
- 최근에 받은 알림은 시간의 내림차순으로 보여줘야 합니다
DB는 어떤 것을 사용할 것인가?
RDB랑 Nosql중에 저는 Nosql을 선택했습니다.
- 메시지 특성상 형식이 자주 바뀌므로 스키마를 자주 바꿔야 하는 대응에는 RDB보단 Nosql이 적합하다고 생각했습니다.
- 알림 메시지는 30일이나 7일까지만 보여주면 됩니다.
그래서 RDB를 사용한다면 데이터가 계속 저장된 상태로 존재하기 때문에 데이터가 많이 쌓인다면 조회 시에 성능적 문제가 나올 수 있습니다. 그래서 Nosql에 TTL을 이용하면 관리를 더 편리하게 할 수 있을 것이라고 생각했습니다
- 데이터 형식상 알림 데이터는 독립적입니다. 중복 저장 문제로 정합성을 관리해야 하는 비용은 없다고 생각했습니다
많이 쌓인 데이터를 RDB로 스케줄러를 돌려서 수동으로 지워주면 되는 것 아닌가요? 라는 생각을 가질 수 있습니다. 물론 스케줄러를 돌려서 처리하는 것은 가능합니다.