마니또_매칭_imp - 100-hours-a-week/12-marong-Wiki GitHub Wiki

성향 기반 최적 매칭을 통한 마니또-마니띠 순환 구조

A → B → C → A 의 순환구조로, 각 참여자는 동시에 마니또와 마니띠 역할을 수행

  • 마니띠: 미션수행을 하는 사람
  • 마니또: 미션 수행을 당하는 사람

초기 매칭 Flow

  • 기존 구조: 과거 매칭 기록 기반의 단방향 매칭
  • 매칭 방향: 마니또 → 마니띠 (단방향)

문제 1. 단방향 매칭 → 순환구조 매칭

문제 개요

  • 단방향 매칭의 한계
    • 사용자는 오직 마니또이거나 마니띠로만 역할을 수행
  • 마니띠는 미션을 받기만 하고, 아무런 행동을 하지 않게 됨
    • 일주일이 무의미하게 지나가는 경우 발생 → 참여도 하락

발견한 개선 포인트

나의 Action (개선 과정)

순서 내용
1 순환구조 방식 설계 및 알고리즘 조사
2 Google OR Tools 방식 채택 및 적용
3 예외처리: 그룹 인원이 3명 이상인 경우에만 매칭 수행 등
4 순환 구조 매칭 시뮬레이션 실행 및 적용
문제 2. 랜덤 매칭 → 개인화된 매칭

문제 개요

  • 과거에는 과거 매칭 기록만을 기반으로 무작위 매칭이 이루어짐
  • 적극적인 유저와 유령 유저가 엇갈려 매칭될 경우 미션 수행률이 낮아짐
  • 참여도가 높은 유저끼리 서로 매칭되어야 ‘미션 수행 → 수신’ 이 원활히 이루어짐

발견한 개선 포인트

  • 매칭 시 사용자 성향과 이력 데이터를 함께 반영하는 개인화된 구조 필요
  • 고려 요소
    • MBTI 궁합
    • 취미 유사도 기반 친밀도 점수
    • 과거 미션 수행(활동 빈도)
    • 과거 매칭 이력
  • 과거 미션 수행률을 통해 유령 유저는 유령 유저끼리, 활동 유저는 활동 유저끼리 매칭
  • 취미와 MBTI 궁합을 통해서 자신에게 맞는 마니또, 마니띠 매칭

나의 Action (개선 과정)

순서 내용
1 개인화 매칭 요소 정의 (MBTI, 취미, 미션 기록, 과거 매칭 기록)
2 매칭 비용 최적화 구조 설계
3 매칭 시뮬레이션 실행 및 적용

매칭 플로우 drawio

결과

비교 항목 Before After
매칭 기준 과거 매칭 기록만 반영 MBTI, 취미, 미션 이력 등 다중 요소 반영
활동 유저 중심 랜덤 매칭으로 유령 유저와 엇갈려 매칭될 가능성 높음 미션 수행률이 높은 사람들끼리 매칭됨으로써 활동 유저끼리 매칭되도록 조정
개인화 정도 무작위 매칭 성향 기반 개인화 매칭
미션 수행률 낮음(최대 수행률: 전체 유저의 1/2) 미션을 주고받은 비율 향상

회고

  • 참여도 증가: 단방향 매칭의 한계를 극복하고자 순환 구조 매칭을 도입하면서, 모든 유저가 마니또/마니띠 역할을 동시에 수행하며 참여도가 크게 증가하게 되며 사용자 중심 설계 방식에 대해 생각해보게 되었습니다.
  • 개인화된 매칭: 과거 매칭 기록과 더불어 MBTI, 취미, 활동 이력 등 다양한 요소를 반영하여 사용자 성향에 맞는 매칭을 구현하고, 미션 수행률과 만족도를 향상시켰습니다.
  • 문제 해결 능력 강화: OR-Tools라이브러리를 활용해 최적화된 알고리즘을 설계하고, TSP를 마니또 매칭에 재해석하여 복잡한 문제를 수학적으로 추상화하는 역량을 길렀습니다.
⚠️ **GitHub.com Fallback** ⚠️