docs: log Gemini paid-tier E2E and render completion-loop fixes (session 3)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
b5d29e6061
commit
7b861a4af2
@ -145,7 +145,7 @@
|
||||
## 미해결·대기 요약 (다음 우선 처리 — 2026-07-14 갱신)
|
||||
|
||||
**소유자 조치 대기:**
|
||||
1. **Gemini API 유료 키 교체**(시연 블로커) — 무료 티어 쿼터 0(429)으로 S7 조감·ReRoom 실렌더 불가. 텍스트 AI(Claude)는 정상.
|
||||
1. ~~**Gemini API 유료 키 교체**(시연 블로커)~~ → **해소(2026-07-14, 소유자 "Gemini API 지출 처리")**: 유료 전환 확인 — S7 조감·ReRoom 실렌더 라이브 E2E 성공(아래 세션 3 로그).
|
||||
2. **PTR(역방향 DNS) 신청** — `101.79.17.164`의 PTR이 없음(NXDOMAIN). Gmail 스팸 분류의 주 원인 후보. **IP 제공 호스팅/회선사에 "101.79.17.164 → mail.zioinfo.co.kr" 역방향 DNS 등록 신청** 필요(가비아 DNS 아님 — IP 소유 ISP만 설정 가능). 이것만 해소되면 메일 인증 체계는 완성.
|
||||
|
||||
**EDM 운영 실발송 개방 완료(2026-07-14 소유자 지시):** 서버 `EDM_TEST_MODE=false` 전환 + EDM 화면에 운영 실발송 버튼 신설 — 기존 버튼은 '테스트 발송'(secondary, live=false 안전 기본)으로 유지, '운영 실발송'(primary)은 **이중 확인**(대상 인원 경고 confirm → 'LIVE' 타이핑) 후에만 live=true 호출. i18n 4개국어. ~~참고: 현 데모 수신자 5명은 `@kintex.test` 시드 주소라 실발송해도 반송됨~~ → **해소(V56, 소유자 지시 "수신자 데이터 실제 이메일로 정비")**: 시드 주소 114행 전량을 소유자 Gmail plus-addressing(`ythong86+<등록ID>@gmail.com`)으로 치환 — 주소별 구분 가능·전부 소유자 수신함으로 실전달·타인 주소 미도입. 운영 실발송 E2E 검증 가능 상태.
|
||||
@ -239,3 +239,20 @@
|
||||
**SPF/DKIM 정비 감사(소유자: "SPF/DKIM 정비해줘"):** 실측 결과 **인증 체계 대부분 이미 건강** — ①SPF `v=spf1 ip4:101.79.17.164 -all`(정확·하드페일) ②DKIM opendkim 가동·`s=mail` 셀렉터 서명, DNS `mail._domainkey` 키 일치(`opendkim-testkey: key OK`), 오늘 EDM 5통 전부 서명 확인 ③DMARC `p=quarantine` 게시·정렬(d=From 도메인 일치) ④발신 TLS opportunistic(may) — 관측성 위해 `smtp_tls_loglevel=1` 적용. **유일 결함 = PTR 부재(NXDOMAIN)** → 소유자 조치 대기 2번 등재(ISP 신청 사안, 서버/가비아에서 불가). 참고: `default._domainkey` 부재는 무해(모든 서명이 s=mail).
|
||||
|
||||
**수신거부 링크 E2E(소유자: "수신거부 링크도 테스트해봐"):** vr-live-101 실토큰으로 HTTPS 풀스택 클릭 시뮬레이션 — ①정상 클릭: 완료 안내 HTML + DB 즉시 반영(발송 대상 5→4) ②재클릭: 멱등 완료 안내 ③무효 토큰/토큰 미지정: 안전 실패 안내(정보 미노출). 전 시나리오 통과. 테스트 후 vr-live-101 동의 상태 복구(대상 5명 원복). **EDM 전 구간(동의 필터→테스트→운영 실발송→이력→수신거부) 실검증 완료.** 다음 개선 후보: zioinfo.co.kr SPF/DKIM 정비(스팸함 회피).
|
||||
|
||||
---
|
||||
|
||||
## 처리 로그 (2026-07-14 세션 3 — Gemini 유료 전환 후 렌더 파이프라인 완결)
|
||||
|
||||
**소유자 지시:** ① "이어서 작업 — Gemini API 지출 처리했어" ② "오른쪽 스크롤이 없는 그리드 다수" (후속 처리)
|
||||
|
||||
**Gemini 라이브 검증:** 유료 전환 즉시 `gemini-3.1-flash-image-preview` 직접 호출 성공(385KB). 이어 실제 파이프라인 E2E(OTP 로그인→S7 조감 발행→ReRoom 참조사진 업로드→R1 발행)에서 **이미지는 생성되는데 상태가 영원히 QUEUED**인 결함 발견 — 429 시절 가려져 있던 완결 루프 갭 2중:
|
||||
|
||||
1. **워커→백엔드 콜백 부재**: 워커는 Redis pub/sub 발행만 하고 백엔드가 기다리는 `POST /api/internal/render/callback`을 호출하지 않음 → DB/조회 상태 미갱신. **수정(b5d29e6)**: worker.py `_callback_backend()`(X-Worker-Token, imageUrl/schemaHash/modelVersion/errorMessage, 실패 비치명).
|
||||
2. **RENDER_WORKER_TOKEN 불일치**: nanobanana.env와 kintex.env의 토큰이 서로 다름 → 콜백 401. **수정(서버)**: kintex.env 값으로 동기화+워커 재시작.
|
||||
3. **산출 이미지 서빙 부재**: /renders 정적 서빙이 백엔드·nginx 어디에도 없음. **수정**: WebMvcConfig `/renders/**`→`RENDER_OUTPUT_DIR` + SecurityConfig permit + nginx `/uploads/`·`/renders/` 프록시(기존 /uploads도 SPA 폴백으로 깨져 있던 것 함께 해소).
|
||||
4. **워커 로그 유실**: stdout 블록버퍼링으로 worker.log에 이벤트/콜백 로그가 안 남음 → 유닛에 `PYTHONUNBUFFERED=1`.
|
||||
|
||||
**최종 E2E(라이브)**: S7 조감·R1 ReRoom 모두 발행→워커 라이브 렌더(live=true·degraded=false)→콜백 200→**status DONE + imageUrl**→HTTPS 200(image/png) 완전 자율 완결. 렌더 품질 포토리얼(S7 파란 KINTEX DEMO 부스 조감 / R1 참조사진 기반 목재톤 시안). 스테일 QUEUED 잡 3건 콜백 백필로 DONE 처리. nginx sites-enabled의 `.bak` 사본 로드(중복 vhost 경고) 정리.
|
||||
|
||||
**시연 블로커 전부 해소** — AI_DEMO_SCRIPT.pptx 4개 데모 흐름 모두 실동작 가능 상태.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user