Skip to content

Notee notification

머환임 edited this page Apr 3, 2023 · 4 revisions

Notee 소개

알림 (Notification) 행위를 플랫폼화한다.

용어 정의

알림 발생 방식

  • Self : 서비스 관리자가 별도의 알림 요청없이도 Notification 에서 자체적으로 알림 발생
  • Passive : 서비스 관리자 혹은 사용자가 특정 행위를 통해 Notification 의 Api 를 호출해 알림 발생

NotificationMethod : 알림 방식

  • Cycle : 주기 알림
    • 매주 목요일 20:00 에 알림 전송
  • Topic : 주제 알림
    • Topic 이 작성자 일 경우
      • 작성자가 글을 쓰면 해당 작성자 topic 을 구독하고있는 구독자들에게 일괄 알림 전송
    • Topic 이 광고 수신 동의자일경우
      • 서비스 관리자가 Api call 을 통해 광고 수신 동의자들에게 일괄 광고 알림 전송
  • Single : 단독 알림
    • 특정 사용자에게 단독으로 알림 전송

NotificationTemplate : 알림 템플릿 (정보) 알림 정보는 플랫폼 관리자에 별도로 신청해야한다.

  • 서비스 정보
    • ex) Smeem
  • 알림 방식 (NotificationMethod)
    • ex) CYCLE
  • 알림 유형 (NotificationType)
    • ex) TRAINNING
  • 알림 제목
    • ex) 일기 트레이닝 알림
  • 알림 내용
    • ex) 일기를 작성할 시간입니다!

Api

사용자 등록

POST /v1/push/users

  • 멱등성을 보장하지 않는다.
    • 이미 등록된 서비스의 사용자에 대해 재등록 요청이 있는 경우, 409 에러를 발생한다.

header

  • serviceToken : String Mandatory
    • 사용 서비스 고유 토큰
  • userId : String Mandatory
    • 서비스 사용자의 고유 id

body

Field Type Mandatory description
username String false username 이 null 이면
이후 template 을 활용한 알림을 사용하지 못합니다.
deviceToken String true 최초 등록될 사용자의 기기 토큰 값
service String true 서비스 고유 타입
{
  "username" : "대환임",
  "deviceToken" : "abc-device-aos-token-1234", 
  "service" : "SMEEM"
}

디바이스 추가 등록

POST /v1/push/users/{userId}/

Cycle Notification

  • 필요 값, Mandatory
    • Service, UserId, NotificationMethod, NotificationType, 시간 정보

주기 알림 등록

  • 특정 서비스가 등록한 알림 정보에 맞춰 특정 사용자가 알림 등록
    • ex) Smeme 의 사용자 "user-123" 이 Smeme 의 CYCLE 알림 방식의 TRAINNING 알림 유형을 매주 목요일 20:00 로 등록

주기 알림 제거

  • 특정 서비스가 등록한 알림 정보에 맞춰 특정 사용자가 등록한 알림 제거
    • ex) Smeme 의 사용자 "user-123" 이 Smeme 의 CYCLE 알림 방식의 TRAINNING 알림 유형을 취소

Topic Notification

  • 필요 값, Mandatory

    • Service, UserId, NotificationMethod, NotificationType, Target Topic 정보
  • 특정 서비스가 등록한 알림 정보에 맞춰 특정 사용자가 알림 등록

    • ex) Smeme 의 사용자 "user-123" 이 Smeme 의 TOPIC 알림의 FOLLOWING 알림 유형을 Target Topic에 대해 구독
  • 특정 서비스가 등록한 알림 정보에 맞춰 특정 사용자가 알림 취소

    • ex) Smeme 의 사용자 "user-123" 이 Smeme 의 TOPIC 알림의 FOLLOWING 알림 유형중 Target Topic 에 대해 구독 취소

Single Notification

사용자

사용자 등록

  • 최소 1 device 등록 필요

사용자 제거

  • 모든 등록된 device 제거

Device

디바이스 변경 (replace)

  • 최소 1 device per request
  • 멱등성 보장

디바이스 추가 등록 (append)

  • 멱등성 보장

디바이스 제거

  • 최소 1 device per user 유지
  • 멱등성 보장

Topic

Executor

TBD

적용 방식

Mandatory

  • header
    • serviceToken
      • 요청 서비스의 플랫폼 사용 인증 토큰
    • userId
      • 요청자 구분자

설계

metadata on MySQL

TBD