PPSTUDIO 운영 리포트 목록

ALGORITHM TEST · 2026-09-02

추천 조건 66가지를 돌려 보니 생긴 경계

295개 메뉴에 66개 조건을 적용했습니다. 기본 한식 조건에는 179건이 맞았지만, 일식·해산물·면을 함께 고르면 정확히 맞는 메뉴가 없었습니다. 후보가 부족할 때 어떤 결과가 남는지도 확인했습니다.

검사 방법

점심먹개 테스트의 시나리오 생성기와 server/recommendation.mjs를 사용했습니다. 중립 1개, 기본값 2개, 단일 점수 21개, 단일 선택 37개, 복합 5개를 같은 데이터에서 실행했습니다.

공통 검증 기준과 정정 원칙 보기 →

핵심 확인 결과
검사 항목결과판정 기준
실행 시나리오66개생성된 전체 조건
전체 순위 계산66/66 정상NaN·누락 없음
기본 프리셋 선택형 일치179건한식 분류·두 게이지는 점수 반영
좁은 복합 조건정확 일치 0건일식·해산물·면
관련 자동 테스트122개 통과선별한 5개 테스트 파일

점수는 어떻게 비교했나

선택형 필터는 전체 비중 55, 1~5 게이지는 45를 나눠 씁니다. 사용자가 ‘중요’로 올린 조건은 기본 가중치의 1.7배가 됩니다. 얻은 점수를 가능한 최대 점수로 나눠 100점으로 정규화하므로 활성 조건 수가 달라도 결과를 같은 범위에서 비교할 수 있습니다.

동점은 ID 순서로 고정 노출하지 않습니다. 점수 순서는 유지하되 같은 점수 그룹만 섞고, 그 뒤 상위 3·9·20 후보 풀을 만듭니다. 재현 가능한 테스트에서는 난수 함수를 주입해 이 동작을 확인합니다.

잘 맞는 조건과 부족한 조건

현재 기본값에서 후보 자격을 가르는 선택형 조건은 한식이며 여기에 179건이 일치했습니다. 매운맛 3과 따뜻함 3은 후보를 제외하는 조건이 아니라 순위를 계산하는 점수로 반영됩니다. ‘건강한 채소 메뉴’ 복합 조건도 선택형 기준으로 83건이 남아 대표 후보를 만들 여유가 있었습니다.

반대로 일식·해산물·면을 함께 고른 조건은 정확 일치가 0건이었습니다. 이때 서비스는 빈 화면을 내보내지 않고 전체 점수에서 가까운 메뉴를 채우며, ‘딱 맞는 메뉴가 부족하다’는 상태를 함께 전달합니다.

이번 점검 뒤 유지한 선택

정확 일치를 강제해 결과를 없애는 방식보다, 부족함을 알리고 가까운 후보를 보여 주는 편이 점심 결정이라는 목적에 맞다고 판단했습니다. 다만 이 후보를 ‘정확한 추천’처럼 표현하지 않도록 selectionPolicy의 limited 상태를 별도로 둡니다.

좋아요는 점수에 보태지 않고 싫어요만 다음 후보에서 절대 제외합니다. 사용 기록이 적은 초기에 개인화된 것처럼 보이는 문제를 피하고, 사용자가 직접 설정한 조건만 추천 이유로 설명하기 위한 선택입니다.

대표 조건의 실제 실행 결과

입력 조건상위 점수정확 일치선택 상태상위 결과 예
현재 기본값100179건정확비빔밥·소시지야채볶음·황태삼합
매운 국물100선택형 제한 없음일반마라탕·육개장·닭볶음탕
건강한 채소10083건정확비빔밥·샐러드볼·콥샐러드
일식·해산물·면75.560건제한물회·초밥·텐동

상위 결과 예는 2026-09-05에 같은 시나리오 보고서를 다시 실행해 확인한 점수 순위입니다. 실제 노출은 같은 점수 그룹 안에서 달라질 수 있습니다.

이 결과의 한계

  • 시나리오는 코드 경계를 검증하며 실제 사용자의 만족도를 측정한 실험은 아닙니다.
  • 상위 메뉴는 동점 내부 무작위성 때문에 실행마다 달라질 수 있습니다.
  • 메뉴 점수는 운영자가 정한 상대값이며 영양학적 평가가 아닙니다.