Skip to content

[ Notification ] 알림 발송·스케줄러·파일 업로드·챗봇 RAG 완성 #57

Description

@RosieOh

🧑‍💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요

💚 어떤 기능인가요?

API 와 DB 스키마까지 만들어 놓고 실제로는 동작하지 않던 기능들을 완성합니다.

1. 알림이 어디로도 발송되지 않음 — 채널(EMAIL/PUSH/SMS) 정의, NotificationPreference, deviceToken 저장, 템플릿 테이블이 모두 있는데 발송 코드가 없고 deliveryStatus("SENT") 가 하드코딩돼 있습니다.

2. 스케줄러 작업 0개 — Quartz·Batch 의존성만 있고 @Scheduled 도 Job 도 없습니다.

3. 파일 업로드 불가MultipartFile 이 전 코드베이스에 0곳입니다. HealthRecordAttachment 엔티티와 테이블은 있지만 바이너리를 올릴 경로가 없습니다.

4. 챗봇이 if-else 키워드 매칭 — 세션·이력·의도 분류 구조는 갖췄으나 응답이 고정 문자열입니다.

5. 정책 데이터 하드코딩 — 544줄 Java 에 정책이 박혀 있어 수정하려면 재배포해야 합니다.

✅ To Dos

  • NotificationSender 인터페이스 + 이메일/FCM/SMS 구현체, NotificationDispatcher 가 사용자 설정에 따라 분기, 전용 스레드풀로 비동기 발송
  • 스케줄러 3종 — 예방접종 D-7 알림, 예약 전날 리마인더, 만료 토큰 정리
  • FileStorageService 추상화(로컬 구현, S3 교체 가능) + multipart 업로드 API, 확장자·MIME·크기 검증 및 경로 조작 차단
  • Claude API + RAG — CareKnowledgeRetriever 가 DB 의 정책·시설을 검색해 근거로 제공, 키가 없으면 규칙 기반으로 폴백
  • 정책 관리자 CRUD 추가, 수정 시 캐시 무효화

FCM 자격증명·Claude API 키가 없으면 해당 기능은 비활성 상태로 동작합니다(로컬/CI 기동 보장). 운영 배포 시 환경변수 설정이 필요합니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions