Playball Logo

Command Palette

Search for a command to run...

목차 열기

추천 알고리즘

추천 시스템은 블록 추천(Phase 1)좌석 배정(Phase 2) 두 단계로 나뉩니다. 사용자 온보딩 선호도를 기반으로 최적 블록을 추천하고, 선택 후 분산 락을 이용해 연석을 안전하게 배정합니다.


Phase 1 — 블록 추천

선호 블록(최대 10개)만 탐색하여 실제 N연석이 가능한 묶음 수를 계산하고, 취향 점수를 매깁니다.

취향 점수 계산 (최대 70점)

항목조건점수
뷰포인트 우선순위1순위 블록30점
뷰포인트 우선순위2순위 블록20점
뷰포인트 우선순위3순위 블록10점
응원구단 매칭경기 참가 구단 선호+25점
응원석 근접NEAR 선호 + cheerRank ≤ 3+15점
응원석 원거리FAR 선호 + cheerRank > 3+15점

정렬 기준

  1. 연석 수 차이 > 10 → 연석 개수 많은 순
  2. 연석 수 차이 ≤ 10 → 취향 점수 높은 순
  3. 동점 시 → 연석 개수 순

Phase 2 — 좌석 배정

사용자가 블록을 선택하면 Redis 분산 락을 걸고 연석 탐색을 시작합니다.

배정 우선순위

  1. 같은 행(row)의 연속 좌석 — 가장 앞 열, 통로에 가까운 좌석 우선
  2. 연석이 없는 경우 — 인접 2행에 걸친 준연석으로 fallback
  3. 준연석도 없는 경우 — 추천 좌석 없음 반환

배정된 좌석은 5분간 Hold 상태가 되며, 그 안에 결제를 완료해야 합니다. 만료 시 Hold가 자동 해제됩니다.