Skip to content

Comments

[feature/44-favorite-category-preference] - 찜 기반 카테고리 성향 분석 기능 추가#45

Merged
Parkchanyoung0710 merged 2 commits intodevelopfrom
feature/favorite-category-preference
Feb 9, 2026
Merged

[feature/44-favorite-category-preference] - 찜 기반 카테고리 성향 분석 기능 추가#45
Parkchanyoung0710 merged 2 commits intodevelopfrom
feature/favorite-category-preference

Conversation

@Parkchanyoung0710
Copy link
Contributor

@Parkchanyoung0710 Parkchanyoung0710 commented Feb 9, 2026

개요

  • 사용자의 찜하기(favorite) 데이터를 기반으로 메뉴 카테고리 성향을 분석하고 요약 정보를 제공하는 기능을 추가합니다.

구현 내용

  • 카테고리 성향 분석 유틸 추가
    • analyzeCategoryPreference
    • 상태(PreferenceStatus), 상위 카테고리, 분포(%), 요약 문장 반환
  • 한글 조사 처리 유틸 포함
    • 을/를, 과/와 자동 처리
  • 찜 데이터 조회 시
    • populate + lean 환경에서 명시적 타입 지정
    • MenuCategory enum 기반 필터링

테스트

  1. 찜 0개 → EMPTY 상태 및 안내 문구 확인
  2. 찜 1개 → HINT 상태, 과장 없는 요약 문구 확인
  3. 찜 2개 → WEAK 상태, 분포 % 노출 확인
  4. 찜 3개 이상 → CONFIDENT 상태, 정상 분포/요약 확인
  5. 동률 카테고리 → 공동 선호 처리 확인

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능
    • 사용자의 즐겨찾기 데이터를 분석해 음식 카테고리 기반의 취향 선호도를 계산하고 요약을 제공하는 분석 기능을 추가했습니다.
    • 사용자가 본인의 현재 선호도(요약, 상위 카테고리, 분포 등)를 조회할 수 있는 공개 API 엔드포인트를 추가했습니다.

@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

📝 Walkthrough

Walkthrough

사용자 즐겨찾기 카테고리 데이터를 수집하고 빈도 기반으로 선호도를 분석하는 기능을 추가했습니다. FavoritesController에 새 엔드포인트가 생기고, FavoritesService와 새로운 category-preference 모듈이 선호도 분석을 수행합니다.

Changes

Cohort / File(s) Summary
선호도 엔드포인트
src/favorites/controller/favorite.controller.ts
GET /favorites/preference 엔드포인트 추가: 요청 토큰을 추출해 favoritesService.getPreference(token) 결과를 반환하고 표준 no-cache 헤더를 적용함.
선호도 서비스 로직
src/favorites/service/favorites.service.ts
getPreference(accessToken: string) 메서드 추가: 토큰 검증 후 사용자의 즐겨찾기(메뉴 + 카테고리)를 조회하여 카테고리 목록을 수집하고 분석기 호출.
카테고리 선호도 분석 모듈
src/menus/service/category-preference.ts
새 파일 추가: analyzeCategoryPreference(categories) 및 관련 타입(PreferenceStatus, PreferenceResult) 구현. 빈도 기반 top 카테고리, 상태 결정(HINT/WEAK/CONFIDENT/EMPTY), 분포 계산 및 한글 요약 생성 로직 포함.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant Controller as FavoritesController
    participant Service as FavoritesService
    participant Analyzer as CategoryPreference
    rect rgba(135,206,250,0.5)
    Client->>Controller: GET /favorites/preference
    end
    Controller->>Controller: 토큰 추출
    Controller->>Service: getPreference(token)
    rect rgba(144,238,144,0.5)
    Service->>Service: 토큰 검증
    Service->>Service: 사용자 즐겨찾기 조회 (메뉴 + 카테고리)
    Service->>Analyzer: analyzeCategoryPreference(categories)
    end
    rect rgba(255,182,193,0.5)
    Analyzer->>Analyzer: 카테고리 빈도 계산 및 정렬
    Analyzer->>Analyzer: 상태 결정 및 분포 계산
    Analyzer->>Analyzer: 한글 요약 생성
    Analyzer-->>Service: PreferenceResult
    end
    Service-->>Controller: PreferenceResult
    Controller-->>Client: 200 + 선호도 데이터
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

토끼의 축시

🐰 카테고리 춤추며 숫자 세고,
맛의 흔적 찾아 길을 뚫네.
토큰 따라 모인 작은 목록들,
분석해 말하네 — "이런 맛이로구나!"


Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

@Parkchanyoung0710 Parkchanyoung0710 changed the title [feature/favorite-category-preference] - 찜 기반 카테고리 성향 분석 기능 추가 [feature/44-favorite-category-preference] - 찜 기반 카테고리 성향 분석 기능 추가 Feb 9, 2026
@ramong26 ramong26 requested review from Copilot and removed request for ramong26 February 9, 2026 11:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

사용자의 찜(favorite) 데이터를 기반으로 메뉴 카테고리 선호도를 분석해 요약/분포를 반환하고, 이를 조회하는 API 엔드포인트를 추가하는 PR입니다.

Changes:

  • 카테고리 선호도 분석 유틸(analyzeCategoryPreference) 및 한글 조사 처리 로직 추가
  • FavoritesService에 선호도 분석 조회 로직 추가(찜 목록 populate+lean 후 카테고리 추출)
  • GET /favorites/preference 엔드포인트 추가 및 캐시 비활성 헤더 설정

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/menus/service/category-preference.ts 찜 카테고리 배열을 입력으로 선호 상태/상위 카테고리/분포/요약문 생성 유틸 추가
src/favorites/service/favorites.service.ts 사용자 찜을 조회해 카테고리를 추출하고 분석 유틸을 호출하는 서비스 메서드 추가
src/favorites/controller/favorite.controller.ts 찜 기반 선호도 분석 조회 API 엔드포인트 추가

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Collaborator

@ramong26 ramong26 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨어요!!

@Parkchanyoung0710 Parkchanyoung0710 merged commit 205e688 into develop Feb 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feature/44-favorite-category-preference] - 찜 기반 카테고리 성향 분석

2 participants