기록 한 건이 흐르는 길 — 로그인은 없고, 토큰과 규칙이 지킨다

기록 한 건이 흐르는 길 — 로그인은 없고, 토큰과 규칙이 지킨다 A data-flow diagram generated by Archify. 01 / 기기 02 / 진입 · 토큰 03 / 규칙 04 / 저장 05 / 보기 · 백업 직원 폰 · PC 브라우저 · React 앱 · 홈 화면에 추가 가능 · 01 / 기기 직원 폰 · PC 브라우저 React 앱 · 홈 화면에 추가 가능 서비스 워커 · 네트워크 우선 · 01 / 기기 서비스 워커 네트워크 우선 공용 진입 화면 · 기기당 한 번 · 구글 계정 불필요 · 02 / 진입 · 토큰 공용 진입 화면 기기당 한 번 · 구글 계정 불필요 익명 토큰 발급 · signInAnonymously · 02 / 진입 · 토큰 익명 토큰 발급 signInAnonymously 사진 압축 · 긴 변 1280px · 700KB 이하 · 02 / 진입 · 토큰 사진 압축 긴 변 1280px · 700KB 이하 GPS 한 번씩 기록 · 거부하면 위치 없이 저장 · 02 / 진입 · 토큰 GPS 한 번씩 기록 거부하면 위치 없이 저장 보안 규칙 · 인증된 요청 + 허용 컬렉션 · 03 / 규칙 보안 규칙 인증된 요청 + 허용 컬렉션 Firestore 컬렉션 6개 · 차량·주행·정비·주유·예약·직원 명부 · 04 / 저장 Firestore 컬렉션 6개 차량·주행·정비·주유·예약·직원 명부 오프라인 캐시 · 끊겨도 조회 · IndexedDB · 04 / 저장 오프라인 캐시 끊겨도 조회 · IndexedDB 실시간 구독 · onSnapshot → 다른 사람 화면 · 05 / 보기 · 백업 실시간 구독 onSnapshot → 다른 사람 화면 일일 백업 · 매일 07:30 · JSON · 30일 보관 · 05 / 보기 · 백업 일일 백업 매일 07:30 · JSON · 30일 보관 처음 한 번 앱 파일만 중계 통과하면 발급 토큰 붙여 요청 사진 첨부 문서에 직접 저장 출발 · 복귀 때 위치 두 점 허용 목록만 바뀌면 밀어 줌 끊겨도 조회 · 복구 시 자동 전송 하루 한 번 읽어 JSON 저장 Legend 기록이 저장되고 퍼지는 길 토큰 · 규칙 하루 한 번 백업 저장소 앱에서 나가는 길

로그인은 없다

  • • 기기당 한 번 공용 진입 화면을 지난다 — 구글 계정 불필요
  • • 익명 토큰이 있어야 읽고 쓴다

규칙의 한계

  • • 막는 것: 프로젝트 ID 만 알고 밖에서 API 로 붙는 접근
  • • 못 막는 것: 앱 페이지를 실제로 연 사람 — 앱이 토큰을 발급하므로

매일 07:30 백업

  • • 전체 데이터를 JSON 으로 · 30일 보관
  • • 마지막 실행 10/8 07:30 — 결과 코드 0