ADR-DS-030_관심상점 및 관심업종
## 1. 기본 정보
- ADR ID: ADR-DS-030
- 제목: 관심상점 및 관심업종 도메인 모델
- 상태: Proposed
- 작성일: 2026-03-06
- 작성자: Sunyoul Yoon
- 관련 ADR: ADR-DS-020 (슬롯 사용 확정 전략)
2. 배경 (Context)
본 플랫폼의 핵심 기능은 현재 위치 기반으로 즉시 사용 가능한 타임슬롯을 발견하는 것이다. 사용자는 앱을 열어 근처에서 사용할 수 있는 슬롯을 확인하고 즉시 사용한다.
그러나 사용자가 앱을 열지 않는 상황에서는 슬롯 발견이 어렵다. 이를 보완하기 위해 사용자가 특정 상점 또는 업종을 구독하고 관련 슬롯이 발생했을 때 알림을 받을 수 있는 기능이 필요하다.
이 기능은 플랫폼의 핵심 탐색 구조를 대체하는 것이 아니라 리텐션을 보조하는 장치로 사용된다.
따라서 관심상점과 관심업종은 다음 목적을 가진다.
- 사용자가 선호하는 상점 또는 업종을 구독할 수 있도록 한다.
- 해당 조건에 맞는 슬롯이 발생했을 때 알림 시스템과 연동할 수 있도록 한다.
본 ADR에서는 관심상점 및 관심업종의 도메인 모델 구조를 정의한다.
3. 결정 (Decision)
관심상점 및 관심업종 기능은 다음 도메인 모델로 구현한다.
관심상점
사용자는 특정 상점을 관심상점으로 등록할 수 있다.
도메인 모델:
user_favorite_store필드:
- user_id
- store_id
- created_at
규칙:
- 동일 사용자와 상점 조합은 하나만 존재한다.
- 관심상점 등록은 상점 알림 시스템과 연동될 수 있다.
- 관심상점 등록은 슬롯 노출 로직에는 직접적인 영향을 주지 않는다.
관심업종
사용자는 특정 업종을 관심업종으로 등록할 수 있다.
도메인 모델:
user_interest_category필드:
- user_id
- category_id
- created_at
규칙:
- 동일 사용자와 업종 조합은 하나만 존재한다.
- 관심업종 등록은 업종 기반 알림 시스템과 연동될 수 있다.
- 관심업종 등록은 슬롯 노출 로직에는 직접적인 영향을 주지 않는다.
도메인 역할
관심상점과 관심업종은 다음 역할을 가진다.
- 알림 시스템의 구독 정보로 사용된다.
- 사용자 선호 데이터를 저장한다.
이 데이터는 핵심 슬롯 탐색 로직의 필수 조건으로 사용되지 않는다.
4. 대안 (Alternatives Considered)
대안 A — 관심상점만 제공
설명 사용자가 특정 상점만 구독할 수 있도록 한다.
장점
- 구조 단순
- 데이터 모델 단순
단점
- 사용자가 새로운 상점을 발견하기 어렵다.
- 특정 상점 의존도가 높아진다.
채택하지 않은 이유 사용자는 특정 상점보다 업종 중심으로 행동하는 경우가 많기 때문이다.
대안 B — 관심업종만 제공
설명 사용자가 업종만 구독할 수 있도록 한다.
장점
- 넓은 범위의 슬롯 알림 가능
- 신규 상점 발견 가능
단점
- 특정 상점을 반복 이용하는 사용자 요구를 충족하지 못한다.
채택하지 않은 이유 특정 상점에 대한 반복 방문 패턴을 반영하기 어렵기 때문이다.
대안 C — 개인화 추천 시스템 사용
설명 사용자 행동 데이터를 기반으로 자동 추천을 수행한다.
장점
- 개인화 가능
- 자동 추천 가능
단점
- 알고리즘 복잡도 증가
- 초기 데이터 부족 문제
채택하지 않은 이유 본 플랫폼의 초기 설계 원칙은 단순한 조건 기반 매칭이기 때문이다.
5. 결과 (Consequences)
긍정적 결과
- 사용자 선호 데이터를 단순한 구조로 저장할 수 있다.
- 알림 시스템과 자연스럽게 연동할 수 있다.
- 슬롯 탐색 로직과 분리된 보조 기능으로 유지된다.
부정적 결과
- 관심상점과 관심업종이 많아질 경우 알림 관리 정책이 필요하다.
- 사용자 구독 데이터 증가로 알림 트래픽이 증가할 수 있다.
6. 영향 범위 (Impact)
기술 구조
- 관심상점 및 관심업종 테이블 추가
- 알림 시스템과 데이터 연동
UX
- 사용자 설정에서 관심상점 및 관심업종 관리 필요
운영 정책
- 알림 빈도 제한 정책 필요
확장성
- 향후 개인화 추천 시스템 도입 시 사용자 선호 데이터로 활용 가능
7. 재검토 조건 (Revisit Conditions)
다음 조건 중 하나가 발생하면 본 결정을 재검토한다.
- 관심상점 및 관심업종 알림 사용률이 낮은 경우
- 알림 트래픽이 운영 비용에 영향을 미치는 경우
- 개인화 추천 시스템 도입이 필요한 경우
- DAU 증가로 인해 사용자 선호 데이터 활용 요구가 증가하는 경우
Template v2 Addendum
In Scope
- Favorite store/category domain model and trigger criteria
Out of Scope
- Push transport implementation and recommendation ranking
Boundaries
- Domain model ownership is DS-030. Channel operation belongs to UX/Product policy.
Source of Truth (SoT)
- Favorites domain: ADR-DS-030.
Validation
- Detect state/constraint violations via tests and batch checks.
- Recovery and reprocessing must be idempotent.
Revisit Conditions
- KPI threshold breach (reservation failure, expiry ratio, payment confirmation failure)
- External dependency change (PG, regulation, location API)