Skip to content

fix: 코너마다 식단을 확인하고 빠진 코너만 올림 - #41

Merged
rover0811 merged 6 commits into
mainfrom
fix/corner-level-publication
Oct 6, 2026
Merged

rover0811 merged 6 commits into
mainfrom
fix/corner-level-publication

Conversation

@rover0811

Copy link
Copy Markdown
Collaborator

한 줄 요약

크롤러는 코너마다 식단을 확인합니다. 빠진 코너만 올립니다.

리뷰어가 할 일

  • functions/handler.py의 코너 Mapping 함수를 확인합니다.
  • 아래 "Mapping 규칙" 3개를 읽습니다.

prod에는 10/6 15:24에 배포했습니다. 이 PR은 배포한 코드를 main에 반영합니다.

Bugs

  1. 한 시간대에 식단이 여러 건 있습니다. 예: 학생식당 중식1, 중식2, 중식3은 모두 LUNCH입니다.
  2. 크롤러는 시간대에 식단이 1건 있으면 그 시간대를 완료로 판단했습니다.
  3. 그래서 첫 번째 코너만 올라갔습니다. 학생식당 중식2와 중식3, 도담 중식4가 빠졌습니다.

Changes

  1. GET은 기존 식단의 메뉴 목록을 반환합니다.
  2. 크롤러는 원본 코너와 기존 식단을 Mapping합니다. Mapping되지 않은 코너만 LLM으로 해석하고 POST합니다.
  3. "운영하지 않습니다"로 끝나는 문장은 휴무입니다.

Mapping 규칙

  1. 한글만 남기고 비교합니다. 그래서 등촌st샤브칼국수와 등촌샤브칼국수는 같습니다.
  2. 기존 식단의 메뉴 이름 중 절반 이상이 원본 코너에 있으면 Mapping합니다.
  3. 식단 하나는 코너 하나에만 Mapping합니다. 점수가 높은 쌍을 먼저 Mapping합니다.
자세한 내용 (필요할 때만 읽으세요)

배포 결과 (10/6)

  • 학생식당 4건과 도담 1건을 prod와 dev에 올렸습니다.
  • 10/6부터 10/8까지 15개 시간대를 원본과 대조했습니다. 모든 시간대의 건수가 원본 코너 수와 같습니다.
  • 중복은 없습니다.

동작

상황 LLM 호출 POST
모든 코너가 Mapping됨 0회 0건
일부 코너가 Mapping되지 않음 Mapping되지 않은 코너만 Mapping되지 않은 코너만
GET이 실패함 0회 0건

테스트

전체 213개가 통과합니다. 추가한 테스트는 다음과 같습니다.

  • 코너 3개를 모두 새로 올리는 경우
  • 1건이 있으면 2건만 올리는 경우
  • 모든 코너가 있으면 LLM과 POST가 0회인 경우
  • LLM 출력이 달라도 다시 올리지 않는 경우
  • 반찬이 같고 주메뉴가 다른 코너를 구분하는 경우
  • GET이 실패하면 POST하지 않는 경우
  • "운영하지 않습니다" 문장을 휴무로 처리하는 경우

문서

  • CLAUDE.md: 작업 규칙입니다. 실제 장애에서 나온 규칙입니다.
  • docs/menu-pipeline-policy.md: 안정기(2025-11-22부터 2026-06-29까지) 코드에서 정리한 정책입니다.

이 PR이 하지 않는 것

  • 바뀐 메뉴를 교체하지 않습니다. 이 작업은 Server PR #490의 PUT /meals/with-price/slot이 배포된 후에 합니다.
  • 배포 규칙은 PR #39와 같습니다. rm -rf .aws-sam 후 빌드합니다.

@rover0811
rover0811 merged commit c7b9334 into main Oct 6, 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