이 방침은 OpenTex에서 어떤 개인정보를 왜 처리하는지, 누구에게 처리를 맡기는지, 얼마나 보관하는지, 그리고 이용자가 무엇을 선택하고 어떤 권리를 행사할 수 있는지 설명합니다. 「개인정보 보호법」에 따라 작성했으며, 유럽경제지역(EEA)과 영국 이용자를 위한 GDPR 안내도 함께 담았습니다.
- 서비스
- 무료 브라우저 기반 LaTeX 에디터 OpenTex (www.opentex.ai)
- 운영자(개인정보처리자)
- 윤상호 (대한민국에 거주하는 개인, 법인 아님)
한눈에 보기
- 계정 없이 이용할 수 있습니다. 로그인하지 않고 만든 프로젝트(버전 기록, 댓글, 채팅 포함)와 논문 라이브러리는 브라우저에 저장되고 LaTeX 컴파일은 언제나 브라우저에서 이뤄지며, 이 정보는 운영자에게 전송되지 않습니다.
- Google 로그인은 선택 사항입니다. 로그인하면 운영자는 Google 계정 식별자, 이메일 주소, 이름, 프로필 사진을 받으며, 계정에서 만든 프로젝트는 로그인한 어느 기기에서나 열 수 있도록 운영자의 서버에 저장됩니다.
- 계정에 저장된 프로젝트는 초대한 사람과 공유할 수 있습니다. 프로젝트 멤버는 프로젝트 내용과 서로의 이름, 프로젝트 안에서의 활동을 볼 수 있으며, 소유자와 편집자는 멤버의 Google 이메일 주소도 볼 수 있습니다.
- 호스팅 업체가 일반적인 접속 기록을 남기고 쿠키 없이 방문 통계를 집계하며, 오류는 오류 모니터링 서비스에 보고됩니다.
- 방문자가 첫 화면에서 컴파일된 논문까지 가는 동안 어디에서 멈추는지 알기 위해, 브라우저가 Mixpanel에 익명 이용 이벤트(예: “에디터를 열었음”, “컴파일이 끝났음”)를 보냅니다. 이벤트에는 한 번의 방문 동안만 쓰는 무작위 ID가 붙을 뿐 쿠키, 계정 정보, 이용자가 쓴 내용은 담기지 않으며, 브라우저에서 Global Privacy Control이나 Do Not Track을 켜면 보내지 않습니다.
- 로그인하지 않은 동안에는 방문자가 어디에서 막히는지 알기 위해 Mixpanel이 클릭, 스크롤, 마우스 움직임처럼 페이지를 어떻게 이용하는지도 기록합니다. 첫 화면과 법률 문서 페이지를 제외하면 글자와 이미지는 전송 전에 빠지므로, 이용자가 쓴 내용은 Mixpanel에 전달되지 않습니다. 쿠키는 설정하지 않습니다. 기기의 시간대가 유럽이면 실행되지 않으며, Global Privacy Control이나 Do Not Track을 켜면 꺼집니다.
- 개인정보를 판매하지 않으며, 광고를 보여 주거나 광고 추적 도구를 쓰지 않습니다.
- 프로젝트는 앱에서 직접 내려받거나 삭제할 수 있습니다. 운영자가 보관하는 그 밖의 정보의 사본을 받거나 계정을 삭제하려면 이메일(sanghoyun@postech.ac.kr)로 요청하시기 바랍니다.
- 참여하는 프로젝트가 GitHub 저장소에 연결되어 있으면, 그 프로젝트에서의 리뷰 활동(제안과 그 결정, 댓글, 해결한 스레드, 이름 붙인 버전)이 이용자의 이름, 이메일 주소, 그리고 GitHub를 연결했다면 GitHub 사용자 이름과 함께 그 저장소에 기록됩니다. 저장소를 읽을 수 있는 사람은 누구나 이를 볼 수 있으며, 이 내용은 저장소의 기록(history)에 남습니다.
1. 개인정보의 처리 목적
운영자는 다음 목적으로만 개인정보를 처리하며, 목적별 법적 근거는 아래와 같습니다.
| 처리 목적 | 처리 항목 | 법적 근거(개인정보 보호법) |
|---|---|---|
| 웹사이트, 에디터, TeX Live 파일 서비스의 제공과 안정적인 운영(장애 대응, 부정 이용 방지) | 접속 기록, 오류 보고 | 계약의 이행(제15조제1항제4호), 서비스 보안에 관한 정당한 이익(제15조제1항제6호) |
| 로그인과 계정 식별 | Google 계정 정보, 세션 기록 | 제15조제1항제4호 |
| GitHub 연결(Connect GitHub)을 선택한 경우 GitHub 계정의 연결 | GitHub 인증 코드와 토큰(전달만 하고 저장하지 않음) | 제15조제1항제4호 |
| 계정 프로젝트의 저장, 그리고 이용자의 기기 사이와 프로젝트 멤버 사이의 동기화 | 계정 프로젝트 데이터, 실시간 연결로 전송되는 정보 | 제15조제1항제4호 |
| 프로젝트 공유: 초대, 멤버와 역할 관리, 멤버 사이의 정보 표시 | 표시 이름, Google 이메일 주소, 초대받은 이메일 주소, 멤버 기록 | 제15조제1항제4호. 주소의 주인이 참여하기 전의 초대 이메일 주소는 제15조제1항제6호 |
| 공유 프로젝트의 안전한 운영(공유 작업 기록, 재참여 차단, 요청 횟수 제한) | 계정 식별자, 작업 내용과 일시, 초대받은 이메일 주소 | 제15조제1항제4호, 제15조제1항제6호 |
| GitHub에 연결된 프로젝트의 리뷰 기록을 그 저장소에 기록 | 리뷰 활동과 표시 이름, 이메일 주소, GitHub 사용자 이름과 사용자 ID | 동의(제15조제1항제1호, 제17조제1항제1호, 제28조의8제1항제1호). 참여하기 전에 안내를 확인하는 것으로 동의 |
| 로그인한 상태에서 연결한 GitHub 계정의 확인 | GitHub 사용자 이름과 사용자 ID | 제15조제1항제4호 |
| 서비스 개선을 위한 이용 현황과 페이지 성능의 집계 | 이용 통계와 성능 정보, 익명 이용 이벤트 | 제15조제1항제6호 |
| 로그인하지 않은 방문자가 페이지를 이용하는 모습을 녹화로 파악하여 불편한 점을 찾는 것 | 페이지 녹화(첫 화면과 법률 문서 페이지를 제외하면 글자와 이미지는 제외), 페이지 주소, 방문의 무작위 ID, IP 주소, 브라우저와 기기 정보 | 제15조제1항제6호 |
| 문의와 요청(개인정보 관련 요청 포함)의 처리 | 이메일 주소, 문의 내용 | 제15조제1항제4호, 법령상 의무의 준수(제15조제1항제2호) |
| 피드백 제보의 접수와 답변, 답변과 처리 상태의 표시, 제보 기능의 남용 방지 | 제보 내용과 이용자가 이어 쓴 글, 운영 팀의 답변, 제보의 처리 상태, 계정의 이름과 이메일 주소 또는 이용자가 입력한 이메일 주소, 게스트 토큰의 해시, IP 주소를 키로 해시한 값 | 제15조제1항제4호, 제15조제1항제6호 |
| 법령상 의무의 이행 | 법령에서 정한 정보 | 제15조제1항제2호 |
개인정보를 새로운 목적으로 이용하려는 경우에는 먼저 이 방침을 변경하고, 법령에서 요구하는 경우 별도의 동의를 받습니다.
2. 처리하는 개인정보의 항목
로그인하지 않고 만든 프로젝트는 이용자의 브라우저에만 저장되며, 계정으로 옮기지 않는 한 운영자에게 전달되지 않습니다. 계정에 저장된 프로젝트(이하 “계정 프로젝트”)는 어느 기기에서나 열고 다른 사람과 공유할 수 있도록 운영자의 서버에 저장됩니다. 기능별로 처리하는 개인정보는 다음과 같습니다. 운영자는 민감정보를 요구하지 않습니다. 다만 프로젝트에는 이용자가 작성한 내용이 그대로 담기고, 계정 프로젝트의 내용은 운영자의 서버에 저장되어 프로젝트 멤버에게 보이므로, 본인이나 다른 사람의 민감한 정보를 프로젝트에 적을 때는 주의하시기 바랍니다.
로그인 없이 이용하는 경우
- 운영자는 계정이나 프로필을 만들지 않으며, 앱은 서버에 이용자에 관한 정보를 저장하지 않습니다(이용자가 피드백 제보를 보낸 경우와, 다른 사람이 이용자의 이메일 주소로 프로젝트에 초대한 경우는 제외, 프로젝트 공유 참조). 다만 다른 웹사이트와 마찬가지로 호스팅 업체인 Vercel이 IP 주소, 브라우저와 기기 정보(User-Agent), 요청한 주소와 쿼리(예:
/editor?project=…의 임의 프로젝트 ID), 이전 페이지 주소(리퍼러), 요청과 함께 전송되는 쿠키, 접속 일시를 받으며, 이 접속 기록을 짧은 기간 보관합니다. - Vercel은 한국에서 홈페이지에 접속한 방문자에게 한국어 페이지를 보여 주기 위해 IP 주소로 국가를 판별합니다. 운영자는 이 국가 정보를 저장하지 않습니다.
- 모든 페이지에서 Vercel Web Analytics와 Speed Insights가 동작하며, 페이지 주소와 경로, 리퍼러, 필터링된 쿼리 파라미터, IP 주소로 추정한 국가·지역·도시, 운영체제, 브라우저, 기기 유형, 네트워크 속도, 페이지 성능 지표(Web Vitals)를 기록합니다. 쿠키는 사용하지 않으며, 방문자는 요청 정보로 만든 해시로 집계되고 이 해시는 24시간 후 폐기됩니다.
- 페이지나 운영자의 서버 기능에서 오류가 나면 오류 모니터링 서비스인 Sentry로 보고가 전송되고, 일부 페이지 로드와 요청에 대해서는 성능 측정값도 전송됩니다. 보고에는 오류 내용과 코드상 발생 위치, 쿼리를 뺀 페이지 주소, 브라우저·운영체제·기기 정보, 오류 직전의 동작(연 페이지, 보낸 요청 등)이 담깁니다. 운영자는 Sentry가 계정 정보, 쿠키, 요청 헤더와 본문, 코드가 다루던 값을 수집하지 않고 세션을 녹화하지 않도록 설정했습니다. 다른 웹 요청과 마찬가지로 Sentry는 보고와 함께 IP 주소를 받습니다.
- 오류 보고와 이용 통계에는 주소의 “#” 뒤 부분(초대 링크의 토큰이 들어 있는 부분)이 포함되지 않습니다. 익명 이용 통계는 그 부분에서 캠페인 태그(
utm_…)만 가져옵니다. 페이지 이용 녹화는 초대 페이지에서 실행되지 않습니다.
익명 이용 통계(Mixpanel)
방문자가 첫 화면에서 컴파일된 논문까지 가는 동안 어디에서 멈추는지, 그래서 무엇을 고쳐야 하는지 알기 위해, 로그인 여부와 관계없이 브라우저가 몇 가지 이용 이벤트를 Mixpanel에 직접 보냅니다. Mixpanel의 스크립트는 쓰지 않으며 OpenTex 서비스의 코드가 직접 보냅니다. 보내는 이벤트는 다음이 전부입니다.
| 이벤트 | 보내는 때 | 담기는 정보 |
|---|---|---|
page_view | 페이지가 열릴 때 | 어느 페이지인지(영어나 한국어 첫 화면, 프로젝트 목록, 에디터, 로그인 페이지, 그 밖의 페이지), 기기 종류(휴대폰, 태블릿, 컴퓨터), 앱 안의 브라우저인지, 브라우저의 언어(예: “ko”) |
start_clicked | 첫 화면에서 앱으로 들어가는 링크를 누를 때 | 어느 링크인지(첫 화면 상단, 가져오기 섹션, 요금 섹션, 머리글, 바닥글, 마지막 섹션), 기기 종류 |
phone_sheet_shown, phone_sheet_share, phone_sheet_copy, phone_sheet_continue | 휴대폰에서 컴퓨터용 서비스라는 안내가 열릴 때, 그리고 그 안내의 링크를 보내거나 복사하거나 휴대폰에서 계속할 때 | 그 밖의 정보 없음 |
inapp_notice_shown, inapp_open_browser | 앱 안의 브라우저에서 페이지를 브라우저로 열라는 안내가 보일 때, 그리고 그 버튼을 누를 때 | 앱 이름(예: 카카오톡, Instagram) |
project_created | 프로젝트 목록에서 프로젝트를 만들 때 | 무엇으로 만들었는지(빈 프로젝트, 예제 논문, ZIP 파일, 여러 프로젝트가 든 ZIP 파일 속 하나, 복사본), 계정에 만들었는지 |
editor_opened | 에디터가 프로젝트를 열 때 | 계정 프로젝트인지, Visual 보기로 열렸는지 |
compile_result | 컴파일이 끝날 때 | PDF가 만들어졌는지, 엔진(pdfLaTeX 또는 XeLaTeX), TeX Live 버전, 방문 중 첫 컴파일인지, 걸린 시간(초), 실패했다면 그 이유(문서의 오류, 엔진이 멈추거나 응답하지 않음, TeX Live 파일에 접근할 수 없음), 문서에 오류가 있었다면 첫 오류의 종류(이미지 파일 없음, 알 수 없는 명령어, 중괄호 짝 오류 등. 오류의 내용이나 그 안의 이름은 보내지 않음) |
save_prompt_shown, save_prompt_clicked | 이 브라우저의 프로젝트를 계정에 저장하도록 권하는 카드가 열릴 때, 그리고 카드의 주 버튼을 누를 때 | 어느 단계인지(로그인 또는 프로젝트 옮기기) |
signin_started, signin_completed | Google 로그인을 시작할 때, 그리고 같은 방문 중에 로그인이 끝났을 때 | 어느 페이지에서 시작했는지(로그인 페이지, 초대 페이지, 프로젝트 목록) |
invite_created | 초대 링크나 이메일 초대를 만들 때 | 둘 중 어느 것인지 |
- 모든 이벤트에 함께 담기는 정보: 방문의 무작위 ID, 시각, 앱 버전, 이전 사이트의 도메인(예:
www.google.com, 페이지 주소는 담기지 않음), 그리고 방문을 시작한 주소에 캠페인 태그(utm_source,utm_medium,utm_campaign,utm_term,utm_content)가 있었다면 그 값. 그리고 녹화가 진행 중이면, 이벤트가 그 녹화에 표시되도록 녹화의 ID. - 보내지 않는 정보: 페이지 주소와 그 쿼리, 프래그먼트(따라서 프로젝트 ID나 초대 토큰도), 프로젝트와 파일 이름, 이용자가 쓴 내용, 이름, 이메일 주소, 계정 식별자. 로그인했는지와 관계없이 이벤트는 계정과 연결되지 않으며, 쿠키를 만들거나 읽지 않습니다.
- 방문 ID: 브라우저에서 무작위로 만들어 그 탭의 sessionStorage에 보관합니다(자동 수집 장치 참조). 탭을 닫으면 삭제되고 30분 동안 이벤트가 없으면 새 ID로 바뀌므로, 방문과 방문을 서로 연결할 수 없습니다. 이벤트에는 보낸 사람을 알 수 있는 정보가 이 밖에 없으므로, 운영자도 특정한 사람의 이벤트를 가려낼 수 없습니다. 정보주체의 권리를 행사하는 요청을 받은 경우에도 마찬가지입니다.
- 요청 자체: 다른 웹 요청과 마찬가지로 각 요청에는 이용자의 IP 주소와 브라우저 정보(User-Agent)가 함께 전달됩니다. OpenTex 서비스는 Mixpanel에 IP 주소로 위치를 추정하지 않도록 요청하며, Mixpanel은 IP 주소를 저장하지 않습니다. 브라우저 정보(User-Agent)는 각 이벤트와 함께 그 이벤트의 보관 기간 동안 보관합니다.
- 끄는 방법: 브라우저에서 Global Privacy Control이나 Do Not Track을 켜 두면 이용 이벤트를 보내지 않고 ID도 저장하지 않습니다. 자동화된 브라우저에서도 보내지 않습니다. 콘텐츠 차단 기능으로 막을 수도 있으며, 막아도 서비스 이용에는 영향이 없습니다.
페이지 이용 녹화(Mixpanel)
방문자가 어디에서 막히는지 알기 위해, 로그인하지 않은 동안 페이지를 어떻게 이용하는지 녹화합니다. OpenTex 서비스가 제공하는 Mixpanel의 녹화 프로그램이 브라우저에서 실행되어 기록한 내용을 약 10초마다 Mixpanel로 직접 보내므로, 이보다 짧은 방문은 녹화되지 않습니다. 운영자는 Mixpanel에서 이 녹화를 봅니다.
- 수집하는 정보: 페이지의 구성과 그 변화, 마우스 움직임, 클릭, 스크롤, 텍스트 선택, 창 크기, 각 페이지의 전체 주소(쿼리와 “#” 뒤 부분 포함. 예:
/editor?project=…의 프로젝트 ID), 방문의 무작위 ID(익명 이용 통계 참조), 그리고 다른 웹 요청과 마찬가지로 IP 주소와 브라우저 정보(User-Agent). 이용 이벤트와 달리 녹화 요청에는 IP 주소로 위치를 추정하지 않도록 하는 요청을 담을 수 없습니다. - 수집하지 않는 정보: 첫 화면과 법률 문서 페이지를 제외하면 브라우저가 전송 전에 글자를 가리고, 이미지와 함께 이름이나 이용자의 내용이 담길 수 있는 속성(라벨, 툴팁, 링크 주소 등)이 있는 요소를 뺍니다. 프로젝트와 파일 이름, 이용자가 쓴 내용, 컴파일한 PDF와 컴파일 기록은 전송되지 않으며, 화면에서 각 요소의 위치와 글자 수만 남습니다. 입력란의 내용은 모든 페이지에서 가립니다. 모든 사람에게 같은 내용을 보여 주는 첫 화면과 법률 문서 페이지는 글자와 이미지까지 기록됩니다. 콘솔 메시지와 네트워크 요청은 기록하지 않습니다.
- 실행되지 않는 경우: 로그인한 동안이나 로그인 세션이 있는 브라우저(로그인하면 멈춥니다), 주소에 토큰이 담기는 초대 페이지, 기기의 시간대가 유럽이거나 알 수 없는 경우, Global Privacy Control이나 Do Not Track을 켠 경우, 자동화된 브라우저와 크롤러, 위 규칙을 적용할 수 없는 오래된 브라우저
- 쿠키와 자체 ID 없음: 브라우저에 아무것도 저장하지 않습니다. 방문의 무작위 ID를 쓰므로 한 방문의 녹화를 그 방문의 이용 이벤트와 함께 볼 수 있으며, 방문과 방문을 서로 연결할 수 없습니다. 녹화에는 만든 사람을 알 수 있는 정보가 이 밖에 없으므로, 운영자도 특정한 사람의 녹화를 가려낼 수 없습니다. 정보주체의 권리를 행사하는 요청을 받은 경우에도 마찬가지입니다.
- 끄는 방법: 브라우저에서 Global Privacy Control이나 Do Not Track을 켜거나 콘텐츠 차단 기능으로 막으면 됩니다. 막아도 서비스 이용에는 영향이 없습니다.
2026-11-05의 Microsoft Clarity: 이날 몇 시간 동안 같은 목적으로, 로그인하지 않은 동안 Microsoft Clarity를 사용했으며, 첫 화면과 법률 문서 페이지를 제외하면 글자와 이미지를 가렸습니다. 지금은 사용하지 않습니다. 그때 방문했다면 Clarity가 쿠키를 설정했습니다. _clck와 _clsk는 다음 방문 때 OpenTex 서비스가 지우며, Microsoft 도메인의 쿠키(MUID, CLID, SM, MR, SRM_B, ANONCHK)는 만료될 때까지(최대 13개월) 또는 이용자가 삭제할 때까지 남습니다. Clarity 약관에 따라 Microsoft는 그때 수집한 정보에 대해 독립적으로 책임을 지며, Microsoft 개인정보처리방침에 따른 목적(광고 포함)으로 이용할 수 있습니다.
게스트 프로젝트는 브라우저에 저장됩니다
- 로그인하지 않은 상태에서 만든 프로젝트(이하 “게스트 프로젝트”)의 이름과 파일(이미지 포함), 버전 기록, 댓글 스레드와 답글, 라벨, 리뷰 로그, 변경 추적 제안, 설정, 프로젝트 채팅, 동기화하는 GitHub 저장소와 브랜치 정보는 이용자의 브라우저(IndexedDB, localStorage)에 저장되며 운영자는 이를 볼 수 없습니다. 로그인해도 어디로도 전송되지 않으며, 게스트 프로젝트는 이용자가 “내 계정으로 옮기기(Move to my account)”를 선택한 경우에만 계정으로 옮겨집니다(아래 계정 프로젝트 참조).
- LaTeX 컴파일(pdfLaTeX, XeLaTeX)은 모든 프로젝트에서 브라우저 안의 WebAssembly로 실행되고, 만들어진 PDF는 해당 탭의 메모리에만 남습니다. 원고는 컴파일을 위해 업로드되지 않습니다.
TeX Live 파일
문서에 필요한 TeX Live 파일(클래스, 패키지, 글꼴, 포맷 파일 등)이 프로젝트에 없으면, 브라우저가 이 사이트의 /texlive 서비스에 파일 이름으로 요청합니다. 문서가 프로젝트에 없는 파일을 참조하면(예: \input{chapter3}) 그 파일 이름도 요청됩니다. 파일 내용은 전송되지 않으며, 이 요청은 일반적인 웹 요청(위 참조)과 같이 처리됩니다. 운영자의 서버는 공개된 패키지 아카이브를 TeX Live 미러에서, 엔진의 포맷 파일을 GitHub에서 받아 오며, 이 요청에는 이용자에 관한 정보가 포함되지 않습니다.
Google 로그인(선택)
- Google에서 받는 정보(로그인할 때): Google 계정 식별자, 이메일 주소와 인증 여부, 이름, 프로필 사진 URL. 그 밖의 Google 정보는 요청하지 않습니다(Google 사용자 데이터 참조).
- 로그인 서비스(Supabase Auth)에서 생성되는 정보: 계정 생성 일시와 최근 로그인 일시, IP 주소와 브라우저 정보가 포함된 세션 기록.
- 브라우저에 저장되는 정보: 로그인 상태를 유지하는 세션 쿠키(자동 수집 장치 참조).
- 로그인 페이지, 초대 페이지, 기다리는 초대를 수락하라는 안내는 열리는 즉시(클릭하기 전에도) Google 로그인 스크립트를 불러오므로, Google이 자체 개인정보처리방침에 따라 IP 주소와 브라우저 정보를 받습니다. 로그인한 상태에서는 프로필 사진을 Google 서버에서 불러오며, OpenTex 서비스는 이 사진을 계정 메뉴에서 본인에게만 보여 줍니다.
계정 프로젝트(로그인한 경우)
- 로그인한 상태에서 새로 만들거나 ZIP 파일로 가져온 프로젝트는 계정에 만들어지며, 로그인한 어느 기기에서나 열 수 있습니다.
- 운영자의 서버(Supabase)에 저장되는 정보: 계정 프로젝트마다 프로젝트 ID와 이름, 각 텍스트 파일의 경로와 전체 내용(변경 기록으로 저장되며, 이 기록은 주기적으로 문서 전체의 스냅샷에 병합됩니다), 프로젝트에 추가한 이미지 등의 파일, 컴파일러와 메인 문서 설정, 댓글 스레드(파일, 줄 위치, 댓글이 가리키는 본문의 짧은 인용, 작성자, 작성 일시와 해결 일시)와 그 댓글, 제안(제안한 변경 내용, 작성자, 수락하거나 거절한 사람과 그 일시), 리뷰 로그(이벤트 종류, 작성자 이름, 시각, 메시지), 이름 붙인 버전(라벨과 메모), 프로젝트 채팅, 프로젝트의 멤버와 초대(프로젝트 공유 참조). 모든 변경과 기록은 그것을 만든 계정과 함께 저장됩니다. 리뷰 로그 메시지에는 댓글과 제안의 일부 문구, 파일 이름, 가져온 ZIP 파일 이름, 인용 키, GitHub 저장소와 브랜치 이름이 포함될 수 있습니다. 표시 이름(처음 로그인할 때의 Google 계정 이름)은 프로필에 저장됩니다.
- 운영자의 서버에 저장되지 않는 정보: 버전 기록(스냅샷은 만들어진 브라우저에만 남습니다), 자동 컴파일 설정, 동기화하는 GitHub 저장소와 브랜치, GitHub 토큰, 논문 라이브러리.
- 브라우저는 계정 프로젝트를 빠르게 열고 오프라인에서도 쓸 수 있도록 그 사본을 계정별로 보관하며, 오프라인에서 한 변경은 다시 연결되면 전송됩니다. 로그아웃하면 이 사본이 브라우저에서 삭제되며, 아직 서버에 전송되지 않은 변경이 있으면 먼저 확인을 요청합니다. 게스트 프로젝트, 논문 라이브러리, GitHub 토큰은 브라우저에 남습니다.
- API 토큰과 AI 에이전트(MCP): 계정 메뉴에서 API 토큰을 만들면 운영자는 토큰 자체가 아니라 그 해시와 이름, 허용 범위(읽기만, 댓글과 제안까지, 제안의 수락과 거절까지 중 하나이며 나중에 바꿀 수 있음), 생성 일시, 마지막 사용 일시, 철회 일시를 저장합니다. 토큰을 가진 쪽(스크립트나 운영자의 MCP 엔드포인트로 연결한 AI 에이전트 등)은 토큰을 철회하거나 이용자가 멤버에서 빠질 때까지 이용자가 멤버인 프로젝트의 파일과 리뷰 기록(댓글, 제안과 그 결정, 리뷰 로그, 이름 붙인 버전, 표시 이름 포함)을 읽을 수 있으며, 이에 답하기 위해 운영자의 서버가 프로젝트 문서를 읽습니다. 댓글과 제안을 허용한 토큰은 이용자의 이름으로, 이용자의 역할 안에서 댓글 스레드를 열고 답하고 해결하며 수정을 제안하고 이용자 자신의 제안을 철회할 수 있고, 이 기록은 앱에서 쓴 것과 같이 저장되어 프로젝트 멤버에게 보입니다. 수락과 거절을 허용한 토큰은 이용자의 이름으로, 이용자의 역할 안에서 제안을 결정할 수도 있으며, 제안을 수락하면 앱에서 수락할 때와 같이 파일이 바뀝니다. 도구나 에이전트가 읽은 내용을 어떻게 다루는지는 이용자와 그 제공자에게 달려 있습니다. 토큰은 계정과 함께 삭제됩니다.
- 이전의 클라우드 백업이 계정에 복사해 둔 프로젝트는 “업데이트 전에 저장됨(Saved before the update)”으로 표시됩니다. 이 프로젝트를 열면 한 번 계정 프로젝트로 전환되며, 이전 사본은 삭제되지 않습니다.
프로젝트 공유
- 역할: 멤버의 역할은 소유자(Owner), 편집자(Editor), 검토자(Reviewer), 열람자(Viewer)입니다. 열람자는 프로젝트를 읽고 컴파일하고 내려받을 수 있고, 검토자는 여기에 더해 댓글 작성과 해결, 변경 제안, 채팅을, 편집자는 파일 수정, 제안의 수락과 거절, 초대를, 소유자는 멤버 관리, 프로젝트 이름 변경과 삭제를 할 수 있습니다. 소유자와 편집자는 다른 사람을 편집자, 검토자, 열람자로 초대할 수 있으며, 초대로 소유자 역할을 줄 수는 없습니다.
- 멤버에게 보이는 정보: 프로젝트의 파일과 그 모든 변경(바로 반영됨), 접속 중인 멤버와 각자 열어 둔 파일, 커서와 선택 영역, 작성자의 표시 이름이 붙은 댓글, 제안과 그 결정, 리뷰 로그, 이름 붙인 버전, 채팅, 그리고 멤버 목록(각 멤버의 표시 이름, 역할, 참여 시점, 링크와 이메일 중 어느 방법으로 참여했는지). 소유자와 편집자는 멤버의 Google 이메일 주소와 대기 중인 이메일 초대의 주소도 볼 수 있습니다(편집자는 자신이 보낸 초대만). 프로필 사진은 다른 멤버에게 보이지 않습니다.
- 초대 링크: 링크 주소의 “#” 뒤에는 무작위 토큰이 들어 있으며, 브라우저는 이 부분을 서버로 보내지 않습니다. 초대 페이지는 열리는 즉시 주소창에서 토큰을 지우고, 로그인을 거친 뒤에도 쓸 수 있도록 그 탭에 최대 1시간 보관합니다. 토큰은 초대 내용을 보여 주고 수락할 때에만 운영자의 데이터베이스로 전송되며, 데이터베이스에는 토큰의 해시만 저장됩니다. 링크를 열고 Google로 로그인한 사람은 프로젝트 이름, 부여되는 역할, 링크를 만든 사람의 표시 이름, 링크의 만료 시점을 볼 수 있으며, “프로젝트 참여(Join the project)”를 눌러야만 참여합니다. 링크를 만든 사람은 만료 시점(최대 1년, 또는 만료 없음)과 사용할 수 있는 인원을 정하고 링크를 철회할 수 있습니다.
- 이메일 초대: 소유자와 편집자는 Google 주소로 다른 사람을 초대할 수 있습니다. 운영자는 그 주소로 만든 계정이 아직 없더라도 주소를 저장하고, 로그인하는 사람의 Google 인증 주소와 대조하여, 초대받은 사람이 그 주소의 Google 계정으로 다음에 로그인할 때 프로젝트에 참여시킵니다. OpenTex 서비스는 이메일을 보내지 않으며, 초대한 사람이 직접 알립니다. 초대는 수락되거나 철회되지 않으면 30일 후 만료됩니다. 이용자의 주소로 초대가 왔다면 그 주소는 초대한 사람이 입력한 것이며, 이에 관해 문의하거나 삭제를 요청할 수 있습니다(정보주체의 권리 참조).
- 실시간 연결: 멤버가 둘 이상인 프로젝트를 열면, 각 멤버의 브라우저가 그 프로젝트의 현재 멤버만 들어올 수 있는 비공개 채널로 Supabase Realtime에 연결됩니다. 운영자의 데이터베이스는 이 채널로 문서 변경, 새 리뷰 기록, 채팅 메시지를 보내고, 각 브라우저는 멤버의 접속 여부와 열어 둔 파일, 그리고 다른 사람이 있을 때에는 커서 위치를 다른 멤버에게 알립니다. 다른 멤버가 없는 프로젝트는 실시간 연결을 쓰지 않습니다.
- 공유 프로젝트의 안전한 운영: 데이터베이스는 공유 작업을 그 작업을 한 계정과 일시와 함께 기록합니다. 초대의 생성과 철회(이메일 초대는 주소 포함), 참여, 역할 변경, 멤버 제외, 프로젝트 나가기, 계정 삭제에 따른 소유권 이전이 기록되며, 소유자와 편집자가 이 기록에 접근할 수 있습니다. 소유자가 멤버를 제외하면, 차단하지 않기로 선택하지 않는 한 그 계정은 소유자가 차단을 해제할 때까지 어떤 초대로도 다시 참여할 수 없습니다. 계정별 최근 요청 수를 세어 요청 횟수를 제한하며, 실시간 연결을 남용하는 계정은 실시간 연결을 쓰지 못하게 할 수 있습니다.
- 병합과 정기 점검: 프로젝트의 변경 기록이 길어지면 멤버의 브라우저가 운영자의 서버에 스냅샷 병합을 요청합니다. 운영자의 서버에서는 매일 정기 작업이 실행되어 변경 기록을 병합하고, 오래된 요청 횟수 기록과 초대를 삭제하며, 삭제된 프로젝트의 저장 파일을 지웁니다. 이를 위해 Vercel에서 호스팅하는 운영자의 서버가 서버에만 있는 키로 프로젝트 문서를 읽습니다.
GitHub 동기화(선택)
- GitHub 연결(Connect GitHub): 이 사이트에서 제공하는 경우, 토큰 대신 OpenTex의 GitHub 앱을 연결할 수 있습니다. 운영자의 서버는 짧은 시간만 유지되는 쿠키로 브라우저에 묶은 무작위 값과 함께 이용자를 GitHub로 보내고, 이용자가 승인하면 GitHub가 일회용 코드와 함께 이용자를 돌려보내며, 운영자의 서버가 앱의 비밀 값으로 이 코드를 액세스 토큰과 리프레시 토큰으로 교환합니다. 운영자의 서버는 토큰을 브라우저에 한 번 전달할 뿐 저장하지 않습니다. 브라우저는 토큰을, GitHub에서 받아 온 GitHub 사용자 이름과 프로필 사진 주소와 함께 localStorage에 보관합니다. 액세스 토큰이 곧 만료되면 브라우저가 리프레시 토큰을 운영자의 서버로 보내고, 서버가 GitHub에서 새 토큰을 받아 옵니다. “연결 해제(Disconnect)”를 누르면 브라우저에서 토큰이 삭제되고, 운영자의 서버가 GitHub에 액세스 토큰의 폐기를 요청합니다. GitHub는 이 앱이 이용자가 설치한 저장소에서만, 앱이 요청한 저장소 내용 접근 권한 안에서만 동작하도록 제한합니다.
- 대신 입력한 개인 액세스 토큰은 푸시나 풀을 할 때 브라우저의 localStorage에 저장되며, 운영자의 서버를 거치지 않습니다.
- 어느 방식이든 푸시와 풀은 브라우저가 GitHub API(
api.github.com)와 직접 통신하므로 파일은 운영자의 서버를 거치지 않습니다. 푸시하면 변경된 파일과 커밋 메시지가 이용자의 저장소에 올라가고, 풀하면 브랜치의 파일을 브라우저로 내려받습니다. GitHub 연결을 쓰는 경우 브라우저는 앱이 설치된 저장소 목록도 GitHub에 조회합니다. - 동기화 결과(저장소와 브랜치 이름, 커밋 ID, GitHub 오류 메시지)는 프로젝트의 리뷰 로그에 기록되며, 계정 프로젝트에서는 이 로그가 운영자의 서버에 저장되어 프로젝트 멤버에게 보입니다. 동기화하는 저장소와 브랜치 정보는 계정 프로젝트에서도 이 브라우저에만 저장됩니다.
GitHub에 연결된 프로젝트
- 누가 정하는지: 계정 프로젝트의 소유자는 프로젝트를 GitHub 저장소의 브랜치에 연결하고 연결을 해제할 수 있습니다. 저장소를 누가 읽을 수 있는지는 저장소 소유자와 저장소의 공개 범위에 따라 정해지며, 저장소는 GitHub가 호스팅합니다. 공개 저장소나 GitHub 엔터프라이즈의 모든 구성원이 읽을 수 있는 내부(internal) 저장소를 연결하려면 프로젝트 소유자가 명시적으로 확인해야 하며, 연결된 저장소가 나중에 공개되면 소유자가 다시 확인할 때까지 기록이 멈추고 멤버에게 안내가 다시 표시됩니다.
- 기록되는 정보: 제안과 그 수락 또는 거절, 댓글, 해결한 스레드, 이름 붙인 버전, 리뷰 라운드마다 그 시각, 파일과 줄 위치, 댓글이나 제안의 내용(스레드가 인용한 본문 포함), 이어진 커밋, 그리고 활동한 사람의 표시 이름, 이메일 주소, GitHub를 연결했다면 GitHub 사용자 이름과 사용자 ID. 각 사람의 항목에는 그 저장소 안에서 항목을 서로 묶는 식별자가 붙으며, 이는 OpenTex 계정 ID가 아닙니다. 채팅 메시지, 멤버 목록, 초대는 기록되지 않습니다.
- 기록되는 곳:
.opentex/review/log.jsonl파일(모든 이벤트, 이메일 주소 포함),REVIEW.md파일(이름과 GitHub 사용자 이름이 담긴 개요, 이메일 주소는 없음), 그리고 커밋. 수락하거나 거절한 제안마다 별도의 커밋이 만들어지며, 커밋의 작성자(author)는 결정한 사람, 커미터(committer)는 푸시한 브라우저의 멤버이고, 커밋 메시지에는 제안한 사람과 결정한 사람이 이메일 주소와 함께 적힙니다. GitHub를 연결한 사람은 작성자, 커미터, 공동 작성자(Co-authored-by) 줄에 GitHub noreply 주소(ID+username@users.noreply.github.com)가 쓰이고, 그렇지 않은 사람은 작성자와 커미터에 이메일 주소가 쓰이며 공동 작성자 줄은 붙지 않습니다. - 기록되는 시기와 방법: GitHub를 연결하고 프로젝트를 열어 둔 소유자나 편집자의 브라우저에서 자동으로 기록되며, 활동한 사람이 아닌 다른 멤버의 브라우저일 수 있습니다. 결정은 즉시, 그 밖의 활동은 잠시 뒤에, 마지막 푸시 이후의 문서 변경과 함께 기록됩니다. 운영자의 서버는 GitHub에 기록하지 않습니다.
- 참여하기 전 안내: OpenTex 서비스는 연결된 프로젝트에서 제안, 댓글, 결정을 하기 전에, 그리고 초대 링크 페이지에서는 참여하기 전에 이 내용을 안내합니다. 안내를 확인하기 전에도 프로젝트를 읽고 컴파일할 수는 있지만, 참여할 수는 없습니다.
- 연결 이전의 기록: 소유자가 프로젝트를 연결할 때 연결 이전의 리뷰 기록도 함께 기록할 수 있으며, 이때는 이메일 주소나 GitHub 사용자 이름 없이 이름만 기록됩니다.
- GitHub 계정 확인: 로그인한 상태에서 GitHub를 연결하면 운영자의 서버가 그 연결이 본인의 것인지 GitHub에 한 번 확인하고, GitHub 사용자 이름과 사용자 ID를 프로필에 저장하며, 프로젝트 멤버는 이를 볼 수 있습니다. 토큰은 운영자의 서버에 저장되지 않습니다.
- 운영자가 보관하는 사본: 푸시할 때마다 전체 기록을 다시 쓸 수 있도록 운영자의 데이터베이스가 이 기록을 각 사람의 당시 이름, 이메일 주소, GitHub 정보와 함께 보관하며, 프로젝트의 소유자와 편집자가 이를 읽을 수 있습니다. 누가 언제 안내를 확인했는지도 보관합니다.
논문 라이브러리와 참고문헌 확인(선택)
- 추가한 PDF와 그 메타데이터, 메모, 태그, 하이라이트는 브라우저에만 저장됩니다.
- 메타데이터를 조회할 때는 이용자가 입력한 DOI, arXiv ID, 제목(또는 추가한 PDF에서 찾은 DOI나 arXiv ID)을 브라우저가 Crossref, DataCite, OpenAlex에 직접 보냅니다. 참고문헌 확인(Verify refs)을 열면
.bib파일에 있는 모든 항목의 DOI나 제목을 바로 조회합니다. PDF 파일과 그 본문은 전송되지 않습니다. 이 서비스들도 이용자의 IP 주소와 브라우저 정보를 받습니다.
피드백 제보(선택)
- 제보에 담기는 정보: 이용자가 고른 종류와 작성한 내용, 제보할 때 보고 있던 페이지의 주소(쿼리 제외), 브라우저 정보(User-Agent), 창 크기, 앱 버전. 이용자가 내용에 직접 적지 않는 한 문서, 파일 이름, 프로젝트 ID, 컴파일 로그는 포함되지 않습니다. 보내기(Send)를 누르기 전에는 아무것도 전송되지 않습니다.
- 보낸 사람: 로그인한 경우 제보는 이용자의 계정에 연결됩니다. 계정의 이름과 이메일 주소는 제보를 Slack에 올릴 때와 그 메시지를 고칠 때(이용자가 이어 쓰거나 운영 팀이 답변하거나 처리 상태를 바꿀 때)마다 읽어 오며, 제보와 함께 저장하지 않습니다. 로그인하지 않은 경우에는 이용자가 직접 입력한 경우에만 이메일 주소를 받으며, 답장하는 데에만 이용합니다.
- 대화: 제보는 피드백 창에서 읽고 이어 쓸 수 있는 대화가 됩니다. 제보와 이용자가 이어 쓴 글, 운영 팀의 답변, 처리 상태(접수(Open), 진행 중(In progress), 해결(Resolved)), 이용자가 마지막으로 읽은 시각을 저장합니다. 답변은 OpenTex 팀의 답변으로 표시됩니다. 운영 팀이 Slack에서 서로 남기는 댓글은 대화에 저장되지 않으며 이용자에게 보이지 않습니다.
- 대화로 돌아오는 방법: 로그인한 경우 제보는 계정에 연결되어 로그인한 어느 기기에서나 볼 수 있습니다. 로그인하지 않은 경우에는 처음 제보를 보낼 때 브라우저가 무작위 토큰을 만들어 localStorage에 보관하고(자동 수집 장치 참조) 피드백 창의 요청과 함께 보냅니다. 운영자는 그 SHA-256 해시만 제보와 함께 저장합니다. 따라서 답변은 그 브라우저에서만 보이고, 사이트 데이터를 삭제하면 대화로 돌아올 수 없으며, 다른 곳에서 연락받을 방법은 이용자가 입력한 이메일 주소뿐입니다. 계정과 토큰이 함께 있는 브라우저에서는 양쪽의 제보를 모두 볼 수 있습니다. 로그아웃해도 토큰은 남으며, 계정의 제보만 화면에서 사라집니다.
- 답변 확인: 로그인했거나 이 토큰이 있으면 피드백 버튼이 있는 페이지를 열 때와 피드백 창을 열 때 브라우저가 운영자의 서버에 제보 목록을 요청합니다. 아직 해결되지 않은 제보가 있으면 탭이 보이는 동안에만 가끔 다시 요청합니다. 둘 다 없으면 요청하지 않습니다.
- 저장과 전달: 제보와 이용자가 이어 쓴 글은 운영자의 데이터베이스(Supabase)에 저장되고, 보낸 사람의 이름과 이메일 주소가 있으면 함께 Slack을 통해 운영 팀에 전달됩니다. 운영 팀은 Slack에서 답변하고 처리 상태를 바꾸며, 그 내용도 Slack에 남습니다. 제보가 올라간 채널의 구성원은 이 모두를 읽을 수 있습니다.
- 남용 방지: IP 주소를 제보와 함께 저장하지 않습니다. IP 주소(IPv6 주소는 앞쪽 64비트만)를 키로 해시한 값(HMAC-SHA256)을 보관하고, 이 값과 계정을 기준으로 최근 제보 수를 세어 보낼 수 있는 횟수를 제한합니다. 이어 쓰기와 피드백 창의 요청도 같은 방식으로, 토큰의 해시까지 기준으로 삼아 제한하며, 이 횟수 기록은 보통 몇 시간 안에 삭제됩니다.
- 제보의 삭제: 이용자가 요청하면 제보를 대화와 함께 삭제합니다(정보주체의 권리 참조). 계정을 삭제하면 제보와 계정의 연결이 끊기며, 그 대화는 피드백 창에서 더 이상 열 수 없습니다. 이미 Slack에 올라간 내용은 함께 표시된 이름과 이메일 주소를 포함해 운영자가 직접 지울 때까지 Slack에 남으며, 이 또한 삭제를 요청할 수 있습니다. 그 뒤 운영 팀이 그 제보에 답변하거나 처리 상태를 바꾸면 Slack의 제보 메시지에는 이름과 이메일 주소가 더 이상 표시되지 않습니다.
운영자에게 이메일을 보내는 경우
이메일 주소, 문의 내용, 이용자가 함께 보낸 정보를 처리합니다.
후원
GitHub Sponsors를 통한 후원은 GitHub에서 모두 처리하며, 운영자는 카드 정보 등 결제 정보를 받지 않습니다. GitHub 설정에 따라 운영자가 후원자의 GitHub 사용자 이름과 후원 등급을, 후원자가 공유를 선택한 경우 이메일 주소를 볼 수 있으며, 이는 후원에 감사를 전하는 데에만 이용합니다.
3. 개인정보의 처리 및 보유 기간
| 항목 | 보유 기간 |
|---|---|
| 계정 정보와 세션 기록(Supabase Auth) | 회원 탈퇴(계정 삭제 요청) 시까지. 세션은 로그아웃하거나 만료되면 종료됩니다. |
| 계정 프로젝트: 파일, 문서 스냅샷, 설정, 리뷰 기록, 채팅, 멤버 | 소유자가 프로젝트를 삭제할 때까지. 멤버 자격은 프로젝트를 나가거나 제외되면 끝납니다. 회원 탈퇴 시 다른 사람과 공유한 프로젝트는 그들에게 남습니다(개인정보의 파기 절차 및 방법 참조). |
| 업데이트 전에 저장된 프로젝트(이전 클라우드 백업) | 프로젝트 목록에서 삭제하거나 회원 탈퇴할 때까지 |
| 프로젝트 문서의 변경 기록 | 프로젝트 스냅샷에 병합된 뒤 삭제(기록이 길어질 때와 매일 정기 점검 때) |
| 초대(초대받은 이메일 주소 포함) | 초대가 수락, 철회 또는 만료된 날부터 90일 후 삭제(이메일 초대는 30일 후 만료). 만료 기한이 없는 링크는 철회할 때까지. 프로젝트를 삭제하면 그 초대도 함께 삭제 |
| 공유 작업 기록과 재참여 차단 | 프로젝트를 삭제할 때까지. 차단은 소유자가 해제할 때에도 끝남 |
| 요청 횟수 기록 | 2일 후 삭제 |
| 실시간 연결(Supabase Realtime)로 전송된 정보 | Supabase가 며칠간 보관한 뒤 자동 삭제 |
| GitHub에 연결된 프로젝트의 리뷰 기록과 안내 확인 기록(운영자의 데이터베이스) | 프로젝트를 삭제할 때까지. 회원 탈퇴 시 그 안의 이름, 이메일 주소, GitHub 정보는 대체됩니다. 저장소에 기록된 내용은 저장소 소유자의 관리와 GitHub 약관에 따라 저장소에 남습니다. |
| 프로필의 GitHub 사용자 이름과 사용자 ID | 이용자가 지우거나 회원 탈퇴할 때까지 |
| 접속 기록(Vercel) | Vercel의 로그 보존 기간(호스팅 요금제에 따른 짧은 기간)이 지나면 자동 삭제 |
| 이용 통계와 성능 정보(Vercel) | 호스팅 요금제의 보존 기간이 지나면 자동 삭제(운영자는 집계된 통계만 확인). 방문자 집계용 해시는 24시간 후 폐기 |
| API 및 로그인 기록(Supabase) | Supabase의 로그 보존 기간이 지나면 자동 삭제 |
| 오류 보고와 성능 측정값(Sentry) | Sentry 요금제의 보존 기간이 지나면 자동 삭제 |
| 익명 이용 이벤트(Mixpanel) | 각 이벤트로부터 2년(Mixpanel의 보존 기간)이 지나면 자동 삭제. 브라우저에 있는 방문 ID는 탭을 닫으면 삭제되고, 30분 동안 이벤트가 없으면 새 ID로 바뀜 |
| 페이지 녹화(Mixpanel) | 녹화로부터 30일(Mixpanel의 보존 기간)이 지나면 자동 삭제 |
| 피드백 제보와 그 대화, 처리 상태 | 이용자가 삭제를 요청하거나 더 이상 필요하지 않을 때까지. 계정을 삭제하면 계정과의 연결만 끊기며, Slack에 올라간 내용은 운영자가 직접 지울 때까지 남음 |
| 이어 쓰기와 피드백 창의 요청을 제한하는 횟수 기록 | 이후 요청이 들어올 때 삭제되며, 보통 몇 시간 안에 지워짐 |
| 이메일 문의 | 요청 처리가 끝나 더 이상 필요하지 않을 때까지 |
| 브라우저에 저장된 정보 | 이용자가 삭제할 때까지. 계정 프로젝트의 사본은 로그아웃하거나 기기에서 프로젝트를 제거할 때 삭제(운영자는 접근하거나 대신 삭제할 수 없음) |
다른 법령에 따라 보존해야 하는 정보가 있으면, 해당 정보만 다른 정보와 분리하여 그 법령이 정한 기간과 목적에 따라 보관합니다.
4. 개인정보의 파기 절차 및 방법
- 보유 기간이 끝나거나 처리 목적을 달성한 개인정보는 지체 없이 파기합니다.
- 전자적 파일은 일반적인 방법으로 복구할 수 없도록 삭제합니다. 프로젝트를 삭제하면 운영자의 서버에 함께 저장된 문서, 리뷰 기록, 채팅, 멤버, 초대, 공유 작업 기록이 모두 삭제되고, 저장된 파일은 매일 실행되는 정기 점검에서 지워집니다. 멤버의 브라우저에 이미 있는 사본은 각자에게 남습니다. 수탁자의 백업에 남은 사본은 해당 업체의 백업 주기에 따라 순차적으로 삭제됩니다.
- 계정을 삭제하면 프로필과, 본인만 멤버인 프로젝트가 삭제됩니다. 다른 사람과 공유한 프로젝트는 그들에게 남으며, 본인이 유일한 소유자였다면 남은 멤버 중 역할이 가장 높은 사람(역할이 같으면 먼저 참여한 사람)이 소유자가 됩니다. 본인이 추가한 내용(텍스트, 파일, 댓글, 제안, 채팅 메시지)은 프로필과의 연결이 끊긴 채 프로젝트에 남고, 리뷰 로그의 항목은 기록될 때의 이름을 유지하며, 멤버의 브라우저에 이미 있는 사본에는 이름이 계속 보일 수 있습니다. 대기 중인 본인의 초대는 철회됩니다.
- 프로젝트를 나가거나 제외되면 접근 권한은 없어지지만, 본인이 추가한 내용은 삭제되지 않습니다. 이전 멤버의 브라우저에 있는 사본은 그 사람이 지울 때까지 읽기 전용으로 남으며, 개인 사본으로 보관할 수도 있습니다.
- 계정 프로젝트의 댓글, 채팅 메시지, 리뷰 로그는 모든 멤버가 같은 기록을 볼 수 있도록 수정하거나 삭제할 수 없습니다. 파일을 삭제하면 파일 목록에서는 빠지지만 내용은 다시 되살릴 수 있도록 프로젝트에 남고, 프로젝트에 추가된 파일은 프로젝트가 삭제될 때까지 운영자의 서버에 남습니다. 파일 안에서 지운 텍스트는 변경 기록이 스냅샷에 병합될 때 운영자의 서버에 있는 스냅샷에서 빠집니다.
- 계정을 삭제하거나 프로젝트를 나가도 연결된 GitHub 저장소에 이미 기록된 내용은 삭제되지 않으며, 저장소의 기록(history)에서 이를 지울 수 있는 사람은 저장소 소유자뿐입니다. 계정을 삭제하면 OpenTex 서비스는 그 뒤로 기록하는 리뷰 기록에서 이용자의 이름과 이메일 주소를 대체합니다. 프로젝트를 나가는 것만으로는 대체되지 않으며, 이전 활동은 이름과 이메일 주소와 함께 기록에 남습니다.
- 피드백 제보는 이용자가 요청하면 대화와 함께 삭제합니다. 계정을 삭제할 때 달라지는 점과 Slack에 남는 내용은 피드백 제보를 참조해 주시기 바랍니다.
- 개인정보를 종이로 보관하지 않으며, 출력물이 생기면 분쇄하여 파기합니다.
- 브라우저에 저장된 정보는 이용자가 직접 삭제합니다(정보주체의 권리 참조).
6. 개인정보 처리의 위탁
운영자는 아래 업체에 개인정보 처리를 위탁하며, 각 업체는 위탁받은 업무를 수행하는 데에만 개인정보를 처리합니다.
| 수탁자 | 위탁 업무 |
|---|---|
| Vercel Inc. | 웹사이트 호스팅과 전송, 서버 기능 실행(TeX Live 파일 서비스, 로그인과 세션 갱신, GitHub 연결과 그 토큰 갱신, 계정 프로젝트의 변경 기록 병합과 정기 점검, 피드백 제보의 접수와 조회), 접속 기록 보관, Web Analytics와 Speed Insights |
| Supabase Pte. Ltd. | 로그인과 세션 관리(Supabase Auth), 계정 프로젝트와 그 공유, 리뷰 기록, 피드백 제보와 그 대화를 보관하는 데이터베이스와 파일 저장소 운영, 실시간 연결(Realtime) |
| Google LLC | Google 계정 로그인(본인 확인) |
| Functional Software, Inc.(Sentry) | 앱과 서버 기능의 오류 및 성능 모니터링 |
| Slack Technologies Limited | 피드백 제보와 이어 쓴 글을 운영 팀에 전달, 운영 팀의 답변과 처리 상태 변경 접수 |
| Mixpanel, Inc. | 익명 이용 통계와 페이지 이용 녹화: 익명 이용 통계에서 설명한 이용 이벤트와 페이지 이용 녹화에서 설명한 녹화의 수신과 보관, 운영자가 보는 그 집계 보고서와 재생 화면 |
Vercel, Supabase, Sentry, Slack, Mixpanel은 각자의 데이터 처리 약관에 따라 업무를 수행합니다. Google은 자사 약관에 따라 로그인 기능을 제공하며, Google 계정 정보는 Google 개인정보처리방침에 따라 독립적인 개인정보처리자로서도 처리합니다. 수탁자나 위탁 업무가 바뀌면 이 방침을 통해 알립니다.
7. 개인정보의 국외 이전
위 수탁자는 모두 국외에서 개인정보를 처리합니다. Vercel, Supabase, Google, Sentry, Slack으로의 이전은 이용자가 요청한 서비스를 제공하는 데 필요한 처리위탁 및 보관으로, 「개인정보 보호법」 제28조의8제1항제3호가목에 따라 아래 사항을 이 방침에 공개하며 별도의 동의는 받지 않습니다. Mixpanel은 익명 이용 통계와 페이지 이용 녹화만 받으며, 여기에는 이용자를 알아볼 수 있는 정보가 없고 이용자가 끌 수 있습니다. Mixpanel로의 이전도 같은 방식으로 아래에 공개합니다.
GitHub에 연결된 프로젝트의 리뷰 기록은 이용자의 동의를 받아 미국의 GitHub, Inc.에도 제공됩니다(개인정보의 제3자 제공 참조).
Vercel Inc.
| 이전받는 자와 연락처 | Vercel Inc., privacy@vercel.com |
|---|---|
| 이전 국가 | 미국(이용자와 가까운 Vercel 거점에서 요청이 처리될 수 있음) |
| 이전 시기와 방법 | 웹사이트를 이용할 때마다 암호화된 연결(HTTPS)로 전송 |
| 이전 항목 | 접속 기록(IP 주소, 브라우저와 기기 정보, 요청 주소, 리퍼러, 접속 일시), 요청과 함께 전송되는 쿠키, 이용 통계와 성능 정보, 변경 기록을 병합하는 동안의 계정 프로젝트 문서, GitHub를 연결하거나 그 토큰을 갱신하는 동안의 GitHub 인증 코드와 토큰, 데이터베이스와 Slack으로 전달되는 동안의 피드백 제보와 이어 쓴 글, 이를 나르는 요청에 담긴 게스트 토큰 |
| 이용 목적 | 웹사이트 호스팅과 전송, 서버 기능 실행, 보안과 장애 대응, 집계 통계 |
| 보유 및 이용 기간 | 위탁 계약 종료 시까지. 접속 기록과 이용 통계는 호스팅 요금제의 보존 기간이 지나면, 방문자 집계용 해시는 24시간 후 삭제 |
| 거부 방법, 절차 및 효과 | 호스팅은 서비스 제공에 꼭 필요하므로 거부하려면 서비스를 이용하지 않아야 합니다. 이용 통계와 성능 측정 스크립트는 브라우저의 콘텐츠 차단 기능으로 막을 수 있으며, 막아도 서비스 이용에는 영향이 없습니다. |
Supabase Pte. Ltd.
| 이전받는 자와 연락처 | Supabase Pte. Ltd., privacy@supabase.com |
|---|---|
| 이전 국가 | 싱가포르(데이터베이스 위치: AWS ap-southeast-1 리전). Supabase와 그 하위 수탁자가 일부 데이터를 미국 등 다른 국가에서 처리할 수 있음 |
| 이전 시기와 방법 | 로그인할 때, 계정 프로젝트나 공유받은 프로젝트에서 작업하는 동안 변경할 때마다, 프로젝트를 공유하거나 초대를 받을 때, 피드백 제보를 보내거나 이어 쓸 때, 브라우저가 제보 목록을 요청할 때. HTTPS로 전송하며, 실시간 연결에는 암호화된 WebSocket 연결을 사용 |
| 이전 항목 | 계정 정보(이메일 주소, Google 계정 식별자, 이름, 프로필 사진 URL, 로그인 일시), 세션 기록(IP 주소, 브라우저 정보), 계정 프로젝트(파일, 문서 변경 기록과 스냅샷, 설정, 리뷰 기록, 채팅), 멤버, 초대(초대받은 이메일 주소 포함), 공유 작업 기록, 재참여 차단, 요청 횟수 기록, 실시간 연결로 전송되는 정보, 피드백 제보와 그 대화, 처리 상태(보낸 사람의 IP 주소를 키로 해시한 값과 게스트 토큰의 해시 포함) |
| 이용 목적 | 로그인과 세션 유지, 계정 프로젝트의 저장과 기기 및 멤버 사이의 동기화, 피드백 제보와 그 대화의 저장 |
| 보유 및 이용 기간 | 회원 탈퇴 시 또는 프로젝트 삭제 시까지(개인정보의 처리 및 보유 기간 참조), 피드백 제보는 삭제를 요청하거나 더 이상 필요하지 않을 때까지, 또는 위탁 계약 종료 시까지 |
| 거부 방법, 절차 및 효과 | 로그인하지 않으면 계정 정보와 프로젝트는 이전되지 않습니다. 계정이 없어도 게스트 프로젝트에서 모든 편집 기능을 쓸 수 있으며, 계정 프로젝트와 공유만 이용할 수 없습니다. 피드백 제보는 이용자가 보낼 때에만 이전됩니다. 다른 사람이 초대한 주소를 포함해 이미 이전된 정보는 삭제를 요청할 수 있습니다. |
Google LLC
| 이전받는 자와 연락처 | Google LLC, 개인정보 문의 양식 |
|---|---|
| 이전 국가 | 미국 |
| 이전 시기와 방법 | Google 로그인 버튼이 있는 페이지(로그인 페이지, 초대 페이지, 기다리는 초대를 수락하라는 안내)를 열어 Google 로그인 스크립트를 불러올 때와 Google로 로그인할 때, 브라우저와 Google 사이에서 HTTPS로 직접 전송 |
| 이전 항목 | IP 주소, 브라우저 정보, 접속한 페이지 주소. Google 로그인 자체는 Google에서 처리 |
| 이용 목적 | Google 계정을 이용한 본인 확인 |
| 보유 및 이용 기간 | Google 개인정보처리방침에 따름 |
| 거부 방법, 절차 및 효과 | Google 로그인을 사용하지 않으면 됩니다(스크립트는 Google 로그인을 제공하는 페이지에서만 불러옴). 계정 없이도 서비스를 이용할 수 있습니다. |
Functional Software, Inc.(Sentry)
| 이전받는 자와 연락처 | Functional Software, Inc.(Sentry), privacy@sentry.io |
|---|---|
| 이전 국가 | 미국 |
| 이전 시기와 방법 | 앱이나 운영자의 서버 기능에서 오류가 날 때, 그리고 일부 페이지 로드와 요청에 대해 HTTPS로 전송 |
| 이전 항목 | 오류 보고와 성능 측정값(오류 내용과 발생 위치, 쿼리를 뺀 페이지 주소, 브라우저·운영체제·기기 정보, 오류 직전의 동작), IP 주소 |
| 이용 목적 | 오류와 느린 페이지의 원인 파악 및 수정 |
| 보유 및 이용 기간 | 위탁 계약 종료 시까지. 보고는 Sentry 요금제의 보존 기간이 지나면 삭제 |
| 거부 방법, 절차 및 효과 | 브라우저의 콘텐츠 차단 기능으로 모니터링 스크립트를 막을 수 있으며, 막아도 서비스 이용에는 영향이 없습니다. 서버 기능에서 난 오류의 보고는 따로 거부할 수 없습니다. |
Slack Technologies Limited
| 이전받는 자와 연락처 | Slack Technologies Limited, privacy@slack.com |
|---|---|
| 이전 국가 | 아일랜드(Slack Technologies Limited의 소재지). Slack과 그 하위 수탁자가 일부 데이터를 미국 등 다른 국가에서 처리할 수 있음 |
| 이전 시기와 방법 | 피드백 제보를 보내거나 이어 쓸 때와 운영 팀이 답변하거나 처리 상태를 바꿀 때(시도가 실패하면 그 뒤에 다시), 운영자의 서버에서 HTTPS로 전송 |
| 이전 항목 | 제보의 종류와 내용, 이용자가 이어 쓴 글, 처리 상태, 페이지 주소, 브라우저 정보, 창 크기, 앱 버전, 보낸 사람(로그인한 경우 계정의 이름과 이메일 주소, 로그인하지 않은 경우 입력한 이메일 주소) |
| 이용 목적 | 피드백 제보와 이어 쓴 글을 운영 팀에 전달, 운영 팀의 답변과 처리 상태 변경 접수 |
| 보유 및 이용 기간 | 운영자가 Slack에서 직접 지울 때까지, 또는 위탁 계약 종료 시까지 |
| 거부 방법, 절차 및 효과 | 피드백 제보를 보내지 않으면 됩니다. 이메일로도 문의할 수 있으며, 그 밖의 기능은 그대로 이용할 수 있습니다. |
Mixpanel, Inc.
| 이전받는 자와 연락처 | Mixpanel, Inc., compliance@mixpanel.com |
|---|---|
| 이전 국가 | 미국(Google Cloud에 있는 Mixpanel의 미국 데이터센터) |
| 이전 시기와 방법 | 서비스를 이용하는 동안 이벤트가 생기고 약 1초 뒤, 또는 페이지를 떠날 때. 로그인하지 않은 상태로 페이지를 이용하는 동안 녹화는 약 10초마다. 브라우저에서 HTTPS로 직접 전송 |
| 이전 항목 | 익명 이용 통계에서 설명한 이용 이벤트, 페이지 이용 녹화에서 설명한 녹화, 방문의 무작위 ID, 그리고 다른 웹 요청과 마찬가지로 각 요청에 담기는 IP 주소와 브라우저 정보(User-Agent). Mixpanel은 IP 주소를 저장하지 않으며, 브라우저 정보는 각 이벤트와 함께 보관함 |
| 이용 목적 | 방문자가 어디에서 멈추는지 파악하여 서비스를 개선하기 위한 익명 이용 통계와 페이지 이용 녹화 |
| 보유 및 이용 기간 | 각 이벤트로부터 2년, 각 녹화로부터 30일(그 뒤 Mixpanel이 자동 삭제), 또는 위탁 계약 종료 시까지 |
| 거부 방법, 절차 및 효과 | 브라우저에서 Global Privacy Control이나 Do Not Track을 켜거나 콘텐츠 차단 기능으로 요청을 막으면 됩니다. 막아도 서비스 이용에는 영향이 없습니다. |
8. 이용자가 직접 연결하는 외부 서비스
일부 기능은 브라우저가 외부 서비스와 직접 통신합니다. 운영자는 이 데이터를 받거나 중계하지 않으며, 각 서비스가 자체 개인정보처리방침에 따라 처리합니다.
| 서비스 | 이용하는 경우 | 브라우저가 보내는 정보 |
|---|---|---|
| GitHub | GitHub를 연결하거나 푸시나 풀을 할 때. 연결된 프로젝트의 리뷰 기록을 브라우저가 푸시할 때에도 | 토큰, 푸시하는 파일, 커밋 메시지. GitHub 연결을 쓰는 경우 사용자 이름, 프로필 사진, 앱이 설치된 저장소 목록의 조회. 연결된 프로젝트의 리뷰 기록(개인정보의 제3자 제공 참조) |
| Crossref, DataCite, OpenAlex | 논문을 조회하거나 PDF를 추가하거나 참고문헌 확인을 열 때 | DOI, arXiv ID, 제목 |
| 로그인한 상태에서 프로필 사진을 표시할 때 | 이미지 요청 |
이러한 요청에는 이용자의 IP 주소와 브라우저 정보도 함께 전달됩니다.
GitHub 연결, 그 토큰의 갱신과 연결 해제는 GitHub 동기화에서 설명한 대로 운영자의 서버를 거칩니다. 로그인한 상태에서 GitHub를 연결하면 운영자의 서버가 GitHub에 한 번 연결을 확인합니다(GitHub에 연결된 프로젝트 참조).
9. 정보주체의 권리와 행사 방법
이용자는 언제든지 개인정보의 열람, 정정, 삭제, 처리정지를 요구할 수 있고(「개인정보 보호법」 제35조부터 제37조까지), 동의한 사항이 있으면 그 동의를 철회할 수 있습니다. 법정대리인이나 이용자가 위임한 대리인(위임장 필요)을 통해서도 요구할 수 있습니다.
앱에서 직접 할 수 있는 일
- 게스트 프로젝트 삭제: 프로젝트 목록에서 삭제하면 해당 프로젝트의 파일, 버전 기록, 편집 데이터, 채팅이 이 브라우저에서 삭제됩니다.
- 계정 프로젝트: 소유자는 “모두에게서 삭제(Delete for everyone)”로 프로젝트를 모든 멤버에게서, 그리고 운영자의 서버에서 삭제할 수 있고(멤버의 브라우저에 이미 있는 사본은 각자에게 남습니다), 업데이트 전에 저장된 프로젝트도 삭제할 수 있습니다. 멤버는 프로젝트를 나가거나(마지막 소유자 제외) 사용하는 기기에서 프로젝트를 제거할 수 있습니다. 소유자는 역할 변경, 멤버 제외, 차단 해제를 할 수 있으며, 초대는 소유자가 모두, 편집자가 자신이 만든 것을 철회할 수 있습니다.
- 사본 내려받기: 열 수 있는 프로젝트는 ZIP 파일로, 그 리뷰 기록은 JSON 파일로 내보낼 수 있습니다.
- 라이브러리 항목과 하이라이트 삭제: 논문 라이브러리에서 삭제할 수 있습니다.
- GitHub에 연결된 프로젝트: 안내를 확인하지 않고도 프로젝트를 읽고 컴파일할 수 있으며, 소유자는 저장소 연결을 해제할 수 있습니다. 어느 쪽이든 저장소에 이미 있는 내용은 지워지지 않습니다.
- 사이트 데이터 삭제: 브라우저 설정에서 이 사이트의 데이터를 지우면 GitHub 토큰을 포함해 그 브라우저에 저장된 OpenTex 데이터가 모두 삭제됩니다. GitHub 패널의 “연결 해제(Disconnect)”는 GitHub 연결만 삭제하며, 개인 액세스 토큰만 따로 지우는 버튼은 없습니다. 계정 프로젝트는 계정에 그대로 남습니다.
- 로그아웃: 이 브라우저의 세션이 종료되고, 이 브라우저에 있던 계정 프로젝트의 사본이 삭제됩니다(프로젝트는 계정에 남습니다). 게스트 프로젝트, 라이브러리, GitHub 토큰은 브라우저에 남으므로 공용 컴퓨터에서는 사이트 데이터도 함께 삭제하시기 바랍니다.
이메일로 요청할 수 있는 일
운영자가 보관하는 이용자 정보의 사본을 받거나, 정보를 정정 또는 삭제하거나, 계정을 삭제하려면 이메일(sanghoyun@postech.ac.kr)로 요청하시기 바랍니다. 계정 삭제는 앱에서 할 수 없습니다. 공유 프로젝트의 댓글, 채팅 메시지, 리뷰 기록은 앱에서 수정하거나 삭제할 수 없으므로, 본인이 쓴 내용의 삭제를 원하면 역시 이메일로 요청하시기 바랍니다. 다른 사람이 이용자의 이메일 주소로 초대한 경우, 그 주소를 어디에서 받았는지 문의하고 삭제를 요청할 수 있습니다. 본인 확인을 위해 계정에 등록된 이메일 주소에서 보내 주시기 바랍니다. 다른 주소에서 보내면 본인 확인 절차를 추가로 거칠 수 있습니다.
요청을 받은 날부터 10일 이내에 조치합니다. 법령에 따라 보존해야 하는 경우처럼 요청에 따를 수 없는 때에는 그 사유와 이의를 제기하는 방법을 알려 드립니다.
운영자는 완전히 자동화된 처리만으로 이용자에 관한 결정을 내리지 않으므로(「개인정보 보호법」 제37조의2), 이를 거부하거나 설명을 요구할 대상이 없습니다.
10. 만 14세 미만 아동의 개인정보
OpenTex 서비스는 만 14세 이상을 대상으로 하며, 로그인은 만 14세 이상만 할 수 있습니다. 운영자는 만 14세 미만 아동의 개인정보를 알면서 수집하지 않으며, 법정대리인의 동의 없이 수집된 사실을 알게 되면 지체 없이 파기합니다. 법정대리인은 이메일(sanghoyun@postech.ac.kr)로 문의할 수 있습니다.
11. 개인정보의 안전성 확보 조치
- 암호화: 이 웹사이트와 이 웹사이트에서 이용하는 외부 서비스로 오가는 모든 통신은 암호화(HTTPS/TLS)되며, Supabase는 저장하는 데이터를 암호화합니다.
- 접근 통제: 클라우드 데이터베이스에는 행 수준 보안(RLS)을 적용하여, 프로젝트의 현재 멤버만 그 프로젝트를 읽을 수 있고 각 멤버가 바꿀 수 있는 범위는 역할에 따릅니다. 저장된 파일과 실시간 채널도 프로젝트의 현재 멤버에게만 열려 있습니다. 브라우저에서는 이 규칙으로 제한되는 Supabase 공개 키만 쓰며, 변경 기록 병합, 정기 점검, 피드백 제보에 필요한 비밀 키는 운영자의 서버에만 있고 브라우저로 전송되지 않습니다. 피드백 제보는 이 키로만 접근할 수 있으며 브라우저에서는 접근할 수 없습니다. 브라우저는 로그인한 계정이나 게스트 토큰(해시로만 저장)에 해당하는 대화만 운영자의 서버를 통해 받습니다.
- 초대: 초대 링크의 토큰은 무작위 값으로, 해시로만 저장되며 서버로 전송되는 주소, 리퍼러(Referer) 헤더, 운영자의 분석 도구와 오류 보고에 포함되지 않습니다. 링크 사용 시도에는 횟수 제한이 있고, 소유자가 제외한 사람은 다시 참여하지 못하도록 차단할 수 있습니다.
- 최소 처리: 게스트 프로젝트는 브라우저에 저장되고 컴파일도 브라우저에서 이뤄지며, 버전 기록과 논문 라이브러리는 운영자의 서버로 전송되지 않고, GitHub 토큰은 운영자의 서버에 저장되지 않습니다.
- 접근 권한의 제한: 호스팅과 데이터베이스 관리 콘솔에는 운영자만 접근하며, 서비스 운영이나 이용자의 요청 처리를 위해서만 접근합니다.
- 인프라 보안: 데이터센터의 물리적, 기술적 보안은 Vercel과 Supabase가 담당합니다.
- 이용자가 할 수 있는 일: GitHub 토큰과 GitHub 연결의 토큰은 브라우저 저장소에 암호화되지 않은 채 저장되므로 브라우저 프로필에 접근할 수 있는 사람은 토큰을 읽을 수 있으며, 로그아웃해도 삭제되지 않습니다. 게스트로 보낸 피드백 제보의 토큰도 같은 방식으로 보관되며, 이 토큰이 있으면 그 제보를 읽고 이어 쓸 수 있습니다. 동기화하는 저장소로 권한을 제한한 세분화된 토큰(fine-grained token)을 사용하거나 GitHub 앱을 그 저장소에만 설치하고, 공용 컴퓨터에서는 사이트 데이터를 삭제하시기 바랍니다. 프로젝트에 추가한 사람은 누구나 프로젝트를 읽고 내려받을 수 있고 사본을 보관할 수도 있으므로, 믿을 수 있는 사람만 초대하고, 링크에는 만료 기한이나 인원 제한을 두며, 더 이상 필요 없는 링크는 철회하시기 바랍니다.
13. 개인정보 보호책임자
OpenTex 서비스는 개인이 운영하므로 운영자가 개인정보 보호책임자로서 개인정보에 관한 문의, 요청, 고충을 직접 처리합니다.
- 개인정보 보호책임자
- 윤상호 (운영자)
14. 권익침해 구제 방법
개인정보 침해에 대한 신고나 상담이 필요하면 아래 기관에 문의할 수 있습니다.
| 기관 | 전화(국번 없이) | 홈페이지 |
|---|---|---|
| 개인정보분쟁조정위원회 | 1833-6972 | www.kopico.go.kr |
| 개인정보침해신고센터(한국인터넷진흥원) | 118 | privacy.kisa.or.kr |
| 경찰청(사이버범죄 신고) | 182 | ecrm.police.go.kr |
EEA 또는 영국에 있는 이용자는 해당 지역의 개인정보 감독기관에도 민원을 제기할 수 있습니다(EEA 및 영국 이용자 안내 참조).
15. 유럽경제지역(EEA) 및 영국 이용자 안내
GDPR과 영국 GDPR에 따른 개인정보 처리자(controller)는 대한민국에 있는 운영자 윤상호입니다(이메일: sanghoyun@postech.ac.kr).
처리의 법적 근거
- 계약의 이행(제6조제1항(b)): 웹페이지, TeX Live 파일, 로그인, GitHub 연결, 계정 프로젝트와 그 공유(참여한 프로젝트의 멤버에게 이용자를 표시하는 것 포함) 등 이용자가 이용하는 서비스의 제공
- 정당한 이익(제6조제1항(f)): 보안과 장애 대응을 위한 접속 기록과 오류 보고, 공유 프로젝트를 안전하게 운영하기 위한 공유 작업 기록과 재참여 차단, 요청 횟수 제한, 이용 현황과 성능의 집계 통계(Mixpanel로 보내는 익명 이용 이벤트 포함), 알맞은 언어의 표시, 문의와 피드백 제보 응대, 이용자가 제보의 진행을 볼 수 있도록 대화와 처리 상태를 보관하는 것, IP 주소를 키로 해시한 값과 게스트 토큰의 해시를 이용한 제보 남용 방지, 그리고 다른 사람이 초대한 이메일 주소를 그 주인이 참여할 수 있도록 참여 전까지 보관하는 것. 운영자의 정당한 이익은 안전하고 제대로 동작하는 서비스를 운영하고, 이용자가 함께 작업할 사람을 초대할 수 있게 하며, 문의에 답하는 것이며, 이 정보는 최소한으로 처리하고 접속 기록이나 통계로 이용자를 식별하지 않습니다. 이용자는 이에 대해 이의를 제기할 수 있습니다.
- 동의(제6조제1항(a)): GitHub에 연결된 프로젝트에서의 리뷰 활동을 이용자의 이름, 이메일 주소, GitHub 사용자 이름과 함께, 미국의 GitHub가 호스팅하는 그 저장소에 기록하는 것. 이용자는 안내를 확인하는 것으로 동의합니다.
- 법적 의무(제6조제1항(c)), 대한민국 법령상 의무의 경우에는 그 준수에 관한 정당한 이익(제6조제1항(f)): 법령에 따라 정보를 보관하거나 제공해야 하는 경우
이용자의 권리
이용자는 개인정보의 열람, 정정, 삭제, 처리 제한, 처리에 대한 이의 제기, 데이터 이동을 요구할 수 있고, 동의에 근거한 처리에 대해서는 동의를 철회할 수 있습니다. 권리를 행사하려면 정보주체의 권리와 행사 방법에 안내한 대로 이메일을 보내 주시기 바랍니다. 거주지나 근무지, 또는 침해가 발생했다고 생각하는 곳의 개인정보 감독기관에 민원을 제기할 수도 있습니다.
국외 이전
유럽연합 집행위원회와 영국은 대한민국의 개인정보 보호 수준이 적정하다고 인정했습니다. 수탁자는 미국, 싱가포르, 아일랜드 등에서 데이터를 처리하며(개인정보의 국외 이전 참조), Vercel은 EU-미국 데이터 프라이버시 프레임워크(DPF)에 참여하고 있고 Supabase와 Sentry의 데이터 처리 약관에는 유럽연합 집행위원회의 표준계약조항(SCC)이 포함되어 있으며, Slack은 국외 이전에 이 조항을 이용합니다. Mixpanel은 EU-미국 데이터 프라이버시 프레임워크와 그 영국 확장, 스위스-미국 데이터 프라이버시 프레임워크에 참여하고 있습니다.
페이지 이용 녹화
기기의 시간대가 유럽이면 페이지 이용 녹화는 실행되지 않습니다. 기기가 다른 시간대로 설정되어 있으면 실행될 수 있으며, 운영자는 동의를 받지 않습니다. 이때 법적 근거는 서비스를 개선하려는 운영자의 정당한 이익(제6조제1항(f))이며, 이용자는 그 항목에 적힌 방법으로 녹화를 꺼서 이의를 제기할 수 있습니다.
그 밖의 안내
에디터를 이용하는 데 개인정보를 제공할 필요는 없으며, 로그인하려면 Google 계정 정보가 필요합니다. 자동화된 처리만으로 법적 효력이나 이와 비슷하게 중대한 영향을 미치는 결정을 내리지 않습니다.
16. Google 사용자 데이터
OpenTex에서 Google API로부터 받은 정보를 이용하고 다른 앱으로 전송하는 것은 제한적 사용(Limited Use) 요건을 포함한 Google API 서비스 사용자 데이터 정책을 준수합니다.
- 받는 정보: 기본 로그인 정보(
openid,email,profile범위)인 Google 계정 식별자, 이메일 주소와 인증 여부, 이름, 프로필 사진 URL만 받습니다. Gmail, Drive, Calendar, 연락처 등 다른 Google 데이터에 대한 접근은 요청하지 않으며, 이용자를 대신해 Google API를 호출하지 않습니다. - 이용 방법: 계정 생성과 로그인, 계정 메뉴에 이름과 사진 표시, 댓글과 리뷰 기록과 버전 스냅샷의 작성자 이름 표시, 계정 프로젝트와 계정의 연결, 참여한 프로젝트의 멤버에게 이름을, 그 소유자와 편집자에게 이메일 주소를 표시, 이메일 초대와 Google 주소의 대조, 안내를 확인한 경우 GitHub에 연결된 프로젝트의 리뷰 기록에 이름과 이메일 주소를 기록, 이용자 요청에 대한 응대와 본인 확인에 이용합니다.
- 하지 않는 일: 판매하거나 광고에 이용하지 않으며, 범용 AI 또는 머신러닝 모델의 개발, 개선, 학습에 이용하지 않습니다. 로그인과 호스팅을 맡은 수탁자(Supabase, Vercel)에 제공하거나, 프로젝트 공유에서 설명한 대로 참여한 프로젝트의 멤버에게 보여 주거나, 안내를 확인한 경우 연결된 저장소의 리뷰 기록을 통해 GitHub와 그 저장소를 읽는 사람에게 제공하거나, 법령이 요구하는 경우 외에는 공유하지 않습니다. 그 멤버를 제외하면, 보안, 법령 준수, 이용자가 요청한 업무 처리에 필요한 경우 외에는 운영자를 포함해 누구도 열람하지 않습니다.
- 연결 해제: Google 계정의 서드 파티 연결 관리 페이지에서 OpenTex 연결을 해제할 수 있습니다. 연결을 해제해도 운영자가 이미 보관 중인 정보는 삭제되지 않으므로, 삭제를 원하면 이메일로 요청하시기 바랍니다.
17. 개인정보처리방침의 변경
이 방침을 변경하면 시행 7일 전부터 이 페이지에 변경 내용과 시행일을 공지합니다. 처리 목적이나 항목, 개인정보를 받는 자가 새로 추가되는 경우처럼 이용자의 권리에 중대한 영향을 주는 변경은 시행 30일 전부터 공지하고, 계정이 있는 이용자에게는 이메일로도 알립니다.
나중에 적용되는 부분에는 그 적용일을 밝혀 두며(“…부터”), 그 날짜 전에는 적용되지 않습니다.
이용약관도 함께 확인하시기 바랍니다.
이 개인정보처리방침은 부터 적용됩니다.