개요
사용자가 관심 있는 키워드를 미리 등록해두면, 해당 키워드와 일치하는 상품이 내 주변(위치 기반)에 새로 등록될 때 알림을 받는 기능입니다.
소분 거래 특성상 원하는 상품이 항상 올라와 있지 않기 때문에, "찾던 상품이 근처에 떴을 때" 즉시 알려주면 재방문율과 거래 성사율을 높일 수 있습니다.
배경 / 재사용 가능한 기존 자산
- ✅
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 미존재 → 인앱 알림으로 우선 구현)
- 카테고리/가격 조건 필터
완료 조건
개요
사용자가 관심 있는 키워드를 미리 등록해두면, 해당 키워드와 일치하는 상품이 내 주변(위치 기반)에 새로 등록될 때 알림을 받는 기능입니다.
소분 거래 특성상 원하는 상품이 항상 올라와 있지 않기 때문에, "찾던 상품이 근처에 떴을 때" 즉시 알려주면 재방문율과 거래 성사율을 높일 수 있습니다.
배경 / 재사용 가능한 기존 자산
Notification/NotificationHistory(인앱 알림 피드) 도메인 및 조회 APIRedisUtil,MEMBER_KEY)SearchHistory) — 키워드 입력 UX 재사용작업 범위
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) 시점에 훅 추가MEMBER_KEY)만 필터Notification+NotificationHistory생성 (인앱 알림 피드)향후 확장 (out of scope)
Member에 fcmToken 미존재 → 인앱 알림으로 우선 구현)완료 조건
/me/notifications)에 노출 확인