mmday-firebase/TODO.md
윤정민 a59ccf3314 Implement user profile updates and synthesize KBO game IDs.
- 사용자 프로필 수정을 위한 `PATCH` 핸들러와 `updateMe` 서비스를 구현하여 닉네임, 응원팀, 지식 수준 변경 기능을 추가했습니다.
- HTML 정규식 파싱 오류로 인해 `null`이 반환되던 `gameId` 문제를 해결하기 위해 일정 메타데이터 기반의 ID 생성 로직을 도입했습니다.
- `updateUser`가 `FieldValue`를 수용하도록 개선하여 응원팀 설정 해제(필드 삭제)가 가능하도록 수정했습니다.
- 닉네임 중복 확인 및 변경 규칙 검증을 포함한 유저 서비스 테스트 케이스를 작성하고 `TODO.md` 이슈를 해결했습니다.
2026-04-18 15:53:29 +09:00

29 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TODO
## KBO 일정/라이브 머지 관련
### 남은 작업
- [ ] **클라이언트 쪽 점수 표시 이슈 조사**
- 서버 머지는 정상 (로그 확인 완료: 5/5 매칭, 점수·상태 정상 반영)
- 브라우저 Network 탭에서 실제 응답 바디에 `awayScore`/`homeScore` 값이 들어오는지 확인
- 값이 들어오는데 0으로 보이면 → 프런트 렌더링 로직 점검
- 값이 null/0으로 오면 → 응답 직렬화/DTO 매핑 레이어 점검 (`scheduleService.ts` 등)
- [ ] **`mergeLiveIntoSchedule` 진단 로그 제거** (`src/repositories/kboRepository.ts`)
- 점수 이슈 해결 후 `[kbo-merge]` console.log 전부 제거
- [ ] **deploy 스크립트에 build 포함**
- `package.json:10` `"deploy": "firebase deploy --only functions"``"tsc && firebase deploy --only functions"`
- 현재는 `npm run build` 빠뜨리면 구버전 `lib/` 그대로 배포됨
### 향후 확장 여지
- [ ] **GameList 캐시를 Firestore 공유 캐시로 격상 검토**
- 현재: `gameListService.ts`의 10초 메모리 캐시 (인스턴스별)
- 트래픽 증가 시 인스턴스 수 × (6회/분)로 KBO 호출 증가 → rate limit 리스크
- 격상안: `kboCacheRepository.getOrFetch` 사용, 키 `gameList_day__YYYYMMDD__series`, TTL은 스케줄과 동일한 동적(라이브 30s, 종료 7d) 방식
- 지금은 불필요. 트래픽/에러율 지표 보고 결정
- [ ] 라이브 상세 필드 별도 엔드포인트로 노출
- 이닝/카운트/주자/현재 타자·투수는 "스케줄 파악" 목적에서 제외했으나, 라이브 상세 화면 필요 시 `getGameList` 직접 노출하는 별도 핸들러 추가 고려
- [ ] `formatYmd(new Date())``todayKst()` 기반으로 통일
- 현재 TZ=Asia/Seoul 의존. 환경 변경 시 취약