Skip to content

feat: 변동메뉴 대표메뉴 번역을 menu.name_en으로 동기화 - #495

Merged
sjinssun merged 1 commit into
developfrom
feat/#493-synq-enmenu
Oct 6, 2026
Merged

sjinssun merged 1 commit into
developfrom
feat/#493-synq-enmenu

Conversation

@sjinssun

@sjinssun sjinssun commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

#️⃣ Issue Number

📝 요약(Summary)

  • EN 설정 사용자가 찜 검색에서 영어(예: kimchi)로 변동메뉴를 찾지 못하던 문제를 해결합니다.
    • 원인: 크롤러가 보내는 대표메뉴 번역은 meal_main_menu.name_en에만 저장되는데, 찜 검색과 찜 목록은 menu.name_en만 조회합니다. 그래서 번역이 있는 변동메뉴도 영어로 검색되지 않았습니다.
    • 식단을 등록할 때 대표메뉴 번역을 menu.name_en에도 함께 저장합니다.
      • MealService.upsertMainMenus에서 meal_main_menu를 저장하는 같은 트랜잭션 안에서, 식단에 포함된 같은 이름의 Menu의 name_en을 최신 번역으로 갱신합니다.
      • 식단 등록(createMeal, createMealWithPrice)과 슬롯 조정(reconcileMealSlot, feat: 식단 슬롯 단위 조정 API 추가 #490)이 모두 이 메서드를 거치므로 두 경로에 함께 적용됩니다.
      • Menu.updateNameEn은 번역이 null이거나 공백이면 기존 값을 유지합니다. 다음 식단에서 대표메뉴로 빠진 메뉴도 기존 번역을 유지합니다.
    • V29__backfill_menu_name_en_from_meal_main_menu.sql
      • menu.name_en을 VARCHAR(255)에서 VARCHAR(500)으로 늘립니다. meal_main_menu.name_en이 500자라서, 255자를 넘는 번역이 들어오면 식단 등록 트랜잭션 전체가 실패할 수 있기 때문입니다.
      • 이미 쌓인 번역을 backfill합니다. 메뉴 이름과 식당이 같은 대표메뉴 중 가장 최근 식단(meal.date)의 공백이 아닌 번역을 쓰고, name_en이 비어 있는 메뉴만 채워서 기존 고정메뉴(SNACK_CORNER) 번역은 덮어쓰지 않습니다.
    • 크롤러 요청 스펙과 API 응답 스펙은 바뀌지 않습니다.

💬 공유사항 to 리뷰어

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • 커밋 메시지 컨벤션에 맞게 작성했습니다.
  • 변경 사항에 대한 테스트를 했습니다.(버그 수정/기능에 대한 테스트).

@sjinssun
sjinssun merged commit 4b3c682 into develop Oct 6, 2026
@sjinssun
sjinssun deleted the feat/#493-synq-enmenu branch October 6, 2026 15:15
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown

📊 테스트 커버리지 리포트

Overall Project 95.99% -0.01% 🍏
Files changed 93.48% 🍏

File Coverage
MealService.java 97.91% -0.45% 🍏
Menu.java 95.63% 🍏

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.

feature: 변동메뉴 영어 번역을 menu.name_en으로 동기화해 찜 검색 지원

1 participant