📱 슬립큐 사용자 참여도 향상 시스템 (User Engagement)
슬립큐 사용자에게 치료 과정 전반에 걸쳐 체계적이고 개인화된 카카오톡 알림을 발송하여 사용자 참여도와 치료 완료율을 높이는 시스템입니다.
🚀 빠른 시작
📖 문서 읽기 순서 (권장)
- 시스템 개요 - 전체 시스템 이해 및 아키텍처 개요
- Timeline 요구사항 - 사용자 여정별 참여도 향상 메시징 정책
- 도메인별 이벤트 설계 - 이벤트 드리븐 아키텍처 및 도메인 이벤트
- 시스템 아키텍처 - 상세 기술 아키텍처 및 구현 방식
- 구현 가이드라인 - 개발자를 위한 실무 구현 가이드
🔧 주요 기술 스택
인프라
- 스케줄링: Google Cloud Scheduler (Cloud Run Zero Scaling 최적화)
- 이벤트 처리: Google Cloud Pub/Sub
- 워크플로우: n8n (이벤트 구독 및 참여도 향상 메시징 발송)
- API 서버: dta-wide-api (NestJS)
참여도 향상 메시징 서비스
- 템플릿 관리: NHN Cloud Console (카카오톡 심의)
- 카카오톡 발송: NHN Cloud AlimTalk API
- SMS 대체: NHN Cloud SMS API
데이터 & 모니터링
- 데이터 저장: Firestore, BigQuery
- 캐싱 & 중복 방지: Redis
- 모니터링: Google Cloud Logging, Monitoring
🎯 핵심 특징
⚡ Cloud Run Zero Scaling 최적화
- 외부 스케줄링: GCP Scheduler로 100% 신뢰성 보장
- 자동 인스턴스 관리: Pub/Sub Push 구독으로 필요시에만 깨우기
- 비용 효율성: 평상시 인스턴스 비용 0원
🏗 표준 이벤트 아키텍처
- 도메인 분리: Sleep, User, Questionnaire, Agent Treatment Flow
- 이벤트 드리븐: 느슨한 결합으로 확장성 보장
- 중복 처리 방지: Redis 기반 멱등성 구현
📋 체계적인 참여도 향상 메시징
- 사용자 여정 기반: 42일 치료 과정에 맞춘 10가지 참여도 향상 메시지
- 개인화: 사용자별 맞춤 메시지 및 조건부 발송
- 다채널: 카카오톡 알림 → SMS 대체 발송
📊 사용자 참여도 향상 Timeline 개요
| 시점 | 메시지 종류 | 트리거 방식 |
|---|---|---|
| 처방 당일 | 최초 가입 안내 | 솔닥 API → 즉시 발송 |
| 가입 완료 | 회원가입 완료 | 앱 가입 → 즉시 발송 |
| 6일차, 20일차 | CRM Call 리마인드 | 수동 트리거 |
| 8,15,22,29,36일차 | RTIB 전날 알림 | GCP Scheduler (매일 9시) |
| 15일차, 29일차 | 설문 리마인드 | GCP Scheduler (매일 10시) |
| 36일차 | 치료 종료 경고 | GCP Scheduler (매일 10시) |
| 43일차+ | 최종 설문 리마인드 | GCP Scheduler (매주 월요일) |
🏃♂️ 개발 시작하기
1. 새로운 참여도 향상 메시지 추가하기 (기획자 주도 🎯)
# === 기획자 담당 ===
# 1단계: 메시지 기획 (발송 시점, 내용, 버튼 정의)
# 2단계: NHN Cloud Console에서 알림톡 템플릿 생성 및 심의
# 3단계: n8n 워크플로우에서 Template ID 매핑 추가 (GUI 클릭만!)
# 4단계: 테스트 및 활성화 (실시간 적용)
# === 개발자 담당 (1회만) ===
# 1단계: 도메인 이벤트 정의 (내부 + 크로스 도메인)
# 2단계: dta-wide-api에서 이벤트 발행 구현
# (스케줄러/Pub/Sub는 이미 구성 완료)
💡 혁신: 기획자가 n8n GUI에서 코드 수정 없이 메시지 관리!
🚀 효과: 새 메시지 추가 시간 며칠 → 몇 시간 단축!
2. 문제 해결 및 디버깅
# 이벤트 흐름 추적
gcloud logging read "resource.type=cloud_run_revision" --limit 100
# Pub/Sub 메시지 확인
gcloud pubsub topics list
gcloud pubsub subscriptions list
# Redis 중복 처리 상태 확인
redis-cli keys "*user-engagement*"
💡 팁: 사용자 참여도 향상 시스템은 표준 이벤트 아키텍처(
event-system.md)를 준수하므로, 기존 이벤트 시스템 패턴을 이해하면 더 쉽게 개발할 수 있습니다.