개인정보처리방침
- Road Viewer는 사용자가 자신의 Home Assistant 기기에 설치해 운영하는 자체 호스팅 앱입니다.
- Google Drive 연동은 사용자가 직접 설정하고 연결한 경우에만 동작하며, 요청하는 권한은
drive.file하나입니다. - Google에서 받은 데이터와 토큰은 사용자의 Home Assistant 기기와 사용자의 Google Drive에만 존재합니다. Road Viewer 개발자는 이를 받는 서버를 운영하지 않으며, 판매하거나 제3자에게 제공하지 않습니다.
1. 서비스와 처리 주체
Road Viewer는 openpilot 주행 로그와 카메라 영상을 Home Assistant에서 조회·시각화하는 오픈소스 Home Assistant 앱입니다(소스 코드). 앱은 사용자의 Home Assistant 기기 안에서 실행되고, Home Assistant 사이드바(Ingress)를 통해서만 화면과 설정에 접근할 수 있습니다.
Google Drive 아카이빙을 켜면 앱이 사용자의 기기에서 Google로 직접 HTTPS 요청을 보냅니다. 이 기능에서 앱이 통신하는 외부 서비스는 Google의 OAuth 및 Drive API뿐이며, Road Viewer 개발자나 다른 제3자의 서버를 거치지 않습니다. 따라서 이 방침에서 설명하는 데이터는 사용자의 기기, 사용자의 Google 계정, 그리고 Google 사이에서만 처리됩니다.
2. 요청하는 Google 권한과 사용 목적
| 권한 범위 | https://www.googleapis.com/auth/drive.file |
|---|---|
| 접근 범위 | Road Viewer가 만든 폴더와 파일에만 접근할 수 있습니다. 같은 계정의 다른 Drive 파일은 보거나 읽거나 바꿀 수 없습니다. |
| 요청하지 않는 정보 | 이름, 이메일 주소, 프로필 사진 등 Google 계정 프로필 정보와 연락처, Gmail, 캘린더 등 다른 Google 서비스의 데이터는 요청하지 않습니다. |
이 권한은 오직 사용자가 설정한 주행 기록 보관(아카이빙) 기능을 제공하는 데 사용합니다. 구체적으로 앱이 Google Drive API로 하는 일은 다음과 같습니다.
- 사용자의 Drive에 전용 폴더 하나를 만들거나 찾습니다. 폴더 이름은 앱 옵션
archive_gdrive_folder_name의 값이며 기본값은Road Viewer입니다. - 그 폴더에 주행 로그와 영상 파일을 업로드합니다. 중단된 업로드는 이어서 올립니다.
- 업로드한 파일의 크기와 Drive가 제공하는 SHA-256 또는 MD5 체크섬을 조회해 로컬 파일과 같은지 검증합니다. 체크섬을 받을 수 없으면 사본을 한 번 내려받아 확인합니다.
- 사용자가 재생, 다운로드 또는 다시 변환을 요청했는데 로컬 파일이 없으면 Drive의 사본을 내려받아 사용합니다.
- 아래 5항에서 설명하는 경우에 앱이 올린 파일을 삭제합니다.
- 저장공간 관리 화면에 Drive 사용량과 여유 공간을 표시하기 위해 계정의 저장 용량 정보를 조회합니다.
3. Google Drive에 업로드하는 데이터
아카이빙이 켜져 있을 때 업로드 대상은 사용자가 Road Viewer에 올린 주행 기록의 파일입니다.
- openpilot 원본 주행 로그:
rlog.zst - 카메라 영상: 원본
qcamera.ts,fcamera.hevc,ecamera.hevc와 이를 변환한 MP4 파일
각 Drive 파일의 이름은 <기록 ID>--<파일 종류> 형식이며, 앱이 자신의 파일을 찾고 검증하기 위해 Drive 파일 속성(appProperties)에 기록 ID, 파일 종류, SHA-256 값, 이 설치를 구분하는 저장소 ID를 함께 기록합니다.
앱의 설정, 저장 기록(목록·태그·북마크 등), 분석용으로 만든 데이터, OAuth 토큰은 Drive에 올리지 않습니다.
openpilot 로그와 영상에는 주행 위치(GPS), 시각, 차량 상태, 차량 주변 도로와 사람·차량의 모습이 포함될 수 있습니다. 이 파일들은 업로드 후 사용자의 Google 계정에 저장되며, Google Drive에서의 보관과 공유는 사용자의 Google 계정 설정과 Google의 개인정보처리방침을 따릅니다. Road Viewer는 업로드한 파일을 다른 사람과 공유하거나 공개 설정하지 않습니다.
4. 복제(COPY) 모드와 이동(MOVE) 모드
복제 모드 (기본값)
Drive에 검증된 사본을 만들고 사용자의 Home Assistant 기기에 있는 로컬 파일은 지우지 않습니다. Google Drive 아카이빙은 별도로 설정하지 않으면 항상 복제 모드로 동작합니다.
이동 모드
앱 옵션 archive_mode: move와 archive_allow_local_delete: true를 사용자가 둘 다 설정한 경우에만 켜집니다. 이동 모드에서는 업로드, 체크섬 검증, 저장 기록 확정이 모두 끝난 뒤에만 로컬 원본을 삭제하며, 이후 그 파일은 Drive에서 내려받아 재생·다운로드합니다. 사용자가 고정(핀)한 구간은 이동하지 않고 복제만 합니다.
두 모드 모두 업로드나 검증이 실패하거나 Drive에 연결할 수 없으면 로컬 파일을 지우지 않고 다음 실행에서 다시 시도합니다.
5. Google Drive의 파일이 삭제되는 경우
Road Viewer는 Drive의 파일을 자동으로 정리하지 않습니다. 앱이 Drive 파일을 삭제하는 경우는 다음 두 가지뿐이며, 이때도 같은 설치가 올린 파일만 지우고 다른 설치나 다른 앱이 만든 파일은 지우지 않습니다.
- 사용자가 Road Viewer에서 로그를 완전 삭제한 경우: 그 로그의 Drive 파일(사본과 이동한 파일)을 삭제 목록에 기록하고, Drive에 연결된 상태의 다음 아카이브 실행에서 삭제합니다.
- 이동 모드에서 저장공간 정책이 오래된 로그를 자동 삭제한 경우: 그 로그의 이동한 파일을 Drive에서도 삭제합니다.
복제 모드에서 자동 삭제된 로그의 사본, 검증에 실패한 사본, 다시 변환되어 내용이 바뀐 영상의 이전 사본은 Drive에 그대로 남습니다. 필요하면 사용자가 Google Drive에서 직접 삭제할 수 있습니다.
6. OAuth 토큰의 저장과 관리
- Google 계정 연결은 Google의 기기 인증 방식(OAuth 2.0 Device Authorization Grant)으로 합니다. 사용자는 화면에 표시된 코드를 Google 페이지에 직접 입력해 승인하며, Road Viewer는 Google 계정 비밀번호를 받거나 저장하지 않습니다.
- 승인 후 받은 토큰(리프레시 토큰, 액세스 토큰과 만료 시각, 권한 범위)과 Drive 폴더 정보는 사용자의 Home Assistant 기기 안의 앱 데이터 폴더(
/data/roadviewer/.gdrive-auth.json)에만 저장되며, 파일 권한은 소유자만 읽고 쓸 수 있도록(0600) 설정됩니다. - 토큰은 Google의 OAuth 및 Drive API 요청에만 사용하며, Road Viewer 개발자나 다른 서버로 보내지 않습니다. 토큰, 클라이언트 보안 비밀, 업로드 세션 주소, Drive 파일 ID는 앱 화면, API 응답, 로그에 표시하지 않습니다.
- 이 토큰 파일과 앱 옵션(OAuth 클라이언트 보안 비밀 포함)은 Home Assistant 백업에 포함됩니다. 백업을 가진 사람은 Road Viewer의 Drive 폴더에 접근할 수 있으므로 백업 파일을 안전하게 보관하세요.
7. 제3자 제공과 Google API 데이터의 제한적 사용
Road Viewer는 Google API로 받은 사용자 데이터를 판매하거나, 제3자에게 제공하거나, 광고·분석·신용 평가 등 아카이빙 기능 이외의 목적에 사용하지 않습니다. Road Viewer 개발자는 사용자의 Google 데이터를 받는 서버를 운영하지 않으므로 사람이 그 데이터를 열람하지 않으며, 인공지능·머신러닝 모델 학습에도 사용하지 않습니다. 앱에는 사용 통계나 원격 수집 기능이 없습니다.
Road Viewer가 Google API로부터 받은 정보를 사용하고 다른 앱으로 전송하는 행위는 제한적 사용(Limited Use) 요구사항을 포함한 Google API 서비스 사용자 데이터 정책을 준수합니다.
Road Viewer's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
8. 연결 해제와 데이터 삭제 방법
Google 계정 연결 해제
- Road Viewer의 저장공간 관리에서 연결 해제를 누르면 기기에 저장된 토큰 파일을 즉시 삭제하고, Google에 토큰 폐기를 요청합니다. 폐기 요청이 실패해도 기기의 연결은 해제됩니다.
- Google 계정의 서드파티 앱 및 서비스 화면에서 harv-gdrive의 접근 권한을 직접 삭제할 수도 있습니다.
- 연결을 해제해도 Road Viewer의 저장 기록, 기기의 로컬 파일, Drive에 이미 올린 파일은 바뀌지 않습니다. 해제된 동안에는 아카이빙이 멈춥니다.
데이터 삭제
- Drive에 올린 파일: Road Viewer에서 해당 로그를 완전 삭제하면 다음 아카이브 실행에서 지워집니다. Drive 삭제는 아카이브 실행 때 처리되므로, 아카이빙이 꺼져 있거나 Google 계정 연결이 해제된 동안에는 처리되지 않습니다. 언제든 Google Drive에서 Road Viewer 폴더나 파일을 직접 삭제할 수 있습니다. 이동 모드로 옮긴 파일은 기기에 남아 있지 않으므로 Drive에서 지우면 복구할 수 없습니다.
- 기기의 데이터: Road Viewer에서 로그를 완전 삭제하면 기기의 해당 파일이 지워집니다. Home Assistant에서 앱을 제거하면서 앱 데이터를 함께 삭제하면 토큰 파일을 포함한 앱 데이터 폴더가 지워집니다. 이미 만든 Home Assistant 백업 안의 사본은 그 백업을 삭제해야 지워집니다.
9. 보안
- Google과의 통신은 모두 앱에서 Google로 나가는 HTTPS 연결이며, 이 기능을 위해 새로 여는 포트는 없습니다.
- 연결, 연결 해제 같은 설정 변경 요청은 Home Assistant Supervisor(Ingress)를 거친 요청만 받습니다.
- 어떤 시스템도 완전한 보안을 보장할 수는 없습니다. Home Assistant 계정과 백업, Google 계정을 안전하게 관리하는 것은 사용자의 책임입니다.
10. 방침의 변경과 문의
이 방침은 앱의 데이터 처리 방식이 바뀌면 이 페이지에서 갱신하며, 상단의 시행일을 함께 고칩니다. 변경 이력은 저장소 기록에서 확인할 수 있습니다.
문의는 GitHub 이슈로 남겨 주세요.