본문으로 건너뛰기

📱 슬립큐 사용자 참여도 향상 시스템 (User Engagement)

슬립큐 사용자에게 치료 과정 전반에 걸쳐 체계적이고 개인화된 카카오톡 알림을 발송하여 사용자 참여도와 치료 완료율을 높이는 시스템입니다.

🚀 빠른 시작

📖 문서 읽기 순서 (권장)

  1. 시스템 개요 - 전체 시스템 이해 및 아키텍처 개요
  2. Timeline 요구사항 - 사용자 여정별 참여도 향상 메시징 정책
  3. 도메인별 이벤트 설계 - 이벤트 드리븐 아키텍처 및 도메인 이벤트
  4. 시스템 아키텍처 - 상세 기술 아키텍처 및 구현 방식
  5. 구현 가이드라인 - 개발자를 위한 실무 구현 가이드

🔧 주요 기술 스택

인프라

  • 스케줄링: 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)를 준수하므로, 기존 이벤트 시스템 패턴을 이해하면 더 쉽게 개발할 수 있습니다.