홈 애드온이 볼 수 있는 것과 볼 수 없는 것 — 요청하는 권한 전부
포스트
취소

애드온이 볼 수 있는 것과 볼 수 없는 것 — 요청하는 권한 전부

Google Docs 애드온을 설치하면 체크박스 몇 개짜리 동의 화면이 뜹니다. 구글이 권한을 요약할 때 쓰는 압축된 문장들이라, 내가 정확히 무엇에 동의하는 건지 궁금한 게 당연합니다.

LaTeXFlow 가 요청하는 권한 전부와, 각각이 어디까지 닿는지, 그리고 더 쓸모 있는 쪽 — 무엇에는 닿지 못하는지를 정리합니다.

한 문장 요약: 열려 있는 그 문서 하나를 읽고 고칠 수 있고, 다른 문서나 Drive 의 무엇에도 손댈 수 없습니다. 이건 정책상의 약속이 아니라 어떤 권한을 요청했느냐의 결과이고, 강제하는 쪽은 구글입니다.

1. 동의 화면이 보여 주는 것과 실제 권한

흐름이 두 페이지 입니다. 한 페이지가 아닙니다.

1 페이지 는 계정 화면입니다 — 이름, 프로필 사진, 이메일 주소. 이메일 권한이 여기서 승인됩니다.

2 페이지 가 권한 요약입니다. 체크박스 세 개 와 Continue 버튼.

셋 더하기 하나가 넷이고, 그게 전부입니다. “확인되지 않은 앱” 경고 화면은 나오지 않습니다 — 구글 검토를 거쳐 게시된 앱입니다. 만약 이걸 사칭한 무언가에서 그 경고를 보신다면 주소를 확인해 보세요.

찾아보신 분들이 헷갈리는 지점이 하나 있습니다. 구글 개발자 콘솔에는 동의 화면보다 권한이 하나 더 표시됩니다 — “이름과 프로필 사진” 항목입니다. 이건 제거할 수 없는 플랫폼 기본값이고, 애드온의 매니페스트에 없고, 코드가 쓰지 않으며, 동의 화면의 권한 목록에도 나오지 않습니다. 1 페이지에 보이는 이름과 프로필 사진 줄은 구글의 표준 계정 패널이지 애드온의 요청이 아닙니다.

2. 요청하는 권한 목록

정확히 넷입니다.

권한뜻
documents.currentonly애드온이 지금 열려 있는 그 문서 하나 만 읽고 고칩니다
script.container.uiDocs 안에 메뉴 · 사이드바 · 설정 창을 그립니다
script.external_request바깥으로 나가는 서버 요청 하나 — 동의한 수식을 수집 엔드포인트로 보냅니다
userinfo.email계정 이메일을 한 번 읽어 익명 식별자를 만듭니다

3. 각 권한이 닿는 범위

documents.currentonly — 지금 그 문서, 그리고 다른 어떤 문서도 아님.

핵심은 이거고, currentonly 라는 부분이 전부입니다. 넓은 문서 권한을 받아 두고 예의상 안 쓰는 게 아닙니다. 더 좁은 권한이라 다른 문서에 접근하는 것이 불가능 합니다. 시도해도 다른 파일을 열 수 없습니다. 구글이 거부합니다.

현재 문서 안에서는 다섯 가지에 쓰입니다 — 이미지 삽입, 텍스트를 이미지로 교체, 텍스트 스캔, 이미지를 LaTeX 으로 되돌리기, 선택 영역을 구분자로 감싸기.

script.container.ui — 화면 그리기.

메뉴, 사이드바 패널, 설정 창. Docs 창 안에 무언가를 표시하는 권한입니다. 문서 내용을 읽거나 쓰는 능력은 여기 들어 있지 않습니다. 그건 온전히 앞 권한의 몫입니다.

script.external_request — 요청 하나, 목적지 하나.

