내 흔적에 대한 통제권

개인정보 처리방침

MathVoyage는 로그인 없이도 핵심 기능을 제공하며, 계정은 이미 만든 흔적을 동기화하고 장기 편집하기 위한 선택 기능입니다.

시행·최종 수정: 2026년 7월 14일

1. 운영자와 문의 창구

개인정보처리자는 MathVoyage 프로젝트 운영자(GitHub @forty4)입니다. 저장소와 변경 이력은 공개 저장소에서 확인할 수 있습니다.

일반 문의는 GitHub Issues를 이용하되, 공개 이슈에 이메일·토큰·익명 식별자 같은 개인정보를 쓰지 마세요. 공개 계정 기능을 활성화할 때는 실제로 확인하는 지원 이메일을 안내합니다. 기존 이메일을 사용해도 되며 전용 주소일 필요는 없습니다.

2. 처리하는 정보와 수집 방법

  • 로그인 전: 브라우저에 생성되는 무작위 mv:client-id, 탐험·퀴즈·학습 경로·시즌 진행 상태, 수첩과 열린 문제 작성에 필요한 익명 식별자, 분석이 활성인 경우 브라우저 탭의 30분 비활동 기준 무작위 항해 세션 식별자. 사용자가 분석 설정에서 선택하면 별도의 30일 비활동 기준 지속 여정 식별자, 기기·브라우저·OS 계열, IP 기반 국가·지역·도시 정보도 처리합니다.
  • Google 로그인 시: Google 계정의 고유 식별자, 이메일, 표시 이름, 프로필 사진, 언어 설정
  • 사용자가 만든 정보: 수학 수첩과 카드, 열린 문제 시도, 선택한 닉네임, 공개 여부, 추천과 신고
  • 운영·보안 정보: 요청 시각, 오류·보안 이벤트. 계정 export/delete 로그에는 원본 user id 대신 축약 hash를 사용합니다.

OAuth ID token과 세션 JWT 원문은 DB나 애플리케이션 로그에 저장하지 않습니다.

3. 이용 목적

  • 로그인 전 로컬 진행과 익명 작성물의 편집권 유지
  • 로그인 후 여러 기기의 진행 기록 병합과 작성물 claim
  • 사용자가 선택한 공개 수첩·시도의 공유와 검색 노출
  • 기본 익명 세션 또는 사용자가 선택한 가명 지속 여정으로 질문에서 탐구·비교·공유로 이어지는 이용 흐름 개선
  • 신고 처리, 중복 추천 방지, 서비스 보안과 장애 대응

개인정보를 판매하지 않으며, 여기 적은 목적을 넘어 광고 프로파일링에 사용하지 않습니다.

4. 저장 위치와 보유 기간

  • 로그인 전 진행 기록은 브라우저 localStorage에 남아 사용자가 브라우저 데이터 삭제 또는 탐험 기록 초기화로 지울 때까지 보관됩니다.
  • 분석용 항해 세션은 브라우저 탭의 sessionStorage에만 저장되고, 30분 동안 활동이 없으면 새 무작위 식별자로 교체되며 탭을 닫으면 사라집니다.
  • 선택형 지속 여정 식별자는 localStorage에 저장되고 마지막 활동 후 30일이 지나면 새 식별자로 교체됩니다. 분석 설정 선택은 사용자가 철회할 때까지 브라우저에 남으며 언제든 이 페이지에서 끌 수 있습니다.
  • 계정과 사용자 데이터는 계정 삭제 요청 때까지 PostgreSQL에 보관됩니다.
  • 세션 쿠키 mv_session은 최대 30일이며 HttpOnly, Secure(운영), SameSite=Lax로 설정됩니다.
  • 계정 삭제는 활성 DB에 즉시 반영합니다. 공개 계정 기능 활성화 시 운영 백업은 일일 스냅샷·6일 보관을 기준으로 설정하고, 삭제 데이터는 최대 7일 안에 백업에서도 만료되도록 검증합니다.

