피드로 돌아가기
Dev.toDatabase
원문 읽기
Firestore Read 최적화로 일일 1M Reads를 Free Tier 수준으로 절감
AI Built It Fast. Human Optimization Cut the Costs.
AI 요약
Context
AI 코딩 어시스턴트로 빠르게 구축한 게임 포털이 사용자 증가에 따라 Firestore 비용 급증 및 HTTP 응답 속도 저하 문제 직면. 특히 N+1 쿼리 패턴과 불필요한 중복 요청이 결합되어 무료 티어(50k reads/day)를 20배 초과하는 비효율적 리소스 소비 발생.
Technical Solution
- N+1 Read 패턴 제거를 위해 개별 프로필 루프 기반 쿼리를 Collection Group Query로 전환하여 데이터 규모가 아닌 매칭 문서 수 기반의 비용 구조로 변경
- React 컴포넌트 간 중복 요청 방지를 위한 Request Deduplication 적용 및 필요 데이터만 호출하는 Selective Loading 설계로 오버페치 감소
- 매 요청마다 수행하던 다수 문서 기반의 가중치 계산 로직을 상태 기반의 단일 문서 참조 구조로 변경
- Seed Weights 맵을 기존 seedPools 문서 내에 통합 관리하여 Read 횟수를 N개에서 1개로 축소
- Google Cloud Observability와 Query Insights를 활용한 Bottleneck 지점 정밀 식별 및 데이터 기반 최적화 수행
실천 포인트
- DB 쿼리 루프 내에서 다른 쿼리가 호출되는 N+1 패턴 존재 여부 확인 - 클라이언트 단에서 동일 API에 대한 중복 호출이 발생하는지 검토 및 캐싱/디듀플리케이션 적용 - 반복적으로 계산되는 집계 데이터는 요청 시점에 계산하지 않고 Write 시점에 미리 계산하여 단일 문서에 저장(Pre-computation) - Cloud Billing 및 Query Insights를 주기적으로 모니터링하여 비용 급증 지점 사전 탐지