뉴스레터 발송, 구독자 관리, 스케줄 모니터링을 위한 관리자 안내
NewsLetterPlatform 관리자 대시보드는 멀티테넌트 뉴스레터 서비스의 전체 운영 현황을 한눈에 파악하고, 구독자 관리, 수동 발송, 발송 이력 조회 등 핵심 관리 기능을 제공합니다.
전체 테넌트 구독자 수, 오늘 발송 현황, 성공률, 스케줄러 상태를 한 화면에서 확인합니다.
테넌트별 구독자 목록 조회, 검색, 추가, 활성/비활성 전환, CSV 내보내기를 지원합니다.
뉴스레터 미리보기, 테스트 발송, 수동 데이터 수집 및 일괄 발송을 실행합니다.
날짜, 상태, 테넌트별 필터링과 7일 요약 차트로 발송 결과를 추적합니다.
일일/주간/월간 뉴스레터 자동 발송 스케줄 설정과 동작 상태를 확인합니다.
전체 테넌트의 발송 이력을 하나의 화면에서 통합 조회하고 필터링합니다.
/admin/login 페이지에서 관리자 비밀번호 또는 Google Sign-In으로 로그인합니다.
/admin/* 경로는 인증이 필요합니다. 미인증 시 자동으로 로그인 페이지로 이동합니다.
/admin)전체 테넌트의 현황을 요약합니다. 테넌트별 구독자 수, 오늘 발송 건수, 성공률, 최근 오류 목록을 확인할 수 있습니다.
/admin/{tenant}/subscribers)테넌트별 구독자 목록을 조회합니다. 이메일/이름 검색, 활성/전체 필터, 신규 구독자 추가, 활성/비활성 토글, CSV 내보내기 기능을 제공합니다.
/admin/{tenant}/send)일일/주간/월간 뉴스레터 미리보기와 테스트 발송을 실행합니다. 데이터 수집(Collect)과 전체 발송(Send) 버튼으로 수동 운영이 가능합니다.
/admin/{tenant}/history)테넌트별 발송 결과를 날짜, 성공/실패 상태로 필터링합니다. 최근 7일 요약 테이블이 상단에 표시됩니다.
/admin/history)전체 테넌트의 발송 이력을 하나의 화면에서 통합 조회합니다. 테넌트 드롭다운으로 필터링할 수 있습니다.
/admin/scheduler)일일, 주간, 월간 뉴스레터 발송 스케줄 구성과 현재 동작 상태를 모니터링합니다.
AllergyInsight 일일 뉴스레터의 [오늘의 주요 뉴스] 섹션은 AllergyInsight Backend의 공개 API를 통해 최신 뉴스만 수집합니다.
GET /api/public/analytics/news/recent?days=1&max_age_days=2&limit=10
| 항목 | 설명 |
|---|---|
| API 엔드포인트 | /api/public/analytics/news/recent (공개, 인증 불필요) |
| 필터링 | LLM 분석 완료(is_processed) + 관련성 확인(is_relevant) 뉴스만 포함 |
| 신선도 | max_age_days=2 — 발행일 기준 2일 이내 뉴스만 수집 |
| 정렬 | 발행일 최신순(published_at DESC), 중요도는 2차 정렬 |
| 최대 건수 | 10건 (템플릿에서 상위 3건 표시) |
| 뉴스 없는 날 | "오늘은 새로운 알러지 관련 뉴스가 없습니다" 안내 표시 |
논문은 /api/papers(공개 API)에서 수집합니다. 뉴스 통계는 /api/admin/news/stats(인증 필요)에서 수집하며, 통계 API 실패 시에도 뉴스와 논문 수집 결과는 정상 발송됩니다.
EduFit 일일 뉴스레터는 EduFit Backend API에서 사전 렌더링된 HTML을 직접 수신하여 발송합니다.
수동 발송(Send) 실행 시 현재 활성 구독자 전원에게 뉴스레터가 발송됩니다. 테스트 발송으로 먼저 내용을 확인한 후 전체 발송하는 것을 권장합니다.
관리자 비밀번호가 유출되지 않도록 주의하세요. 공용 PC에서 작업 후에는 반드시 로그아웃하세요.
.env 파일에서 ADMIN_PASSWORD 값을 변경한 후 서비스를 재시작합니다.docker logs newsletter-scheduler로 확인할 수 있습니다./admin/{tenant}/send) 페이지에서 Send 버튼을 클릭하면 활성 구독자 전원에게 다시 발송됩니다. 특정 구독자에게만 재발송하려면 테스트 발송 기능을 활용하세요./admin/history)에서 테넌트 드롭다운을 선택한 후 Filter 버튼을 클릭합니다./api/public/analytics/news/recent API를 사용하며, 발행일 기준 2일 이내의 분석 완료된 뉴스만 수집합니다. 반복이 계속되면 Backend의 뉴스 수집/분석 상태를 확인하세요.