백업 일정과 복구 훈련이 운영 환경에서 확인되기 전에는 Google 로그인을 일반 사용자에게 공개하지 않습니다.

4-1. 선택형 분석 설정

기본 세션 분석은 로그인 없이 짧은 탐구 흐름만 봅니다. 서비스가 어디에서 어떤 기기로 반복 사용되는지 더 잘 이해하도록 아래 항목을 각각 선택할 수 있습니다.

현재: 탭 단위 세션 분석만 사용

기기·브라우저·OS 계열은 보되 정확한 화면 크기와 세부 버전, URL query, 수학 입력값, 자유 텍스트, 세션 녹화는 계속 제외합니다.

만 14세 미만 사용자는 보호자와 함께 선택해 주세요.

5. 외부 서비스와 처리 위탁

서비스 제공을 위해 다음 사업자의 인프라를 사용할 수 있습니다.

  • Google: 사용자가 선택한 Google 로그인과 계정 정보 제공
  • Vercel: 프론트엔드 호스팅과 same-origin API 전달
  • Railway: 백엔드와 PostgreSQL 호스팅
  • Sentry: 오류 추적. 토큰과 원문 익명 식별자를 의도적으로 전송하지 않습니다.
  • PostHog: 설정된 경우 의미 행동 지표와 기기·브라우저·OS 계열. 기본값에서는 GeoIP와 개인 프로필을 사용하지 않습니다. 사용자가 선택하면 국가·지역·도시 GeoIP와 30일 지속 여정을 사용하고, 별도 계정 연결 선택 시에만 가명 분석 프로필을 계정 흐름에 연결합니다. URL query·referrer·정확한 시간대·수학 입력값은 제거하며 자동 캡처·세션 녹화는 사용하지 않습니다.

각 사업자의 처리 위치와 보유 정책은 해당 서비스 정책의 적용을 받으며, 실제 활성화 범위가 바뀌면 이 방침을 먼저 갱신합니다.

6. 공개 작성물과 계정 삭제

공개 수첩과 숨김되지 않은 열린 문제 시도는 누구나 볼 수 있습니다. 사용자는 계정 삭제 때 다음 중 하나를 선택합니다.

  • 익명 보존: 공개 작성물은 유지하되 계정, 닉네임, 기존 익명 식별자를 제거하고 서로 연결할 수 없는 새 tombstone 식별자로 교체
  • 전체 삭제: 계정이 소유한 수첩과 열린 문제 시도를 공개 여부와 관계없이 삭제

신고와 검증 이력은 서비스 신뢰성을 위해 사용자 연결만 제거한 뒤 보존할 수 있습니다.

7. 사용자의 권리

로그인 사용자는 계정 관리 에서 데이터를 JSON으로 내보내거나 계정을 삭제할 수 있습니다. 로그인 전 로컬 데이터는 탐험 기록 에서 초기화하거나 브라우저 저장소를 삭제할 수 있습니다.

계정에 접근할 수 없는 경우 지원 창구로 문의할 수 있습니다. 선택형 분석은 이 페이지의 분석 설정에서 언제든 바꾸거나 철회할 수 있습니다. 공개 문의에는 개인정보를 넣지 마세요.

8. 아동의 개인정보

로그인 없는 학습 콘텐츠는 연령과 관계없이 이용할 수 있습니다. 만 14세 미만 사용자의 계정 기능은 법정대리인 동의 절차가 마련되기 전에는 제공하지 않습니다.

9. 안전조치와 변경 고지

세션은 HttpOnly 쿠키로 운반하고, 사용자 데이터 변경은 권한 검사와 transaction을 거치며, 콘텐츠 동기화는 사용자 데이터를 쓰지 않습니다.

처리 목적·외부 서비스·보유 기간이 바뀌면 시행 전에 이 페이지의 날짜와 내용을 갱신하고, 중요한 변경은 서비스 내에서 알립니다.