λλ©μΈμμ λ°μν μ΄λ²€νΈλ₯Ό μ‘°ν©νμ¬ μ μ μκ² μλ¦Ό λ°μ‘
λ©μΈμ§ DB μ μ₯ λ° μ μ μκ² μ μ‘. μ€ν¨ μ μ¬μλ
notification
βββ application
β βββ dto
β β βββ NotificationMessageDto.java
β β βββ NotificationRequestDto.java
β β βββ NotificationResponseDto.java
β βββ fcm
β β βββ dto
β β β βββ FcmCreateRequestDto.java
β β β βββ FcmDeleteRequestDto.java
β β β βββ FcmMessageDto.java
β β βββ sender
β β β βββ AndroidFcmSender.java
β β β βββ FcmSender.java
β β β βββ IosFcmSender.java
β β β βββ WebFcmSender.java
β β βββ FcmService.java
β β βββ FcmServiceImpl.java
β βββ redis
β β βββ NotificationRedisService.java
β βββ sse
β β βββ dto
β β β βββ SseMessageDto.java
β β βββ SseService.java
β β βββ SseServiceImpl.java
β βββ NotificationHandler.java
β βββ NotificationProvider.java
β βββ NotificationService.java
β βββ NotificationServiceImpl.java
βββ domain
β βββ FcmToken.java
β βββ FcmTokenRepository.java
β βββ Notification.java
β βββ NotificationRepository.java
βββ enums
β βββ NotificationType.java
β βββ PlatformType.java
β βββ SendStatus.java
β βββ UuidStatus.java
βββ event
β βββ rabbitmq
β βββ config
β β βββ NotificationRabbitConfig.java
β βββ consumer
β β βββ NotificationConsumer.java
β βββ producer
β βββ NotificationRetryProducer.java
βββ infra
β βββ fcm
β β βββ FcmTokenJpaRepository.java
β β βββ FcmTokenRepositoryImpl.java
β βββ redis
β β βββ NotificationRedisRepository.java
β βββ NotificationJpaRepository.java
β βββ NotificationRepositoryImpl.java
βββ presentation
βββ fcm
β βββ FcmController.java
βββ sse
β βββ SseController.java
βββ NotificationController.java
μλ¦Ό λλ©μΈμ μλΉμ€ κ³μΈ΅. μλ¦Ό μ λ¬ λ°©μμ λ΄λΉνλ μΈλΆ λͺ¨λλ‘ λλ¨.
ν΄λμ€ | μν |
---|---|
FcmService |
Firebase Cloud Messaging(FCM)μ ν΅ν νΈμ μλ¦Ό λ°μ‘ λ‘μ§ κ΅¬ν. |
λ¨λ§ ν ν° μ ν¨μ± κ²μ¦, λ°μ‘ μ€ν¨ μ μλ¬ μ²λ¦¬ ν¬ν¨ | |
FcmSender |
νλ«νΌ(Android, iOS, Web λ±)μ λ°λΌ FCM λ©μμ§λ₯Ό μ μ‘ |
SseService |
Server-Sent Events(SSE) κΈ°λ° μ€μκ° μλ¦Ό μ μ‘ μλΉμ€. |
ν΄λΌμ΄μΈνΈ μ°κ²° κ΄λ¦¬ λ° μ΄λ²€νΈ λ°μ‘ μ²λ¦¬ | |
NotificationRedisService |
Redis λ°μ΄ν° μ‘°ν λ° μ μ₯ κ΄λ ¨ λΉμ¦λμ€ λ‘μ§ |
UUID μ€λ³΅ κ²μ¬ μ²λ¦¬ | |
NotificationHandler |
MQ Consumer λ±μμ λ€μ΄μ¨ μλ¦Ό μ΄λ²€νΈλ₯Ό λ°μ λΆκΈ° μ²λ¦¬ |
NotificationProvider |
μλ¦Ό λ©μμ§ λΆλ¦¬/μ‘°ν© λ° λ°μ‘ μ±λ(FCM/SSE λ±) μ ν |
NotificationService |
μλ¦Ό λΉμ¦λμ€ λ‘μ§ μ§μ μ . λ°μ‘ λμ μ‘°ν, λ°μ‘ μ±λ κ²°μ , μ μ₯μ μ°λ μ²λ¦¬ |