Firebase RealtimeDB 에 쌓인 36만 레코드를 PostgreSQL 관계형 구조로 무손실 이관. 다단계 권한 관리자 대시보드와 전체 감사 로그(Audit Log) 시스템을 함께 구축. 위시켓 제안 #154388 기반 설계 프로토타입.
Firebase RealtimeDB 는 초기 빠른 개발에 최적이지만, 서비스가 성장할수록 단점 이 드러납니다 — 비관계형 JSON 트리로 인한 복잡한 쿼리 비용, 무한 과금 구조, ACID 미보장, 감사 로그 부재, B2B 권한 관리 어려움.
이 프로젝트는 Firebase 에 쌓인 36만 레코드 를 무손실 · 무중단 으로 PostgreSQL 로 이관하고, 동시에 관계형 스키마 · FK · 인덱스 · 감사 로그를 확보해 쿼리 성능 20배 향상 을 달성합니다.
Dual-Write + 순차 Cutover — 기존 서비스는 Firebase 와 PostgreSQL 양쪽에 동시 기록, ETL 배치로 과거 데이터를 일괄 이관, 양쪽 무결성 검증 후 읽기 트래픽부터 순차적으로 PostgreSQL 로 스위치.
전 과정이 tb_audit_log 에 기록되어 문제 발생 시 즉시 롤백 가능하고, 최종 이관 완료 후 Firebase 는 백업 용도로만 유지.
Firebase Admin SDK 로 5천 건 단위 batch pull, exponential backoff 재시도, 진행률 표시.
중첩 JSON → 관계형 스키마 매핑, FK 참조 무결성 체크, timestamp 정규화, 타입 변환.
PG COPY 명령으로 bulk insert, 트랜잭션 단위 롤백 안전, 중복 key ON CONFLICT 처리.
Role 기반 접근 제어(ADMIN/OPERATOR/VIEWER), 사용자·메뉴·주문·정산 CRUD, 2FA 지원.
모든 CRUD 를 tb_audit_log 에 자동 기록(누가/언제/무엇을), 필터링·내보내기·보존 정책.
매출/주문/구독 KPI 도넛·막대 차트, 시간대별 트래픽 히트맵, 이상징후 자동 알림.