백엔드 — 오늘 한 것과 남은 목록
하루에 많이 움직여서 정리해 둡니다. 정본은 미결 항목입니다 — 여기는 알림이고, 담당·기한·확인 명령은 미결 항목에 있습니다.
✅ 배포가 끝에서 끝까지 섭니다
https://<API 호스트> 이 밖에서 열려 있습니다. 오늘 확인했습니다.
| 탄력적 IP | 붙였습니다. 껐다 켜도 주소가 안 바뀝니다 |
| A 레코드 · nginx · TLS | <API 호스트> → 443 → 백엔드. http 는 301 로 넘어갑니다 |
| IAM 역할 | <EC2 역할> — S3 videos/ 접두사만 |
| S3 업로드 | 실물에서 돕니다. 사전 서명 URL → PUT → 등록 → 반려 → 목록 |
| 웹 | super-sub-cloud.vercel.app 에서 가입·로그인이 실제 백엔드로 갑니다 |
🔴 구글 로그인이 안 되던 것을 고쳤습니다
서버 .env 의 GOOGLE_CLIENT_IDS 가 비어 있어 503 이었습니다. 이메일 로그인은 멀쩡했기 때문에 겉으로는 “로그인이 안 된다”로만 보였습니다. 웹 번들에서 클라이언트 ID 를 찾아 넣고 재시작했습니다.
⚠️ 넣은 것은 웹 것 하나뿐입니다. Flutter 가 구글 로그인을 붙이면 그 앱의 클라이언트 ID 를 쉼표로 덧붙여야 합니다 — 안 그러면 앱 토큰이 aud 불일치로 전부 거부됩니다. 찾는 방법은 fastapi/docs/deployment.md 2절에 적어 두었습니다.
✅ 오늘 연 API
| 무엇 | 경로 | 미결 |
|---|---|---|
| 클립 업로드 (SFR-001) | POST /videos/upload-url · POST /videos · GET /videos | 12번 ✅ |
| 스쿼드 | POST·GET /teams/{id}/squad · .../members · GET /squads/{slug} | — |
| 경기 탐색 | GET /matches?sport_code=®ion= | 15번 |
| 경기 수정·취소 | PATCH·DELETE /matches/{id} | 16번 |
규격은 fastapi/docs/api-contract.md 3-4 · 3-6 · 3-7절, 클라이언트가 반영할 것은 fastapi/docs/client-contract-changes.md 12~14번입니다.
🔴 남은 목록 — 결정이 필요한 것부터
1. 분석 결과 적재 규격 (미결 jin 1번 · 담당 정상호)
이것이 제일 앞을 막습니다. metric_definition 이 비어 있으면 적재가 외래키에서 전부 거부됩니다. 제 몫 넷(title_criteria · fitness_score · recommendation · player_vector)이 전부 여기 걸려 있습니다.
2. 지원이 붙은 경기를 어떻게 취소하나 (미결 jin 16번 · 담당 박민호)
취소를 행 삭제로 만들었더니 막다른 곳이 생겼습니다 — 지원이 붙으면 못 지우는데 지원을 무르는 경로가 없습니다. 세 안을 대가와 함께 올렸습니다.
3. S3 업로드가 분석으로 안 이어짐 (미결 ho 17번 · 담당 정어진)
정상호 님이 올려 주셨습니다. 올라간 영상을 꺼내 분석하는 것이 없습니다. 넷 중 가(키 규칙 정본)·라(종목·동작 전달) 는 제가 바로 답할 수 있고, 나(워커)·다(자동 종료와 비용) 는 결정이 걸려 있습니다.
4. 패킷 B 배선 (미결 min 2번 · 담당 정어진)
박민호 님이 review_option 목록과 5테이블 마이그레이션을 min 에 푸시하고 기다리십니다. 제가 공유 파일 5곳을 배선하고 DB 테스트를 돌리기로 한 자리입니다.
5. 클라이언트가 아직 안 붙인 것
| 무엇 | 미결 | 확인 |
|---|---|---|
429 Retry-After 뒤 재시도 억제 | jin 2번 | www·flutter 어디에도 없습니다 |
| 카드를 만드는(POST) 자리 | jin 7번 | 보기 화면만 있습니다 |
앱(flutter)의 클립 업로드 | jin 12번 | 웹은 붙었고 앱은 아직입니다 |
| 경기 탐색 화면 | jin 15번 | 새로 올렸습니다 |
| 과금 도메인(패킷 A) | jin 13번 | 진행 상황을 박민호 님이 물으셨습니다 |
작은 것들 (아무에게도 안 걸림)
- 클립 삭제 — S3 객체까지 지워야 하고 IAM 정책에
s3:DeleteObject를 더해야 합니다 - 경기 탐색의 포지션 필터 — 지금은
needs가 응답에 실려 화면에서 거를 수 있습니다 - 스쿼드 포지션 바꾸기 — 지금은 빼고 다시 넣어야 합니다
- 재분석 —
analysis_job은 여러 건을 허용하는데 만드는 경로가 업로드뿐입니다