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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions