# 🧑💻 오늘의 개발하면서 생긴 크고 작은 이슈사항을 기록해주세요 ## 💚 어떤 기능인가요? 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 - [x] `NotificationSender` 인터페이스 + 이메일/FCM/SMS 구현체, `NotificationDispatcher` 가 사용자 설정에 따라 분기, 전용 스레드풀로 비동기 발송 - [x] 스케줄러 3종 — 예방접종 D-7 알림, 예약 전날 리마인더, 만료 토큰 정리 - [x] `FileStorageService` 추상화(로컬 구현, S3 교체 가능) + multipart 업로드 API, 확장자·MIME·크기 검증 및 경로 조작 차단 - [x] Claude API + RAG — `CareKnowledgeRetriever` 가 DB 의 정책·시설을 검색해 근거로 제공, 키가 없으면 규칙 기반으로 폴백 - [x] 정책 관리자 CRUD 추가, 수정 시 캐시 무효화 > FCM 자격증명·Claude API 키가 없으면 해당 기능은 비활성 상태로 동작합니다(로컬/CI 기동 보장). 운영 배포 시 환경변수 설정이 필요합니다.
Activity
FEAT : 알림 발송 어댑터 추가로 실제 채널 전송 연결 (#57)
FEAT : 예방접종·예약 리마인더 및 토큰 정리 스케줄러 추가 (#57)
FEAT : 파일 저장소 추상화 및 건강기록 첨부 업로드 추가 (#57)
FEAT : 챗봇 Claude API 및 RAG 근거 검색 연동 (#57)
FEAT : 정책 관리자 CRUD 추가로 재배포 없는 수정 지원 (#57)
CHORE : FCM·Claude SDK 의존성 및 커버리지 게이트 조정 (#57)
[-]FEAT : 미완성 기능 완성 (알림 발송, 스케줄러, 파일 업로드, 챗봇 RAG)[/-][+][ Notification ] 알림 발송·스케줄러·파일 업로드·챗봇 RAG 완성[/+]FEAT : 알림 발송 어댑터 추가로 실제 채널 전송 연결 (#57)
FEAT : 예방접종·예약 리마인더 및 토큰 정리 스케줄러 추가 (#57)
FEAT : 파일 저장소 추상화 및 건강기록 첨부 업로드 추가 (#57)
FEAT : 챗봇 Claude API 및 RAG 근거 검색 연동 (#57)
FEAT : 정책 관리자 CRUD 추가로 재배포 없는 수정 지원 (#57)
CHORE : FCM·Claude SDK 의존성 및 커버리지 게이트 조정 (#57)