Skip to content

[feat] 채팅방 카테고리 기반 질문 추천 기능 및 관리자 페이지 개선 #389

@sgo722

Description

@sgo722

문제 정의

채팅방에서 "무슨 말을 꺼내야 할지" 막히는 순간을 줄이고, 카테고리 기반 질문 추천으로 대화 시작/유지 허들을 낮추는 기능이 필요합니다.

  • 현재: 랜덤 질문 추천 (카테고리/그룹 구분 없음)
  • 목표: 카테고리 선택 → A/B 그룹 정책에 따른 질문 추천

액션 아이템

백엔드 - 도메인 모델

  • QuestionGroup Enum 생성 (A, B, RANDOM)
  • GroupPolicy Enum 생성 (NONE, A_THEN_B, RANDOM)
  • QuestionCategory Enum 수정 (usedInSignup, usedInChat, chatGroupPolicy 속성 추가)
  • Question 엔티티에 questionGroup 필드 추가
  • Flyway 마이그레이션 작성

백엔드 - Repository & Service

  • QuestionJpaRepository 쿼리 추가 (카테고리/그룹별 미사용 질문 조회)
  • QuestionService 질문 추천 로직 구현 (A그룹 우선 → B그룹)
  • QuestionRecommendationResult sealed class 생성

백엔드 - Strategy 패턴 (버전 호환성)

  • QuestionRecommendStrategy 인터페이스 생성
  • CategoryBasedQuestionStrategy 구현 (1.3.0+)
  • LegacyRandomQuestionStrategy 구현 (1.3.0 미만)
  • QuestionRecommendStrategyResolver 생성

백엔드 - Controller & DTO

  • QuestionRecommendRequest/Response DTO 생성
  • ChatController 질문 추천 API 추가 (X-App-Version 헤더 처리)

관리자 페이지

  • questionList.html 필터 개편 (카테고리/그룹/상태)
  • questionForm.html 등록 폼 개편 (그룹 선택 추가)
  • questionEditForm.html 수정 폼 개편

내용

관련 문서

  • docs/question/CHAT_QUESTION_RECOMMENDATION_PLAN.md
  • docs/question/QUESTION_DUAL_PURPOSE_PLAN.md

버전 정책

  • 1.3.0 이상: 카테고리 기반 질문 추천 (바텀시트 UI)
  • 1.3.0 미만: 기존 랜덤 질문 추천 유지

카테고리 설계 (방안 B)

  • VALUES: 회원가입 + 채팅방 양쪽 사용 (A→B 그룹 정책)
  • 회원가입 API: 그룹 무시, 모든 질문 반환
  • 채팅방 API: A그룹 우선 → B그룹 순서로 추천

Metadata

Metadata

Assignees

No one assigned

    Labels

    Feature새로운 기능 추가입니다.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions