Skip to content

fix: 짧은 머리 추천 길이 필터 및 기존 추천 자동 갱신 - #185

Merged
hoshino-love0102 merged 1 commit into
mainfrom
codex/fix-recommendation-length-refresh
Oct 16, 2026
Merged

hoshino-love0102 merged 1 commit into
mainfrom
codex/fix-recommendation-length-refresh

Conversation

@hoshino-love0102

Copy link
Copy Markdown
Contributor

변경 내용

짧은 머리 사용자가 최소 길이가 누락된 미디엄/긴 스타일을 추천받고, 화면 재방문 시 같은 잘못된 저장 결과를 계속 받는 문제를 수정합니다.

  • 명시 최소 길이와 호환 길이의 최솟값 중 더 엄격한 조건을 적용합니다. 길이 정보가 모두 없는 후보도 현재 길이를 아는 사용자에게 추천하지 않습니다. 긴 머리에서 짧은 커트로 바꾸는 경우는 허용합니다.
  • /recommendations/latest에서 현재 입력을 검증하고 프로필·시술 이력·카탈로그·알고리즘이 바뀌면 자동 재생성합니다. 입력이 같으면 기존 실행을 재사용하며, 과거 실행 단건 조회는 유지합니다.
  • 알고리즘 버전과 카탈로그의 실제 호환성·점수·정렬 조건을 캐시 키에 반영해 버전 표기 누락으로 인한 결과 재사용을 방지합니다.

작업 목적

운영에서는 SHORT 프로필에 미디엄 레이어드 웨이브가 1위로 저장되어 있었습니다. 최소 길이가 NULL이면 시술 이력 점수가 길이 부적합을 덮었고, 최신 조회에는 재검증이 없었습니다. 배포 후 기존 사용자도 추천 화면을 다시 열면 수정된 결과를 받도록 합니다.

테스트 방법

  • 추천 단위·PostgreSQL API 통합 테스트 25개 통과
  • Java 21 ./gradlew test build 전체 테스트 및 빌드 통과
  • 짧은 머리+높은 시술/선호 점수, 길이 경계·메타데이터 누락/충돌, 긴 머리→짧은 커트 검증
  • 구버전 결과 자동 교체, 프로필 변경, 카탈로그 버전 변경 없는 길이 수정, 재조회 재사용, 강제 갱신 검증
  • 최초 결과 없음은 404, 적합한 후보 없음은 422를 유지하며 부적합한 과거 추천을 대신 반환하지 않음

기타 사항

DB 마이그레이션이나 운영 데이터 직접 수정은 없습니다. main 병합으로 기존 GitHub Actions Deploy 워크플로를 실행합니다. 최신 조회는 오래된 결과를 ACTIVE 결과로 갱신할 수 있으며, 같은 입력의 추천을 무작위로 섞지는 않습니다.

@hoshino-love0102
hoshino-love0102 merged commit f064d3a into main Oct 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant