Skip to content

feat: 키워드 알림 기능 (관심 키워드 상품 근처 등록 시 알림) #17

Description

@chaeyoungeee

개요

사용자가 관심 있는 키워드를 미리 등록해두면, 해당 키워드와 일치하는 상품이 내 주변(위치 기반)에 새로 등록될 때 알림을 받는 기능입니다.

소분 거래 특성상 원하는 상품이 항상 올라와 있지 않기 때문에, "찾던 상품이 근처에 떴을 때" 즉시 알려주면 재방문율과 거래 성사율을 높일 수 있습니다.

배경 / 재사용 가능한 기존 자산

  • Notification / NotificationHistory (인앱 알림 피드) 도메인 및 조회 API
  • ✅ Redis GEO 기반 위치 검색 (RedisUtil, MEMBER_KEY)
  • ✅ 검색 기록(SearchHistory) — 키워드 입력 UX 재사용
  • ✅ UseCase 애플리케이션 레이어 패턴

작업 범위

1. 키워드 구독 CRUD

  • KeywordNotification 엔티티 (member + keyword)
  • POST /api/v1/member/me/keywords — 키워드 등록
  • GET /api/v1/member/me/keywords — 내 키워드 목록 조회
  • DELETE /api/v1/member/me/keywords/{id} — 키워드 삭제
  • 검증: 공백 불가, 중복 불가, 회원당 최대 개수 제한, 본인 소유만 삭제

2. 신규 상품 등록 시 매칭 알림

  • 상품 등록(SaveGoodsUseCase) 시점에 훅 추가
  • 등록된 상품명과 일치하는 키워드를 구독한 회원 조회
  • 그중 상품 위치 반경 내에 있는 회원(Redis GEO, MEMBER_KEY)만 필터
  • 판매자 본인 제외 / 회원 중복 제거
  • 매칭된 회원에게 Notification + NotificationHistory 생성 (인앱 알림 피드)
  • 알림 생성 실패가 상품 등록 자체를 막지 않도록 방어 처리

향후 확장 (out of scope)

  • FCM 푸시 발송 연동 (현재 Member에 fcmToken 미존재 → 인앱 알림으로 우선 구현)
  • 카테고리/가격 조건 필터

완료 조건

  • 키워드 등록/조회/삭제 API 동작
  • 신규 상품 등록 시 매칭+근처 회원에게 알림 생성
  • 기존 알림 조회 API(/me/notifications)에 노출 확인
  • 빌드 및 테스트 통과

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions