카카오 알림톡 + CRON

ID: f5ebc8ae-a57c-4589-ae3a-dad0b64edd25

높음 완료

## 목표
NotificationService에 카카오 알림톡 채널 추가 및 CRON 기반 알림 스케줄링

## 구현 내용
1. **카카오 알림톡 연동**
- KakaoNotificationSender 서비스 객체 생성
- 카카오 비즈니스 API 연동 (알림톡 템플릿)
- NotificationService.send_all에 kakao 채널 추가
- user_setting.kakao_enabled? 메서드 활용 (이미 존재)

2. **CRON 스케줄링**
- NotificationCronJob 확장 (config/recurring.yml 이미 설정됨)
- QT 리마인더 알림 (매일 설정 시간)
- 기도 체크 리마인더

## 완료 기준
- [ ] KakaoNotificationSender 서비스 + 테스트
- [ ] NotificationService에 kakao 채널 통합
- [ ] 알림톡 템플릿 관리 (QT 리마인더, 기도 리마인더)
- [ ] CRON job에서 사용자별 알림 시간 처리
- [ ] 카카오 API 키 환경변수 설정
- [ ] 실패 시 재시도 로직

## 관련 파일
- app/services/notification_service.rb
- app/jobs/notification_cron_job.rb
- config/recurring.yml
- app/models/user_setting.rb (kakao_enabled? 존재)

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: 팀리드
생성일: 2026년 03월 02일 11:59

활동 로그

  • 팀리드 팀 작업 완료 - 카카오 알림톡 + CRON

    2026년 03월 03일 06:05:05

    상세 보기

    ## 수정된 기능
    - **KakaoAlimtalkSender**: Net::HTTP 기반 카카오 알림톡 API 클라이언트 (QT/기도 템플릿, 타임아웃/에러 graceful 처리)
    - **NotificationService 통합**: send_all에 kakao 채널 추가 (send_kakao private 메서드)
    - **설정 UI 활성화**: 카카오 체크박스 disabled/준비 중 제거, 전화번호 입력 필드 추가
    - **Stimulus 토글**: kakao 체크 시 전화번호 필드 표시/숨김
    - **SettingsController**: phone 파라미터 처리 (User.phone 컬럼 활용)

    ## 해결된 문제
    - **에이전트 무단 변경 (3회째)**: Active Storage/avatar 관련 변경이 또 추가됨 → 전부 revert
    - **user.rb 반복 수정**: 에이전트가 checkout 후에도 다시 수정 → shutdown 요청 후 재 checkout

    ## 테스트 결과
    - 531 runs, 1279 assertions, 0 failures, 0 errors (kakao 테스트 16개 추가)

    ## 파일 변경 (8개)
    - 수정: settings_controller.rb, notification_methods_controller.js, notification_service.rb, settings/show.html.erb, 테스트 2개
    - 신규: kakao_alimtalk_sender.rb, kakao_alimtalk_sender_test.rb

    ## 배포 시 필요
    - ENV: KAKAO_ALIMTALK_API_KEY, KAKAO_SENDER_KEY

  • 팀리드 상태 변경: 진행 중 → 완료

    2026년 03월 03일 06:04:50

  • 팀리드 위임: kakao-frontend에게 '카카오 알림톡 프론트엔드 (설정 UI 활성화 + 전화번호 입력)' 작업 배정

    2026년 03월 03일 05:51:37

  • 팀리드 작업 시작 - 카카오 알림톡 + CRON

    2026년 03월 03일 05:50:01

    상세 보기

    ## 작업 계획
    - 목표: NotificationService에 카카오 알림톡 채널 추가, CRON은 이미 구현됨
    - 접근 방식: 2명 에이전트 (백엔드 + 프론트엔드) 분담

    ## 현재 알림 시스템 구조
    - NotificationService: push/email 2채널 → kakao 추가 예정
    - NotificationCronJob: 매시간 실행, 시간 일치 사용자에게 알림
    - UserSetting: notification_methods "push,email,kakao" 콤마 구분, kakao_enabled? 메서드 존재
    - Settings UI: 카카오 체크박스 비활성 ("준비 중") → 활성화 필요

    ## 구현 전략
    1. KakaoAlimtalkSender 서비스 (Net::HTTP 기반 API 클라이언트)
    2. NotificationService.send_kakao 메서드 추가
    3. 환경변수: KAKAO_ALIMTALK_API_KEY, KAKAO_SENDER_KEY
    4. Settings UI 카카오 체크박스 활성화
    5. 테스트 (API mock 기반)

    ## 현재 상태
    - 보드 현황: backlog 0 / todo 4 / in_progress 1 / review 2 / done 121

  • 팀리드 티켓 클레임 완료

    2026년 03월 03일 05:47:48

  • 팀리드 기능 계획 수립 - 카카오 알림톡 + CRON (Phase 1)

    2026년 03월 02일 12:00:50

    상세 보기

    ## 기능 개요
    - NotificationService에 카카오 알림톡 채널 추가, CRON 스케줄링

    ## 분석 결과
    - 영향 범위: services/, jobs/, models/user_setting.rb, config/recurring.yml
    - 기존 패턴: NotificationService.send_all 디스패치, kakao_enabled? 이미 존재
    - config/recurring.yml에 hourly job 설정 완료

    ## Phase 정보
    - **Phase 1** - QT 세션 수정과 병렬 진행 가능
    - 복잡도: complex (~8 파일)

    ## 리스크
    - 카카오 비즈니스 API 계정/템플릿 사전 준비 필요
    - 알림톡 발송 비용 발생