왜 사용자가 줄어도 요금이 나올까
파이어베이스는 서버를 켜둔 시간이 아니라 사용량(읽기·쓰기·저장·호출 횟수)에 따라 과금됩니다. 그래서 사용자가 적어도, 앱이 백그라운드에서 계속 데이터를 조회하거나 잘못 짜인 코드가 무한 반복 요청을 보내면 요금이 계속, 때론 갑자기 폭탄처럼 나옵니다.
요금이 새는 3대 지점
| 항목 | 흔한 원인 |
|---|---|
| Firestore | 실시간 리스너 남발, 반복 조회, 인덱스 없는 대량 쿼리 |
| Storage | 원본 고해상도 이미지·영상이 정리 없이 계속 쌓임 |
| Functions | 트리거가 과도하게 자주 실행, 외부 API 재시도 루프 |
1단계 — 사용량 화면에서 원인 찾기
먼저 Firebase 콘솔의 Usage and billing 화면을 엽니다. 어떤 항목(Firestore 읽기, Storage 저장, Functions 호출 등)이 비용의 대부분을 차지하는지 확인하는 게 시작입니다. 대개 한두 항목이 요금의 80% 이상을 차지하므로, 거기부터 손보면 효과가 큽니다.
2단계 — 정리와 상한으로 막기
- 안 쓰는 컬렉션·오래된 로그·중복 이미지를 정리
- 실시간 리스너를 필요한 화면에서만 켜고, 목록은 페이지네이션·캐시 적용
- Storage 이미지에 리사이즈·압축 적용 (원본 대신 썸네일 사용)
- 예산 알림과 사용량 상한 설정 (보안 규칙 점검도 함께)
3단계 — 필요하면 요금제·서버 교체
트래픽이 거의 없는 앱이라면 무료 한도(Spark) 요금제로 두거나, 저가 VPS·서버리스로 옮겨 월 비용을 크게 낮출 수 있습니다. 다만 이전 비용과 안정성을 함께 따져야 하니, 요금 구조를 먼저 점검한 뒤 결정하세요.
예산 알림은 '알림'일 뿐입니다
많은 분이 예산을 걸면 자동으로 과금이 멈춘다고 오해하는데, 기본 예산 알림은 알림만 보냅니다. 실제로 막으려면 예산 초과 시 결제를 비활성화하는 함수를 연결하거나 무료 한도 요금제로 둬야 합니다.
자주 묻는 질문
사용자가 거의 없는데 왜 요금이 나오나요?
무한 반복 조회 코드, 백그라운드 요청, 쌓인 Storage 용량, 잦은 Functions 호출 때문에 사용자 수와 무관하게 요금이 나올 수 있습니다. 사용량 화면부터 확인하세요.
요금 상한을 걸면 자동으로 멈추나요?
예산 알림은 기본적으로 알림만 보냅니다. 초과 시 결제 비활성화 함수를 연결하거나 무료 한도 요금제로 둬야 실제로 막힙니다.
다른 서버로 옮기면 더 쌀까요?
트래픽이 거의 없으면 저가 VPS·서버리스로 옮겨 월 비용을 크게 낮출 수 있습니다. 이전 비용과 안정성을 함께 따져 결정하세요.
서버비, 어디서 새는지 무료로 점검해 드립니다
파이어베이스 프로젝트 접근권만 주시면 요금이 새는 지점과 절감 폭을 먼저 알려드립니다.
문의: appmonster.kr@gmail.com
함께 보기: Firebase 보안 규칙 점검 · 방치 앱 점검 체크리스트 · 유지보수 비용