목표
사용자가 학습 활동 중 주요 이벤트 발생 시 SSE(Server-Sent Events)를 통해 실시간으로 알림을 받을 수 있는 시스템 구축
배경
- 현재 배지 획득, 테스트 완료 등 이벤트 발생 시 사용자가 직접 새로고침해야 확인 가능
- 실시간 피드백으로 사용자 경험 및 학습 동기 개선 필요
기술 스택
- AWS Lambda Function URL (Response Streaming)
- AWS SNS/SQS
- SSE (Server-Sent Events)
범위
- 백엔드: 알림 발행/구독 인프라
- 프론트엔드: SSE 클라이언트 연동
하위 Stories
인프라 (필수)
알림 이벤트
알림 타입 정리
| Type |
트리거 |
설명 |
BADGE_EARNED |
배지 조건 달성 |
🏆 배지 획득 |
DAILY_COMPLETE |
일일 목표 완료 |
✅ 오늘 학습 완료 |
TEST_COMPLETE |
테스트 제출 |
📝 테스트 결과 |
NEWS_QUIZ_COMPLETE |
뉴스 퀴즈 제출 |
📰 퀴즈 결과 |
GAME_END |
게임 종료 |
🎮 게임 결과 |
GAME_STREAK |
연속 정답 |
🔥 N연속 정답! |
OPIC_COMPLETE |
OPIc 세션 완료 |
🎤 피드백 도착 |
STREAK_REMINDER |
스케줄러 (21시) |
⏰ 학습 리마인더 |
아키텍처
```
┌─────────────────────────────────────────────────────────┐
│ Event Sources │
├─────────────┬─────────────┬─────────────┬───────────────┤
│ Badge │ Daily │ Test/ │ Game │
│ Service │ Study │ Quiz │ Service │
└──────┬──────┴──────┬──────┴──────┬──────┴───────┬───────┘
│ │ │ │
└─────────────┴─────────────┴──────────────┘
│
▼
┌─────────────────┐
│ SNS Topic │
│ (Notification) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ SQS Queue │
│ (per message) │
└────────┬────────┘
│
▼
┌─────────────┐ ┌─────────────────┐
│ Frontend │◀───│ Lambda │
│ (Browser) │SSE │ (Streaming) │
└─────────────┘ └─────────────────┘
```
성공 지표
- 이벤트 발생 후 3초 이내 알림 수신
- 알림 전달 성공률 99% 이상
- 사용자 재방문율 10% 향상
예상 총 작업량
18 Story Points (약 2주)
목표
사용자가 학습 활동 중 주요 이벤트 발생 시 SSE(Server-Sent Events)를 통해 실시간으로 알림을 받을 수 있는 시스템 구축
배경
기술 스택
범위
하위 Stories
인프라 (필수)
알림 이벤트
알림 타입 정리
BADGE_EARNEDDAILY_COMPLETETEST_COMPLETENEWS_QUIZ_COMPLETEGAME_ENDGAME_STREAKOPIC_COMPLETESTREAK_REMINDER아키텍처
```
┌─────────────────────────────────────────────────────────┐
│ Event Sources │
├─────────────┬─────────────┬─────────────┬───────────────┤
│ Badge │ Daily │ Test/ │ Game │
│ Service │ Study │ Quiz │ Service │
└──────┬──────┴──────┬──────┴──────┬──────┴───────┬───────┘
│ │ │ │
└─────────────┴─────────────┴──────────────┘
│
▼
┌─────────────────┐
│ SNS Topic │
│ (Notification) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ SQS Queue │
│ (per message) │
└────────┬────────┘
│
▼
┌─────────────┐ ┌─────────────────┐
│ Frontend │◀───│ Lambda │
│ (Browser) │SSE │ (Streaming) │
└─────────────┘ └─────────────────┘
```
성공 지표
예상 총 작업량
18 Story Points (약 2주)