애드온의 서버 쪽 코드가 바깥으로 HTTP 요청을 보낼 수 있게 합니다. 이 코드베이스에서 그런 호출은 정확히 한 번, 함수 하나에 나오고, 목적지가 소스에 그대로 적힌 문자열입니다. 수식 하나를 수집 엔드포인트로 보내며, 데이터 수집이 켜져 있을 때만 동작합니다.

userinfo.email — 한 번 읽어 익명 ID 를 만든다.

이메일 주소는 코드의 한 지점에서, 수집 경로에서만 읽힙니다. 이메일에 salt 를 붙여 SHA-256 을 계산하고 앞에서 잘라 16 글자짜리 익명 식별자를 만드는 데 씁니다. 주소 자체는 전송되지도 저장되지도 않습니다.

4. 닿지 못하는 것

이쪽이 더 쓸모 있을 때가 많습니다.

접근 불가이유
다른 Google Docs 문서documents.currentonly 가 불가능하게 만듭니다
Drive, 폴더, 파일 목록Drive 권한을 아예 요청하지 않습니다
Gmail · 캘린더 · 주소록 · 사진어느 쪽 권한도 없습니다
스프레드시트 · 슬라이드권한 없음
무언가를 삭제하는 것삭제를 허용하는 권한이 목록에 없습니다
이메일 주소를 데이터로해시를 만들려고 읽을 뿐, 전송·저장하지 않습니다
문서 제목 · 문서 ID · 수식 바깥의 본문보내는 항목에서 의도적으로 빠져 있습니다

마지막 줄에 대해 — 데이터 수집이 켜져 있을 때 변환된 수식 하나에 대해 애드온을 떠나는 것은 LaTeX 원문, 렌더된 이미지, 어떤 종류의 구분자였는지, 익명 해시, 시각, 그리고 애드온에서 왔다는 표시입니다. 문서 ID 도, 문서 제목도, 그 수식 말고 다른 본문도 들어가지 않습니다.

5. 왜 이 권한이 필요한가

권한 목록은 그게 없으면 무엇이 깨지는지와 나란히 놓아야 뜻이 생깁니다.

  • 문서 권한 을 빼면 수식을 읽지도 이미지를 넣지도 못합니다. 기능이 아예 없어집니다.
  • 화면 표시 를 빼면 메뉴도 사이드바도 없어서 누를 자리가 없습니다.
  • 외부 요청 을 빼면 데이터 수집이 멈춥니다. 그 외에는 아무것도 안 바뀝니다. 렌더링은 서버가 아니라 사이드바에서 일어나므로 변환에 영향이 없습니다.
  • 이메일 을 빼면 익명 식별자를 만들 수 없어 수집된 표본을 사용자 단위로 묶지 못합니다.

세 번째에 한 줄 더. 이 권한이 제일 넓게 들리는데, 서버 쪽 요청만 해당합니다. 사이드바가 쓰는 수식 렌더링 라이브러리는 여느 웹 페이지가 스크립트를 불러오듯 브라우저가 가져오는 것이고, 이 권한의 범위가 아닙니다.

6. 수집은 여기서 opt-in 입니다

따로 적어 둘 만합니다. LaTeXFlow 두 제품의 기본값이 다르고, 그 방향이 사람들이 예상하는 쪽과 반대이기 때문입니다.

애드온 은 opt-in 입니다. 사이드바를 처음 열면 동의 오버레이가 덮고 Decline 과 Agree 가 있습니다. 동의하기 전에는 수집 함수가 즉시 반환하고 바깥으로 나가는 요청 자체가 없습니다. 줄어드는 게 아니라 없습니다. 답은 확장 프로그램 → LatexFlow → Data Collection Settings 에서 언제든 바꿀 수 있습니다.

웹 도구 는 opt-out 입니다. 기본으로 켜져 있고 끄는 설정이 있습니다.

