feat(위성): 위성 조각 프로젝트당 150 MB 한도 · 오래 안 본 것부터 지움 · 한 장짜리 위성 걷음 · B 저장 복사에서 조각 뺌 (PLAN 590-2 · 요구 452 · 453)

- 조각 저장본 한 벌(_derived/plan_tile) — 처음 열 때 한 번 셈 · 받을 때 더함 · 넘치면 묵은 것부터 80 % 까지 · 하루 넘게 묵은 것만 본 때 찍음
- 한 장짜리 위성 그림 안 만듦(메타 = 지도 틀만) · vworld-map 위성 404 · 미리 받기 줄 걷음
- 옛 캔버스(D03 · B04 · B05 배수유역) = 위성 바탕 없이 + 알림
- 저장 떠 두기에서 조각 폴더 뺌
- 시험 590_2 새로 · 283 한 본문 손 고침 실패는 고치기 전부터(이 고침과 무관)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-30 09:41:00 +09:00
co-authored by Claude Opus 5.5
parent 1c0c44f9e2
commit a17ad1dc41
14 changed files with 232 additions and 71 deletions
+8 -4
View File
@@ -78,7 +78,14 @@ async def get_vworld_meta(
async def get_vworld_map(
project_id: UUID, request: Request, layer_name: str = "satellite"
) -> Response | JSONResponse:
"""배경 지도 레이어 PNG 이미지를 반환합니다(ETag — 바뀌지 않았으면 304)."""
"""배경 지도 레이어 PNG 이미지를 반환합니다(ETag — 바뀌지 않았으면 304).
위성은 한 장 그림을 안 씀(590-2 · GL 조각 `plan/tile`) → 404."""
if layer_name.lower() == "satellite":
return JSONResponse(
status_code=404,
content={"status": "error", "message": "위성 한 장 그림은 쓰지 않습니다."},
)
pool = get_db_pool()
try:
async with pool.acquire() as connection:
@@ -93,9 +100,6 @@ async def get_vworld_map(
map_name = f"vworld_{target_layer}.png"
map_path = target_dir / map_name
if not map_path.exists() and target_layer == "satellite":
map_path = target_dir / "vworld_map.png"
if not map_path.exists():
return JSONResponse(
status_code=404,