SPIN 개인정보처리방침

시행일: 2026년 9월 7일
운영자: 서기현 (개인 개발자)
문의: [email protected]
홈: https://spin.atit.app · 서비스 약관: /terms/
이 문서(한국어)가 정본이며, 영어·일본어는 같은 조 구성의 번역입니다.

제1조 (목적과 적용 범위)

  1. 이 방침은 개인 개발자 서기현(이하 "운영자")이 만든 파워체어풋볼 전술판·훈련 관리 앱 SPIN(웹 spin.atit.app 및 데스크톱 앱, 이하 "앱")에 적용됩니다.
  2. SPIN은 이용자의 데이터를 이용자의 기기 안에 저장합니다. 운영자는 이용자 데이터를 모아 두는 서버를 운영하지 않습니다. 유일한 예외는 이용자가 직접 만드는 공유 링크로, 이때에도 서버에 올라가는 것은 브라우저에서 이미 암호로 잠긴 드릴 또는 훈련 세션뿐이며 운영자는 그 내용을 볼 수 없습니다(제10조).
  3. 이 방침에 적지 않은 수집·전송은 하지 않습니다.

제2조 (한눈에 보기)

제3조 (처리하는 개인정보 항목과 수집 방법)

  1. 운영자가 수집하는 항목: 없음. 회원가입, 문의 양식, 연락처 수집이 없고, 운영자에게 전송되는 기기 식별자도 없습니다. (동기화를 켠 경우 기기 식별자 writerId 가 이용자 본인 드라이브의 파일 속성에 기록됩니다 — 제8조.)
  2. 이용자가 입력해 자기 기기에 저장하는 정보(이용자 콘텐츠)
    • 드릴: 전술판 배치·경로·자유 메모 텍스트(600자 이내)
    • 훈련 세션: 메모 텍스트, 참가자(팀 명단의 선수를 참조)
    • 팀 명단(로스터): 선수 이름(40자 이내), 선택 입력인 PF 클래스(PF1/PF2). PF 클래스는 파워체어풋볼 경기규정상 신체장애 등급에 해당하므로 민감정보입니다. 운영자는 이 정보를 수집하지 않으며, 이용자가 자기 기기에 기록하는 것입니다.
  3. 앱이 기기에 저장하는 기술 정보
    • localStorage spin.prefs — 테마, 재생 속도, 접근성, 언어, 튜토리얼 열람 여부, 동기화 켬/끔 등 앱 설정 전체
    • localStorage spin.board — 전술판의 마지막 작업 스냅샷(대문 화면용)
    • IndexedDB spin — 스토어 drills·drillSummaries·sessions·meta (드릴, 드릴 요약, 세션, 팀 명단)
    • localStorage spin.shareLinks — 이 기기에서 만든 공유 링크의 id·삭제용 열쇠·만든 시각(제10조). 공유 링크를 한 번도 만들지 않으면 생기지 않습니다
    • IndexedDB meta 스토어의 sync/* 동기화 부기 — 문서별 마지막 동기화 시각과 원격 파일 ID, 삭제 표시(톰스톤), 연결된 구글 계정 이메일, 기기 식별자(writerId). 백업 파일에는 포함되지 않습니다.
  4. 수집 방법: 모두 이용자가 앱 화면에서 직접 입력하거나 앱이 기기에 기록하는 방식입니다. 운영자에게 전송되지 않습니다.
  5. 구글 계정 이메일 주소는 이용자가 동기화를 켠 경우에만, 위 3-4의 기기 내부 부기에 기록됩니다.

제4조 (개인정보의 처리 목적)

  1. 이용자 콘텐츠: 드릴 작성·재생, 훈련 세션 기록, 팀 명단 관리 — 앱 기능을 제공하기 위해 기기 안에서만 사용합니다.
  2. 설정과 판 스냅샷: 다음 실행 때 화면 상태를 복원하기 위해 사용합니다.
  3. 동기화 부기와 구글 계정 이메일: 여러 기기 사이에서 같은 데이터를 맞추고, 지금 어떤 계정에 연결되어 있는지 설정 화면에 보여주기 위해 사용합니다.
  4. 목적 외 이용은 하지 않습니다. 프로파일링, 자동화된 의사결정, 맞춤 광고를 하지 않습니다.

제5조 (개인정보의 처리·보유 기간)

  1. 기기 안 데이터: 이용자가 지울 때까지 남습니다. 앱에서 삭제하거나, 브라우저의 사이트 데이터를 지우거나, 데스크톱 앱을 삭제하면 없어집니다.
  2. 구글 드라이브에 올린 데이터: 이용자가 앱에서 지우거나 [연결 해제]를 누를 때까지 이용자 본인 드라이브에 남습니다.
  3. 웹의 접근 토큰: 메모리에만 있으며 탭을 닫으면 사라집니다. 데스크톱의 갱신 토큰: 연결을 해제할 때까지 기기 안 파일로 남습니다.
  4. 운영자가 보관하는 개인정보는 없습니다 — 공유 링크의 암호문은 운영자가 내용을 알 수 없는 형태로만 보관되며, 마지막 열람 뒤 180일에 삭제됩니다(제10조). 웹서버 접속 로그는 제14조에 따릅니다.

제6조 (개인정보의 제3자 제공)

운영자는 개인정보를 제3자에게 제공·판매·공유하지 않습니다. 광고 네트워크나 데이터 브로커에 넘기지 않습니다. 운영자는 읽을 수 있는 이용자 데이터를 보유하지 않으므로 제공할 대상 자체가 없습니다(공유 링크의 암호문도 운영자가 열 수 없습니다 — 제10조). 이용자가 스스로 켠 구글 드라이브 동기화는 제3자 제공이 아니라, 이용자 본인 계정 저장 공간에 이용자의 파일을 두는 것입니다(제7조·제8조).

제7조 (개인정보 처리의 위탁)

  1. 평상시 위탁하는 업무가 없습니다.
  2. 이용자가 직접 구글 드라이브 동기화를 켠 경우에 한해 다음이 발생합니다.
    • 수탁자: Google LLC
    • 위탁 업무: 이용자 본인 구글 계정 드라이브의 앱 전용 숨김 폴더(appDataFolder)에 이용자 콘텐츠 파일 저장
    • 보관 위치: 구글이 운영하는 국외 서버 (제8조)
    • 성격: 운영자의 저장소가 아니라 이용자 본인 계정의 저장 공간이며, 운영자는 그 파일에 접근할 수 없습니다.
  3. 그 밖의 위탁은 없습니다. 앱은 글꼴을 자체 호스팅하며 CDN을 쓰지 않습니다. 외부에서 불러오는 코드는 동기화를 켠 이용자에게만 그 순간 주입되는 구글 로그인 스크립트(accounts.google.com/gsi/client) 하나뿐이며, 켜지 않으면 외부 스크립트를 전혀 불러오지 않습니다.

제8조 (개인정보의 국외 이전)

동기화를 켠 경우에만 다음의 국외 이전이 일어납니다.

제9조 (구글 사용자 데이터 — Google API Services User Data Policy)

  1. 요청하는 권한 범위: https://www.googleapis.com/auth/drive.appdata 하나뿐입니다. 이 범위는 SPIN 전용 숨김 폴더만 다룰 수 있고, 이용자의 일반 드라이브 파일·사진·문서에는 접근할 수 없습니다.
  2. 사용 용도 제한: 이용자 기기 사이의 동기화(파일 업로드·내려받기·삭제) 외의 용도로 사용하지 않습니다.
  3. 광고·판매 없음: 구글에서 받은 데이터를 광고에 쓰거나 판매하거나 다른 사업자에게 넘기지 않습니다.
  4. 사람이 읽지 않음: 운영자를 포함해 어떤 사람도 이 데이터를 읽지 않습니다. 파일이 이용자 계정 안에만 있으므로 기술적으로도 열람할 수 없습니다.
  5. 보관 범위: SPIN은 구글에서 받은 데이터를 자체 서버에 보관하지 않으며 다른 앱으로 전달하지 않습니다.
  6. Limited Use 준수:
    SPIN's use and transfer to any other app of information received from Google APIs will adhere to Google API Services User Data Policy, including the Limited Use requirements.
    (한국어 설명: SPIN이 구글 API로부터 받은 정보를 사용하거나 다른 앱으로 전달할 때에는 Limited Use 요건을 포함한 Google API Services User Data Policy를 따릅니다.)
  7. 권한 철회: 앱 설정의 [연결 해제] 또는 구글 계정의 https://myaccount.google.com/permissions 에서 언제든지 회수할 수 있습니다.

제10조 (공유 링크)

  1. 어떤 기능인가: 드릴 하나, 또는 훈련 세션 하나(그 세션이 쓰는 드릴들과 함께)를 링크 한 줄로 다른 사람에게 보내는 기능입니다. 이용자가 [링크로 공유]를 누른 그 드릴·세션에 대해서만 동작하며, 누르지 않으면 아무것도 올라가지 않습니다.
  2. 올라가는 것: 이용자의 브라우저가 그 드릴·세션을 먼저 암호로 잠그고, 잠긴 결과(암호문)만 운영자 서버로 올립니다. 여는 열쇠는 링크의 # 뒤에만 있으며, 주소의 이 부분은 웹 표준상 서버로 전송되지 않습니다. 공유할 때 선수 이름과 팀 이름은 빼고 보냅니다(등번호·역할·GK 여부는 남습니다). 훈련 세션을 공유할 때는 참가자 명단도 빼고 보내며, 세션의 장소와 메모는 함께 올라갑니다.
  3. 서버가 보관하는 것: 암호문, 그 크기, 링크 id, 만든 시각과 마지막 열람 시각, 그리고 삭제용 열쇠의 확인값(해시 — 열쇠 원문은 링크를 만든 기기에만 있습니다)입니다. 남용을 막는 속도 제한을 위해 접속 IP 주소를 잠시 메모리에만 두며, 디스크에 기록하지 않고 서버를 다시 시작하면 사라집니다.
  4. 운영자도 내용을 볼 수 없습니다. 열쇠가 서버에 없으므로 운영자는 올라온 드릴·세션의 제목·배치·메모를 열어 볼 수 없습니다. 계정이 없으므로 누가 만들었는지도 알지 못합니다.
  5. 보관 기간: 마지막으로 열린 때부터 180일이 지나면 자동으로 삭제됩니다. 그 뒤에는 링크가 열리지 않습니다.
  6. 삭제 요청: 링크를 만든 기기에는 그 링크의 삭제용 열쇠가 함께 저장됩니다(제3조 3-5). 링크의 id(주소에서 /s/ 뒤 부분)를 적어 [email protected] 으로 요청하시면 확인 뒤 지웁니다.
  7. 링크를 받은 사람은 누구나 열 수 있습니다. 열쇠가 링크 안에 들어 있으므로, 링크가 다른 사람에게 전달되면 그 사람도 그 드릴·세션을 볼 수 있습니다. 공개된 곳에 붙이지 마시고, 필요 없어지면 삭제를 요청하십시오.

제11조 (정보주체의 권리와 행사 방법)

  1. 열람·정정·삭제: 데이터가 이용자 기기 안에 있으므로 앱 화면에서 직접 보고 고치고 지울 수 있습니다.
  2. 처리 정지: 설정 화면에서 동기화를 끄면 구글로의 전송이 즉시 멈춥니다.
  3. 동의 철회와 삭제: 설정 화면의 [연결 해제]를 누르면 (가) 구글 쪽 동의 회수를 시도하고, (나) 앱 전용 폴더 안의 모든 파일을 인식하지 못하는 형식까지 포함해 실제로 삭제하며, (다) 데스크톱에서는 기기에 저장된 갱신 토큰 파일도 삭제합니다. 이때 이 기기의 데이터는 그대로 남습니다.
  4. 구글 계정 쪽 앱 권한은 https://myaccount.google.com/permissions 에서도 회수할 수 있습니다.
  5. 운영자가 보관하는 개인정보가 없으므로, 운영자가 대신 열람·삭제해 드릴 대상이 없습니다. 방침과 앱에 관한 문의는 [email protected] 으로 보내주십시오.
  6. 다른 사람의 정보를 입력할 때: 팀 명단에 다른 사람의 이름이나 PF 클래스를 넣는 경우, 그 사람에게 알리고 동의를 받을 책임은 이용자에게 있습니다.

제12조 (개인정보의 파기 절차와 방법)

  1. 앱에서 드릴·세션·선수를 삭제하면 기기의 IndexedDB 레코드가 지워집니다. 동기화를 켠 상태라면 삭제 표시(톰스톤)를 통해 다른 기기와 드라이브의 파일도 삭제됩니다.
  2. [연결 해제]는 앱 전용 폴더 안의 파일 전부를 실제로 삭제합니다.
  3. 브라우저의 사이트 데이터를 지우거나 데스크톱 앱의 데이터 폴더를 삭제하면 기기에 남은 정보가 남김없이 제거됩니다.
  4. 운영자에게는 별도로 파기할 보관본이 없습니다.

제13조 (개인정보의 안전성 확보 조치)

  1. 최소 수집: 운영자에게 전송되는 개인정보가 없습니다. 공유 링크만이 운영자 서버로 무언가를 보내는데, 그것은 기기에서 이미 잠근 암호문이고 여는 열쇠는 서버에 없습니다(제10조).
  2. 최소 권한: 구글 권한은 앱 전용 폴더 하나(drive.appdata)만 요청합니다.
  3. 전송 구간 암호화: 구글과의 통신은 모두 HTTPS입니다.
  4. 웹 토큰: 접근 토큰을 메모리에만 두고 localStorage나 IndexedDB에 저장하지 않습니다. 탭을 닫으면 사라집니다.
  5. 데스크톱 토큰(한계 고지): 데스크톱 앱은 갱신 토큰을 앱 데이터 폴더의 google-refresh-token 파일에 저장합니다. 파일 권한을 0600으로 제한하지만 암호화하지는 않습니다. 같은 사용자 계정으로 실행되는 다른 프로그램은 이 파일을 읽을 수 있습니다. 기기 계정에 잠금·디스크 암호화를 적용하시고, 공용 기기에서는 사용 후 [연결 해제]를 권합니다.
  6. 데스크톱 통신 제한: 앱이 접속할 수 있는 주소를 앱 자신·내부 통신과 구글 3개 도메인(www.googleapis.com, accounts.google.com, oauth2.googleapis.com)으로 제한합니다.
  7. 외부 코드 최소화: 분석 도구·광고 코드·CDN 글꼴이 없고 글꼴을 자체 호스팅합니다. 외부에서 불러오는 코드는 동기화를 켠 경우의 구글 로그인 스크립트 하나뿐입니다(제7조 3항).
  8. 자동 업데이트 없음: 데스크톱 앱에는 자동 업데이트 기능이 없습니다. 보안 수정본은 이용자가 새 설치 파일을 직접 받아 설치해야 합니다.

제14조 (자동 수집 장치와 접속 로그)

  1. SPIN은 쿠키를 사용하지 않습니다. 분석 도구, 광고 추적기, 오류 보고 도구를 넣지 않았습니다. 다만 동기화를 켤 때 열리는 구글 로그인·동의 화면은 구글 자신의 쿠키를 쓸 수 있으며, 이는 구글의 정책에 따릅니다.
  2. localStorage와 IndexedDB는 앱 동작을 위한 기기 내부 저장이며 외부로 나가지 않습니다.
  3. 서비스워커가 없습니다. 앱을 홈 화면에 추가하는 기능은 manifest 파일만 사용하며, 요청을 가로채는 코드가 없습니다.
  4. 웹 페이지에는 검색엔진 소유 확인용 메타 태그와 정적 구조화 데이터(JSON-LD)만 들어 있고, 외부 스크립트 태그가 없습니다.
  5. 웹서버 접속 로그: 웹은 AWS Lightsail의 Apache 웹서버에서 정적 파일로 제공됩니다. 웹서버가 표준 접속 로그(IP 주소, 접속 시각, 요청 경로, User-Agent 등)를 남길 수 있습니다. 이 로그는 서비스 제공과 장애·침해 대응 범위에서만 쓰이며, 분석·프로파일링·광고에 사용하지 않고 제3자에게 제공하지 않습니다.

제15조 (아동의 개인정보)

  1. 앱은 나이를 묻지 않으며 아동을 대상으로 하는 서비스가 아닙니다.
  2. 운영자가 수집하는 개인정보가 없으므로 아동으로부터 개인정보를 수집하지 않습니다.
  3. 만 14세 미만 아동이 사용할 때에는 법정대리인의 지도 아래 사용하시기 바랍니다. 팀 명단에 아동 선수의 이름이나 PF 클래스를 입력하는 경우, 법정대리인의 동의를 받을 책임은 이용자에게 있습니다.

제16조 (개인정보 보호책임자)

제17조 (권익침해 구제 방법)

개인정보와 관련한 분쟁이나 신고는 아래 기관에 문의할 수 있습니다.

제18조 (방침의 변경과 고지)

  1. 이 방침은 2026년 9월 7일부터 시행합니다(2026년 9월 6일 최초 시행 · 제10조 공유 링크 신설).
  2. 방침을 바꿀 때에는 바뀐 내용과 시행일을 이 페이지에 적어 알립니다. 이용자에게 불리하거나 중요한 변경은 시행 최소 7일 전에 이 페이지에 알립니다.
  3. 이전 방침이 필요하면 [email protected] 으로 요청하십시오.

맨 위로 · 서비스 약관 · spin.atit.app