2026-10-01 ERD 문서 추가 (docs/erd.md, 코드 수정 없음)
DB 스키마를 Mermaid ERD로 옮겨 docs/erd.md에 저장했다. 근거는 ORM 4개 파일(backend/apps/engine/adapter/outbound/orms/)과 마이그레이션 8개, 그리고 개발 DB의 실제 제약 조건이다.
- 구성 — 그림 두 장. 게임 상태·계정·로그 9개 테이블(
users·attempts·loops·npc_states·nights·notes·rules·survey_votes·events)과 시나리오 시드 6개 테이블. 실선은 DB 외래 키, 점선은 코드로만 지키는 관계. - 대조 결과 — 테이블 15개(+
alembic_version), alembic head216f290d03b3. 외래 키는 5개뿐(loops·notes·rules→attempts,npc_states·nights→loops)이고attempts.user_id·prior_attempt_id,survey_votes.attempt_id·user_id,events.session_id에는 외래 키가 없다. - 적어 둔 주의점 —
events.session_id는 보통attempts.id지만 정원·한도 가드에 막힌 요청은 일회용 UUID로 남는다(session_interactor.py:43).truth_claim_embeddings는 스키마만 있고 런타임에서 쓰지 않는다. - 검증 — Mermaid 11.17.2 파서로 두 블록 문법 통과. 실제 렌더 화면은 확인하지 않았다.
밤 — 일지 시점 재확인 (23:45)
오늘 개발은 오전의 ERD 문서 한 건이 전부다. 그 뒤로 저장소에 남은 변경은 없다.
- 커밋 — 오늘 0건. 마지막 커밋은 여전히
a154752(09-19 10:35), 브랜치feat/coherence-chain. 스테이징된 변경도 없다(git diff --cached빈 출력). - 오늘 수정된 파일 3개 —
docs/erd.md(11:04, 218줄·6,812바이트, 미추적),docs/jekyll.md(11:05, 이 일지),backend/uvicorn-8500.log(22:39). 코드 파일은 0개. docs/erd.md구성 재확인 — 절 3개(1. 게임 상태·계정·로그 / 2. 시나리오 시드 / 3. 읽을 때 주의할 점), Mermaid 블록 2개.- 평가 문서 —
docs/model_evaluation.md(09-18 20:57)·docs/metrics.yml(09-18 20:55) 변경 없음. - 포트폴리오 검토 세션(11:26께) — 공개 전 포트폴리오의 수치 근거를 프로젝트 문서와 대조하는 세션이 있었다는 기록만 남아 있다. 이 저장소에 생긴 산출물은 없고, 세부 내용은 확인하지 못해 적지 않는다.
인프라 상태 (코드·설정 변경 없음)
| 항목 | 확인 결과 |
|---|---|
| DB | docker compose ps: 게임 DB 컨테이너 Up 7 days (healthy), 127.0.0.1:5435->5432 |
| 백엔드 | 127.0.0.1:8500 LISTEN. 로그에 기동 기록이 Started server process [25287] 한 번뿐이라 09-24에 띄운 프로세스가 그대로 돌고 있다 |
| 프론트 개발 서버 | 3500 리스너 없음(떠 있지 않음) |
| 서버 부팅 | uptime -s = 2026-09-24 21:45:33. 그 뒤 재부팅 없음 |
backend/.env | 마지막 수정 09-24 21:52(키 교체 시점) 그대로 |
/health 직접 호출과 프로세스 목록 조회는 실행 승인이 나지 않아 하지 못했다. 위 백엔드 항목은 포트 리스너와 로그로만 판단한 것이다.
백엔드 로그 누적 (backend/uvicorn-8500.log, 09-24 기동 이후 전체)
09-24 일지 때 23줄이던 로그가 196줄이 됐다. uvicorn 접근 로그에는 시각이 없어 어느 줄부터가 오늘인지는 가릴 수 없다. 확실한 것은 마지막 줄이 오늘 22:39:04에 적혔다는 것뿐이다. DB에서 오늘 만들어진 판 수를 세어 보려 했으나 조회 승인이 나지 않아 못 했다.
| 응답 | 건수 |
|---|---|
| 200 | 81 |
| 307 | 33 |
| 401 | 18 |
| 404 | 57 |
| 503 | 3 |
- 마지막 기록(22:39) — 구글 로그인 한 건.
POST /sessions401 →auth/google/start307 →google/callback307 →POST /sessions200 →POST /sessions/{id}/loops200 →observations200 →npcs200. 판 시작까지 정상이다. - 누적 판 시작 —
POST /sessions200이 7건. - NPC 대화 —
POST /loops/{id}/utterances200이 11건, 503이 3건. 503은 71~73줄에 한 회차에서 연속으로 났고 그 뒤 다른 회차의 대화는 200이다. 로그에 traceback·error 줄이 0이라 원인은 로그만으로 알 수 없다. 09-27 점검 때의 세션 기록(claude-mem 관찰 목록)에 이미 잡혀 있던 것으로, 오늘 생긴 것은 아니다. 원인 조사는 하지 않았다. - 밤 흐름 — 바로 앞 판에서는
beats/next·paw/respond·night/draft·nights/{id}/submit·nights/{id}/questions3건·options가 전부 200이다. 낮 대화부터 밤 답안·신의 질문·선택지 조회까지 간 기록이고, 그 뒤 요청은 로그에 없다.
이월
- 해소: Haiku 미확인(09-24) — 당시 기준이 “NPC에게 말을 걸어 200이 나오면 끝”이었다. 같은 프로세스·같은
.env에서utterances200이 11건 쌓였으므로 새 키로 Haiku 호출이 되는 것으로 본다. 언제 처음 성공했는지는 로그에 시각이 없어 모른다. - 미완: 그림 WebP 전환·선로딩 미커밋(09-19 저녁~) — 작업 트리 그대로다. 프론트 코드·테스트 21개 파일 +151/−52, PNG 75장 삭제, WebP 75장과
frontend/lib/preloadImages.ts미추적. 오늘 손대지 않았다. - 미완:
docs/erd.md미커밋 — 미추적 상태. 저장소 루트의 09-18 스크린샷 PNG 1장도 미추적으로 남아 있다. - 미완:
utterances503 3건 원인 — 위 참고. 조사하지 않았다. - 미완: 재부팅 시 자동 기동 — DB·백엔드가 재부팅 뒤 자동으로 안 뜨는 문제는 그대로다. 09-24 이후 재부팅이 없어 드러나지 않았을 뿐이다.