[fix] solution/backend: site_payload 날씨 라벨도 코드별 고유값으로 — 앞 커밋 누락분

직전 커밋(cd77171)에서 문서·프론트만 옮기고 서버 쪽 표(site_payload._weather_condition)를
빠뜨렸다. use-live-weather.ts 와 같은 표를 봐야 하이드레이션 전후 문구가 안 바뀐다는
불변식이 절반만 적용된 상태였다 — 여기서 마저 맞춘다.
This commit is contained in:
김성경 2026-09-22 08:36:52 +09:00
parent cd771719df
commit adb3460c37

View File

@ -501,33 +501,48 @@ def _sections(saved_sections, default_spec) -> list:
return out return out
# WMO weather code → 한 줄 날씨. ★ solution/site/src/lib/use-live-weather.ts 의 condition() 과 # WMO weather code → 한 줄 날씨. 코드 하나마다 고유 문구다(뭉치지 않는다) — ★ solution/site/src/lib/
# **같은 구간**이어야 한다. 렌더러는 프리렌더된 이 값으로 그리다가 하이드레이션 뒤 최신 캐시로 덮어쓰는데, # use-live-weather.ts 의 WEATHER_CONDITION_BY_CODE 와 **같은 표**여야 한다. 렌더러는 프리렌더된
# 두 곳이 다른 표를 쓰면 같은 날씨인데 화면 문구가 바뀐다(사장님 눈에는 버그로 보인다). # 이 값으로 그리다가 하이드레이션 뒤 최신 캐시로 덮어쓰는데, 두 곳이 다른 표를 쓰면 같은 날씨인데
# 화면 문구가 바뀐다(사장님 눈에는 버그로 보인다).
_WEATHER_CONDITION_BY_CODE = {
0: "맑음",
1: "대체로 맑음",
2: "구름 조금",
3: "흐림",
45: "안개",
48: "착빙성 안개",
51: "가벼운 이슬비",
53: "보통 이슬비",
55: "강한 이슬비",
56: "가벼운 착빙성 이슬비",
57: "강한 착빙성 이슬비",
61: "약한 비",
63: "보통 비",
65: "강한 비",
66: "약한 착빙성 비",
67: "강한 착빙성 비",
71: "약한 눈",
73: "보통 눈",
75: "강한 눈",
77: "싸라기눈",
80: "약한 소나기",
81: "보통 소나기",
82: "강한 소나기",
85: "약한 소나기눈",
86: "강한 소나기눈",
95: "뇌우",
96: "약한 우박 뇌우",
99: "강한 우박 뇌우",
}
def _weather_condition(code) -> str: def _weather_condition(code) -> str:
try: try:
value = int(code) value = int(code)
except (TypeError, ValueError): except (TypeError, ValueError):
return "흐림" return "흐림"
if value == 0: return _WEATHER_CONDITION_BY_CODE.get(value, "흐림")
return "맑음"
if 1 <= value <= 2:
return "구름많음"
if value == 3:
return "흐림"
if value in (45, 48):
return "안개"
if 51 <= value <= 57:
return "이슬비"
if 61 <= value <= 67:
return "비"
if 71 <= value <= 77 or value in (85, 86):
return "눈"
if 80 <= value <= 82:
return "소나기"
if 95 <= value <= 99:
return "뇌우"
return "흐림"
def _weather(row: dict): def _weather(row: dict):