같은 곳에서 만든 두 제품인데 기본값이 반대인 이유는 설치 단계의 마찰이 다르기 때문입니다. 이 부분이 신경 쓰이신다면, 애드온에서는 처음 열 때 답하는 그 화면이 결정 지점입니다.

7. 권한을 거두는 법

한 번 승인했다고 묶이지 않습니다. 애드온이 아니라 구글 쪽에서 합니다.

  1. Google 계정 에 접속합니다.
  2. 보안 → Google 계정으로 로그인 (또는 타사 앱 및 서비스와의 연결) 으로 들어갑니다.
  3. 목록에서 해당 앱을 고르고 액세스 권한 삭제 를 누릅니다.

이미 변환해 둔 문서에는 영향이 없습니다. 그 안의 수식은 이미지라 이미지로 남습니다. Marketplace 에서 삭제하면 애드온이 문서에서 사라지고, 액세스 권한 삭제는 권한을 회수합니다.

8. 회사 · 학교 계정이라면

조직에서 관리하는 계정은 관리자가 애드온 설치를 막아 둔 경우가 있습니다. 이때는 동의 화면 대신 관리자에게 문의하라는 안내가 뜹니다. 사용자 쪽에서 우회할 방법은 없고, 대안은 웹 도구 입니다. 끌어다 놓기 경로는 설치도 계정도 필요 없습니다.

9. 자주 묻는 질문

전에 열어 둔 문서도 볼 수 있나요. 아닙니다. currentonly 는 애드온이 실행 중인 그 문서에 대한 접근입니다. 기록도 없고 다른 문서 목록도 없습니다.

내 문서가 업로드되나요. 문서 본문은 전송되지 않습니다. 수집이 켜져 있으면 수식 단위로 — LaTeX 과 렌더 이미지, 익명 식별자 — 가 전송되고, 문서를 식별할 수 있는 것은 들어가지 않습니다. 수집이 꺼져 있으면 나가는 요청이 없습니다.

콘솔에 동의 화면보다 권한이 하나 더 보입니다. “이름과 프로필 사진” 항목은 콘솔에서 제거할 수 없는 구글 플랫폼 기본값입니다. 매니페스트에 없고, 코드가 쓰지 않고, 동의 화면 권한 목록에도 없습니다. 하나 어긋나는 게 정상입니다.

데이터 수집을 거절하면 어떻게 되나요. 수집만 안 합니다. 스캔 · 변환 · 되돌리기 전부 똑같이 동작합니다.

웹 도구도 권한이 같은가요. 아닙니다. 다른 제품입니다. 웹은 끌어다 놓기에 계정이 필요 없고, Drive 가져오기 버튼을 쓸 때만 drive.file 을 요청합니다. Picker 에서 고른 그 파일 하나에 대한 권한이고 그 밖에는 없습니다 — Drive 가져오기 경로 에 정리해 두었습니다.

10. 정리

  • 권한은 넷입니다. 현재 문서만, 화면 표시, 외부 요청 하나, 이메일 한 번 읽기.
  • documents.currentonly 는 단단한 경계입니다. 다른 문서는 안 건드리는 게 아니라 못 건드립니다.
  • Drive 접근 없음, 다른 구글 서비스 없음, 삭제 없음, 이메일은 전송되지 않습니다.
  • 애드온의 수집은 opt-in 이고, 동의 전에는 외부 요청이 아예 일어나지 않습니다.
  • 콘솔에 플랫폼 기본값 하나가 더 보이는 건 정상입니다.
  • 권한은 Google 계정 보안 설정에서 언제든 거둘 수 있습니다.

이 권한들이 무엇에 쓰이는지 먼저 보고 결정하고 싶으시다면 설치부터 첫 변환까지 가 그 경로 전체를 다룹니다. 확인이 끝나셨다면 애드온은 Google Workspace Marketplace 에 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Word Equation Objects Are Not Text — Why Your Converter Finds Nothing

Your .gdoc File Will Not Open: Why, and the Drive Import Path Around It