개인정보처리방침
1. 요약
BABA Real-Time Chat Translator(이하 “본 앱”)는 사용자가 직접 위치를 정한 화면의 한 영역을 읽어, 그 안의 메시지를 인식하고 번역합니다. 이 절은 전체 내용을 짧게 밝히며, 이어지는 각 절이 세부 내용을 설명합니다.
- 대화는 BABA SOFTWARE로 오지 않습니다. 번역을 위한 당사 서버는 없으며, 당사는 사용자의 대화, 번역문, 화면 캡처, API 키에 관한 어떠한 정보도 수신하지 않습니다. 당사가 운영하는 서버는 Android판의 체험 기간을 한 번만 제공하기 위한 기록 하나뿐이며, 거기에는 기기 식별자의 해시값과 체험 시작 시각만 저장됩니다(11절).
- 본 앱은 대화 텍스트를 두 가지 방법으로 얻습니다. 대화 프로그램이 보조 기술(스크린 리더 등)에 공개해 둔 텍스트를 직접 읽거나, 화면의 한 영역을 캡처해 그 그림에서 글자를 인식합니다. 첫 번째 방법이 쓰는 통로는 운영체제마다 이름이 다릅니다 — Windows판은 UI 자동화, Android판은 접근성 서비스입니다. Android판에서 그것은 기본으로 꺼져 있고, 사용자가 Android 설정에서 직접 켜야 열리며, 언제든 다시 끌 수 있습니다(4절). 어느 쪽을 쓸지는 앱이 판단하며, Windows판은 설정에서 두 번째 방법으로 고정할 수 있습니다. 어느 방법이든 화면 캡처 자체는 계속 이루어집니다. Windows판의 캡처 대상은 화면 전체가 아니라 사용자가 위치와 크기를 정한 하나의 영역입니다. Android판은 화면 전체를 기기 안에서 찍은 뒤 사용자가 정한 읽는 범위만 잘라 읽으며, 찍은 그림은 기기 밖으로 나가지 않습니다.
- 번역을 위해서는 메시지 텍스트를 외부 서비스 한 곳으로 전송해야 합니다. 그 서비스는 사용자가 선택하고 사용자 본인의 API 키로 설정한 곳이며, 유일한 수신자입니다.
- 캡처한 이미지는 기기 밖으로 나가지 않습니다. 예외는 화면 캡처로 글자를 읽는 경우에 한하며, 그중에서도 언어를 자동 감지로 두었거나 Windows가 읽을 수 없는 언어일 때 이미지가 Google로 전송됩니다. 이미지를 받을 수 있는 서비스는 Google 하나뿐입니다. 이를 피하는 방법은 4절에 있습니다. Android판은 이미지를 어디로도 보내지 않습니다 — 글자 인식은 언제나 기기 안에서 이루어집니다.
- 캡처·인식·번역된 어떤 것도 디스크에 기록되지 않습니다. 본 앱이 기록하는 파일은 자신의 설정 파일뿐입니다. 유일한 예외는 Android판에서 사용자가 설정의 진단 단추를 직접 누른 경우로, 그때 한 번의 화면이 기기 안에 파일로 남습니다(10절).
- 분석 도구, 오류 보고, 업데이트 확인이 일절 없습니다. 다만 유료판을 구입했는지와 체험 기간이 남았는지는 확인합니다. 그때 오가는 것과 저장되는 것은 11절에 적어 두었습니다.
2. 화면 캡처
본 앱의 창에는 투명한 구멍(읽기 구멍)이 있으며, 사용자는 이것을 대화 프로그램의 메시지 목록 위에 놓습니다. 본 앱이 캡처하는 것은 그 구멍 뒤에 있는 화면의 사각형입니다. 그 위치와 크기는 사용자가 정합니다. 그 바깥은 캡처되지 않으며, 본 앱은 화면 전체를 캡처하지 않습니다.
캡처는 번역이 실행 중일 때 이루어집니다. 실행은 시작 버튼을 누를 때 시작되고 다시 누를 때 끝납니다. 캡처 간격은 기본 1.5초이며 설정에서 변경할 수 있습니다. 다만 글자를 이 컴퓨터 안에서 읽는 경우 — Windows 내장 인식기를 쓰거나, 창에서 텍스트를 직접 가져오는 경우 — 에는 밖으로 나가는 요청이 없으므로, 설정값과 무관하게 최대 0.3초 간격까지 더 자주 확인합니다. 이때 캡처한 이미지는 이 컴퓨터를 벗어나지 않습니다.
캡처가 몇 가지 더 있으며, 설명을 빠짐없이 하기 위해 여기에 밝힙니다. 번역을 정지하면 이미 화면에 표시된 번역문은 사용자가 마저 읽을 수 있도록 일부러 남겨 둡니다. 그것이 남아 있는 동안 본 앱은 같은 사각형을 1초에 한 번 48×48 픽셀 지문으로 만들어 직전 것과 비교하며, 이는 그 아래의 대화가 바뀌었을 때 남은 번역문을 치우기 위한 것입니다. 이 지문에는 문자 인식을 수행하지 않으며, 이에 관한 어떤 것도 전송되지 않습니다. 기기 안에서 비교하고 폐기합니다.
번역이 실행 중일 때의 짧은 캡처가 둘 더 있습니다. 대화가 스크롤되어 움직이는 동안에는 화면에 떠 있는 번역문이 대화를 따라가도록 0.2초 간격으로 같은 영역을 최대 3초간 확인합니다. 그리고 사용자가 Enter로 메시지를 보낸 뒤에는 그 메시지가 화면에 그려질 때까지 0.12초 간격으로 최대 2.5초간 확인합니다. 둘 다 같은 영역이며, 이 컴퓨터 안에서 처리되고 전송되지 않습니다.
캡처한 이미지는 컴퓨터의 메모리에만 존재합니다. 본 앱에는 캡처한 이미지를 파일, 로그, 캐시, 임시 파일로 기록하는 지점이 존재하지 않습니다.
3. 본 앱은 '창'이 아니라 '화면 영역'을 캡처합니다
이는 사용 전에 알고 계셔야 할 한계이며, 사용자가 스스로 발견하도록 두지 않고 분명히 밝힙니다.
아래의 한계는 화면을 캡처해 글자를 읽는 방식에 해당합니다. 앱이 창에서 텍스트를 직접 가져오는 방식으로 읽고 있는 동안에는 사용자가 지정한 프로그램이 공개한 텍스트만 읽으므로, 그 영역 위에 겹친 다른 프로그램의 내용은 읽히지 않습니다. 다만 그 방식으로 읽던 중에도 읽기가 실패하면 앱이 스스로 화면 캡처 방식으로 돌아가며(4절), 그때부터는 아래의 한계가 다시 적용됩니다.
본 앱은 특정 창이 아니라 화면의 사각형을 캡처하므로, 그 사각형 앞으로 오는 것은 무엇이든 함께 캡처됩니다. 본 앱은 그 영역을 차지한 창이 무엇인지 감시하여 다른 프로그램이 덮으면 읽기를 멈추지만, 그 감시는 완전하지 않습니다.
- 다른 창이 영역 위로 온 순간과 본 앱이 그것을 알아채는 순간 사이에는 최대 한 번의 캡처 간격만큼 틈이 있습니다.
- 같은 프로그램의 다른 창은 의도적으로 통과시킵니다. 대화방마다 창을 따로 여는 메신저에서 그것은 사용자가 의도한 동작이기 때문입니다.
- 웹 브라우저에서 쓰는 메신저에서는 이 감시가 사실상 무력합니다. 영역을 차지한 프로그램이 브라우저이므로 같은 브라우저의 다른 탭과 다른 창이 전부 검사를 통과합니다. 탭은 브라우저 밖에서 구분할 수 없습니다. 대상이 브라우저로 판정되면 본 앱이 세션당 한 번 이를 알립니다.
사용자가 할 수 있는 대응: 읽기 구멍을 메시지 목록에 맞게 좁게 두고, 시작을 누르기 전에 그 뒤에 무엇이 있는지 확인하며, 대화가 끝나면 정지를 누르십시오.
4. 화면 이미지가 기기 밖으로 나가는 경우
본 앱이 대화 텍스트를 얻는 방법은 두 가지이며, 어느 쪽을 쓰는지가 이미지의 전송 여부를 결정합니다.
첫째, 창에서 텍스트를 직접 가져오기. 대부분의 대화 프로그램은 스크린 리더 같은 보조 기술을 위해 화면의 텍스트를 운영체제에 공개해 둡니다. 본 앱은 그것을 직접 읽습니다. 이 방식에서는 이미지가 어디로도 전송되지 않으며, 가져온 문장만 번역 서비스로 갑니다.
이 통로의 이름은 운영체제마다 다릅니다. Windows판은 UI 자동화(UI Automation)를 쓰고, Android판은 접근성 서비스(AccessibilityService)를 씁니다. Android판에서 이 기능은 기본으로 꺼져 있으며, 사용자가 Android 설정에서 본 앱의 접근성 서비스를 직접 켜야 동작합니다. 켜면 본 앱은 화면에 열려 있는 대화 앱의 내용을 받아 번역에만 사용합니다. 그 밖의 용도로 수집하거나 저장하지 않고, 본 앱을 만든 사람에게는 가지 않으며, 비밀번호 입력란은 읽지 않습니다. 본 앱은 장애인 지원 도구가 아니며, 번역할 글자를 읽기 위해 이 통로를 사용합니다. 언제든 Android 설정에서 다시 끌 수 있고, 끄면 본 앱은 아래의 둘째 방법으로 그대로 동작합니다.
Android판에서는 둘째 방법으로 읽을 때도 이미지가 기기 밖으로 나가지 않습니다. Android판의 글자 인식은 언제나 기기 안의 인식기(Google ML Kit)가 수행하며, 이미지를 번역 서비스나 다른 어떤 곳으로도 전송하는 경로가 없습니다. 아래의 표와 “이미지를 기기 안에만 두려면”은 Windows판에 해당합니다.
이 방식으로 읽는 동안에도 본 앱은 화면을 계속 캡처합니다. 화면이 바뀌었는지 확인하고, 대화가 스크롤된 양을 재고, 말풍선을 그리지 않는 프로그램에서 문장의 좌우 끝을 찾기 위해서입니다. 그 그림에서 글자를 읽지 않으며, 어디로도 전송하지 않습니다.
둘째, 화면 캡처 후 문자 인식. 대화 프로그램이 텍스트를 공개하지 않거나, 공개한 텍스트를 읽는 데 실패한 경우에 사용합니다. 이 경우에만 아래 표의 조건에 따라 이미지가 전송될 수 있습니다.
어느 쪽을 쓸지는 앱이 정합니다. 번역을 시작하면 본 앱은 이미 찍어 둔 캡처와 창에서 가져온 텍스트를 서로 대조하여 방식을 정합니다. 이 대조에 쓰는 문자 인식은 Windows 내장 인식기만 사용합니다 — 사용자가 요청하지 않은 검사이므로 사용자의 계정에 어떤 요금도 발생시키지 않기 위한 것입니다. 창에서 아무것도 가져오지 못하면 그림으로 읽으면서 최대 60초 간격으로 판정을 다시 시도하므로, 이 대조는 한 번의 실행에서 여러 번 일어날 수 있습니다. 대조에 사용한 읽기 결과는 저장하지도 전송하지도 않고 즉시 폐기하며, 판정 결과와 몇 개의 숫자만 남습니다.
창에서 텍스트를 가져오던 중 30초 동안 아무 문장도 나오지 않으면, 본 앱은 이미 손에 있는 캡처를 Windows 내장 인식기로 한 번 읽어 화면에 글자가 있는지 확인합니다. 글자가 있다면 조용한 대화가 아니라 읽기가 실패한 것이므로 화면 캡처 방식으로 돌아가고, 프레임에 그 사실을 알리는 표시가 나타납니다. 이 전환은 해당 실행 동안 되돌아가지 않습니다.
설정의 “읽기 방식”에서 언제나 화면 캡처 방식으로 고정할 수 있습니다.
아래 표는 화면 캡처로 글자를 읽을 때에 한하여 적용됩니다.
| 상황 | 이미지를 읽는 주체 | 이미지가 기기 밖으로 나가는가 |
|---|---|---|
| 읽을 언어를 지정했고, 그 언어의 인식기가 Windows에 설치되어 있는 경우 | 기기 안의 Windows 내장 인식기 | 나가지 않습니다. 이미지는 어디로도 전송되지 않습니다. |
| 언어가 자동 감지로 설정되어 있거나, 지정한 언어의 인식기가 Windows에 없는 경우 | 이미지를 보게 되는 Google의 모델 | 나갑니다. 캡처한 이미지가 PNG로 Google에 전송됩니다. |
이미지는 전송 전에 긴 변이 최대 1024픽셀이 되도록 축소됩니다.
이미지를 받을 수 있는 서비스는 Google 하나뿐입니다. Anthropic, OpenAI, DeepL, Groq, 그리고 사용자가 주소를 직접 입력한 곳에는 이미지가 전송되지 않으며, 이들은 텍스트만 받습니다. 선택한 서비스가 이미지를 볼 수 없고 요청한 언어를 Windows도 읽을 수 없는 경우, 본 앱은 이미지를 다른 곳으로 보내지 않고 멈춘 뒤 그 사실을 알립니다.
이미지를 기기 안에만 두려면
창에서 텍스트를 직접 가져오는 방식으로 읽고 있다면 이미지는 애초에 전송되지 않습니다. 아래는 화면 캡처로 읽는 경우의 방법입니다.
본 앱에서 읽을 언어를 “자동 감지”가 아니라 특정 언어로 지정하고, 그 언어의 Windows 인식기가 설치되어 있는지 확인하십시오. 그러면 읽기가 전적으로 사용자의 컴퓨터에서 이루어지며 이미지는 전송되지 않습니다.
읽을 언어를 “자동 감지”로 두면, 앱이 화면에서 읽어낸 문자를 보고 해당 언어를 스스로 지정할 수 있습니다. 이 경우 이후 캡처는 기기 안에서 처리되어 이미지가 외부로 전송되지 않습니다. 언어가 바뀌면 화면에 알림이 표시되며, 언제든 다시 “자동 감지”로 되돌릴 수 있습니다.
인식된 텍스트는 다음 절에 설명된 대로 선택한 번역 서비스로 여전히 전송됩니다. 언어 지정은 이미지의 전송 여부를 바꾸는 것이지, 서비스 없이 번역이 되게 만드는 것이 아닙니다.
5. 제3자 전송
본 앱은 외부 서비스 한 곳을 호출하여 번역합니다. 어느 곳인지는 사용자가 선택하며, 그 서비스의 계정 자격 증명도 사용자가 직접 제공합니다. 선택된 서비스만 호출됩니다.
본 앱이 지정할 수 있는 서비스는 Anthropic, OpenAI, Google, DeepL, Groq이며, 여기에 사용자가 주소를 직접 입력하는 OpenAI 호환 서비스 항목이 하나 더 있습니다. 이 항목의 경우 데이터는 사용자가 입력한 주소로 전송되며, 그 주소는 사용자 자신이 운영하는 서버일 수도 있고 사용자가 선택한 제3자의 서버일 수도 있습니다.
전송되는 것
- 읽기 구멍(Android판에서는 읽는 범위) 안에 있는 메시지들의 인식된 텍스트. Android판이 접근성으로 읽을 때는, 위·아래 경계에 조금 걸친 메시지(메시지 높이의 1/5 과 약 12dp 중 작은 쪽까지)도 함께 포함됩니다. 좌우로 걸친 메시지는 포함되지 않습니다.
- 입력한 글을 번역하는 기능을 사용할 때, 사용자 본인이 작성한 메시지의 텍스트.
- 원본 언어와 대상 언어, 그리고 선택한 말투를 명시한 본 앱의 번역 지시문.
- 요청의 인증 헤더로서의 사용자 API 키.
- Google에 한하여, 그리고 4절에 설명된 상황에 한하여, 캡처한 이미지.
사용자가 요청할 때만 전송되는 것
- 설정에서 모델 목록을 새로 고칠 때, 그 서비스가 제공하는 모델 목록 요청. 이 요청에는 API 키 외에 아무것도 담기지 않습니다.
- 설정에서 연결을 테스트할 때의 짧은 연결 확인 요청.
BABA SOFTWARE는 이 중 어느 것의 수신자도 아닙니다. 본 앱에는 이를 보낼 당사의 서버가 존재하지 않습니다.
각 서비스가 수신한 내용을 어떻게 취급하는지는 본 방침이 아니라 그 서비스의 개인정보처리방침과 약관이 규율합니다. 주소가 고정된 서비스에 대해서는 본 앱이 설정 화면에서 해당 방침을 링크하므로 선택 전에 읽어 보실 수 있습니다. 주소를 사용자가 입력하는 항목에 대해서는 그 주소가 사용자의 것이므로 링크할 방침이 존재하지 않습니다.
6. 클립보드
본 앱은 다음 두 가지 목적으로만 클립보드를 사용합니다.
- 사용자가 쓴 글 가져오기 — 사용자가 채팅 입력창에 글을 쓰고 전송 키를 누르면, 앱이 복사 명령을 보내 그 글을 가져옵니다. 이 글은 번역을 위해 사용자가 선택한 번역 서비스로 전송됩니다.
- 번역문 입력하기 — 번역된 글을 클립보드에 넣어 입력창에 붙여넣습니다.
작업 전 기존 클립보드 내용을 보관했다가 작업 후 되돌립니다. 다만 앱 자체 입력칸을 사용한 경우, 그리고 붙여넣을 창을 찾지 못해 사용자가 직접 붙여넣도록 안내한 경우에는 번역문이 클립보드에 남습니다.
이 앱은 클립보드를 주기적으로 감시하지 않습니다. 클립보드 읽기는 위 작업이 실행되는 순간에만 일어납니다. 사용자가 이전에 복사해 둔 내용은 복원 목적으로만 읽히며, 외부로 전송되거나 디스크에 저장되지 않습니다.
7. 키보드
먼저 분명히 밝힙니다. 본 앱은 전역 저수준 키보드 훅을 설치합니다. 이는 사용자가 입력 중인 프로그램보다 먼저 키 입력을 볼 수 있게 하는 Windows의 기능이며, 사용자가 작성한 글을 다른 곳에 복사하게 만들지 않고 Enter를 누르는 순간에 번역할 수 있는 것은 이 때문입니다.
이 훅이 여기서 하는 일은 좁으며, 전부 다음으로 한정됩니다.
- 훅은 앱이 시작될 때 설치되어 앱이 실행되는 동안 유지됩니다. 번역이 실행 중이고 동시에 입력한 글을 번역하는 입력 방식을 선택한 경우가 아니면 아무 일도 하지 않으며, 그 외에는 모든 키가 그대로 지나갑니다.
- 보는 키는 Enter 하나입니다. 그 외의 키는 검사하지 않고 그대로 넘깁니다.
- Enter는 본 앱이 읽고 있는 대화 창이 곧 사용자가 입력 중인 창일 때만 처리합니다. 그 밖의 곳에서 누른 Enter는 손대지 않고 넘깁니다.
- 대부분의 대화 프로그램에서 줄바꿈인 Shift+Enter는 결코 건드리지 않습니다.
- 훅이 내리는 유일한 판단은, 그 Enter를 통과시킬지 아니면 먼저 번역할 수 있도록 붙잡아 둘지입니다.
이것이 키로거가 아닌 이유
키로거는 사용자가 입력한 문자를 기록하여 어딘가로 보냅니다. 본 앱은 둘 다 하지 않습니다. 본 앱은 입력한 문자를 읽지 않습니다. Enter 외의 키는 검사하지 않고, 어떤 키 입력도 저장하지 않으며, 어떤 키 입력도 전송하지 않습니다.
번역되는 텍스트는 훅에서 나오지 않습니다. 그것은 Enter를 누른 뒤 6절의 클립보드 방식으로 대화 프로그램의 입력창에서 복사한 것이며, 사용자가 이미 작성을 마치고 보내려던 메시지이지 입력 과정의 기록이 아닙니다.
8. API 키의 저장
입력한 키는 본 앱의 설정 파일에 저장됩니다. 이 파일은 사용자별 애플리케이션 데이터 폴더에 settings.json 파일 하나로 저장됩니다. 실제 경로는 설치 방식(일반 설치 / Microsoft Store 패키지)에 따라 다르며, 어느 경우든 현재 로그인한 Windows 사용자 계정에만 속하는 위치입니다.
그 파일 안에서 키는 Windows 데이터 보호 API(DPAPI)의 현재 사용자(current user) 범위로 암호화되며, 응용 프로그램 고유의 추가 엔트로피 값이 함께 사용됩니다.
그 결과 저장된 키는 그 컴퓨터의 해당 Windows 계정에서만 복호화할 수 있습니다. 다른 계정이나 다른 컴퓨터로 복사하면 읽을 수 없으며, 본 앱은 키가 설정되지 않은 것으로 취급합니다.
Android판에서는 키가 앱 전용 저장 공간의 settings.json에 저장되며, 기기의 Android 키스토어 안에서 만들어진 열쇠(AES-GCM)로 암호화됩니다. 그 열쇠는 키스토어 밖으로 나오지 않으므로, 파일을 다른 기기로 복사해도 키를 열 수 없습니다. 본 앱은 Android 백업을 꺼 두었으므로 설정 파일은 Google 드라이브 등의 백업에도 올라가지 않습니다. 앱을 삭제하거나 앱 데이터를 지우면 키도 함께 사라집니다.
키는 그것이 속한 서비스로만, 해당 요청의 인증 헤더로서 전송됩니다. 당사로 전송되지 않으며, 다른 어떤 서비스로도 전송되지 않습니다.
9. 번역 기억
본 앱은 실행 중에 이미 받아 둔 번역을 기억하여, 대화를 위아래로 스크롤할 때 같은 메시지에 두 번 비용을 치르지 않게 합니다.
- 이 기억은 실행 중인 프로그램 안에만 존재합니다. 디스크에 기록되지 않습니다.
- 최대 1,500건을 보관하며, 그것을 넘으면 오래된 것부터 버립니다.
- 서비스, 언어 쌍, 말투 중 하나라도 바꾸면 즉시 비웁니다.
- 앱을 닫으면 사라집니다. 종료 시 내보내거나 저장하는 것은 없습니다.
10. 기기에 저장되는 것
Windows판이 기록하는 파일은 8절에서 설명한 사용자별 애플리케이션 데이터 폴더의 settings.json 하나입니다. 이 파일에는 설정만 들어 있습니다. Android판은 아래 “Android판”에 따로 적었습니다.
- 선택한 서비스, 그리고 설정해 둔 서비스마다: 암호화된 API 키, 선택한 모델, 그 서비스가 사용자가 입력한 주소를 쓰는 경우 그 주소.
- 번역할 대상 언어와 말투. 그리고 앱을 켤 때 시작할 “읽을 언어”와 “내 메시지를 번역할 언어”. 뒤의 두 가지는 설정 창에서 정한 시작값만 저장되며, 프레임에서 바꾼 값과 앱이 자동으로 판정한 언어는 저장되지 않고 앱을 닫으면 사라집니다.
- 읽기 방식 — 앱이 스스로 판단하게 둘지, 화면 캡처로 고정할지.
- 표시 방식과 입력 방식.
- 프레임 색, 말풍선 색, 말풍선 글자 색.
- 캡처 간격, 오버레이 글꼴 크기, 오버레이 불투명도, 프레임 불투명도.
- 프레임의 위치와 너비·높이, 입력 구멍의 높이.
- 알림 영역으로 최소화할지 여부, 앱의 표시 언어, 번역문 아래에 원문을 함께 표시할지 여부.
- 개인정보 고지에 동의했는지(몇 번째 판의 고지인지), 첫 실행 안내를 끝까지 마쳤는지.
이 파일에 들어 있지 않은 것: 메시지 텍스트, 번역문, 화면 캡처, 그리고 그것들에 대한 어떤 기록도 들어 있지 않습니다. Windows판은 이 외에 어떤 파일도 기록하지 않습니다. 로그 파일도, 캐시도, 읽은 내용의 임시 사본도 없습니다.
Android판
Android판은 앱 전용 저장 공간에 설정 파일 두 개를 둡니다. 다른 앱은 이 공간을 읽을 수 없으며, 앱을 삭제하면 함께 지워집니다.
settings.json— Windows판과 같은 형식의 같은 파일이며, 들어 있는 항목도 위의 목록과 같습니다. API 키는 Android 방식으로 암호화됩니다(8절). 프레임의 색과 위치처럼 Android판이 쓰지 않는 항목은 기본값 그대로 남습니다.phone.json— 이 기기에서의 화면 설정: 화면 모양(접은 화면, 펼친 화면, 가로·세로)마다 사용자가 정한 읽는 범위, 입력창 옆 번역 단추를 보일지, 접근성으로 읽을지, 접근성을 켠 적이 있는지(강제 종료로 접근성이 꺼졌을 때 알려 주기 위한 것), 말풍선 색을 화면에서 가져올지, 이 기기에서 캡처 차단 표시가 동작하는지.
이 두 파일에도 메시지 텍스트, 번역문, 화면 캡처는 들어 있지 않습니다. 로그 파일과 캐시도 없습니다.
진단 파일 (사용자가 요청할 때만). 설정 화면의 “다음 한 바퀴를 파일로 남기기”를 누르면, 화면을 찍어 읽고 있는 동안에 한해 그다음 한 번 읽은 화면의 캡처(reading.png)와 그 화면에서 읽어 낸 글(reading.txt)이 앱의 외부 파일 폴더(Android/data/com.baba.chattranslator/files)에 남습니다. 문제를 확인하기 위한 기능이며, 누르지 않으면 만들어지지 않습니다. 접근성으로 읽은 글은 이 버튼을 눌러도 파일로 남기지 않습니다. 이 파일에는 대화 내용이 그대로 들어갑니다. 본 앱은 이 파일을 어디로도 전송하지 않으며, 다음에 누르면 덮어씁니다. 앱을 삭제하면 함께 지워지고, 그 전에라도 파일 관리자에서 직접 지울 수 있습니다. 설정 화면에도 같은 안내가 표시됩니다.
11. 분석, 오류 보고, 그 밖의 네트워크 통신
없습니다. 구체적으로는 다음과 같습니다.
- 어떤 종류의 분석 도구나 사용량 측정 도구도 본 앱에 포함되어 있지 않습니다.
- 충돌 보고나 오류 보고를 전송하지 않습니다. 예기치 못한 오류가 발생하면 본 앱은 사용자에게 메시지를 보여주고 계속 동작하며, 그에 관한 어떤 것도 컴퓨터 밖으로 나가지 않습니다.
- 본 앱은 업데이트 확인을 하지 않습니다.
- 5절에 설명한 선택된 번역 서비스로의 요청과, 아래에 설명하는 구입 여부·체험 기간 확인 외에, 본 앱은 어떤 네트워크 요청도 하지 않습니다.
구입 여부 확인
본 앱은 유료입니다. 그래서 실행할 때 이 사람이 정식판을 구입했는지를 앱을 배포한 스토어에 물어봅니다. Windows판은 Microsoft Store에, Android판은 Google Play에 묻습니다.
본 앱은 사용자의 계정 정보를 받지도, 요구하지도 않습니다. 스토어는 「구입했음/구입하지 않았음」만 답하며, 이름·이메일·계정 식별자는 본 앱에 전달되지 않습니다. 본 앱에 로그인 기능이 없는 이유가 이것입니다 — 신원 확인은 이미 로그인되어 있는 스토어 앱이 대신하고, 본 앱은 그 결과만 받습니다.
구입 기록은 본 앱이 아니라 스토어가 사용자의 계정에 붙여 보관합니다. 그래서 앱을 지웠다 다시 설치하거나 기기를 바꾸어도 구입한 사실이 그대로 이어집니다.
체험 기간 확인 (Android판)
Android판에는 7일 무료 체험이 있습니다. 체험이 언제 시작되었는지를 기기 안에 적어 두면 앱을 지웠다 다시 설치하는 것만으로 초기화되므로, 본 앱은 그 시각을 본 앱 개발자가 운영하는 서버(Google Firebase Realtime Database, 싱가포르)에 보관합니다.
그 서버에 저장되는 것은 다음 두 가지가 전부입니다.
- 기기 식별자의 해시값. Android가 앱마다 다르게 부여하는 식별자(
ANDROID_ID)에 본 앱 고유의 값을 섞어 SHA-256으로 계산한 문자열입니다. 원본 식별자는 저장하지도 전송하지도 않으며, 이 해시값으로부터 원본이나 사용자를 되찾을 수 없습니다. - 체험이 시작된 시각. 서버가 자기 시계로 기록합니다.
이 식별자에 대해 본 앱이 하지 않는 것을 밝혀 둡니다.
- 광고 식별자와 결합하지 않습니다.
- Google 계정, 이메일, 전화번호, 그 밖의 어떤 개인 정보와도 연결하지 않습니다.
- 사용자를 추적하거나 이용 행태를 기록하는 데 쓰지 않습니다. 저장된 시각은 체험 기간이 남았는지를 계산하는 데에만 쓰입니다.
- 대화 내용, 캡처한 이미지, 번역 결과는 이 서버로 전송되지 않습니다. 그런 것이 기기 밖으로 나가는 경우는 5절에 적힌 번역 서비스뿐입니다.
정식판을 구입한 뒤에는 체험 기간을 확인할 이유가 없으므로 이 서버를 부르지 않습니다. Windows판은 체험 기간을 Microsoft Store가 직접 관리하므로 이 서버를 전혀 사용하지 않습니다.
네트워크 통신과는 별개로, 본 앱은 사용자의 기본 웹 브라우저를 열 수 있습니다. [API 가져오기]를 눌렀을 때 해당 서비스의 키 페이지를, 설정 화면의 링크를 눌렀을 때 그 페이지를 엽니다. 이는 사용자가 열도록 요청한 페이지이며, 본 앱이 그와 함께 보내는 것은 없습니다.
12. 아동
본 앱은 범용 도구이며 아동을 대상으로 하지 않습니다. 본 앱은 당사로 아무것도 전송하지 않으므로, 당사는 연령을 불문하고 누구로부터도 개인정보를 수집하지 않습니다. 보호자로서 이에 관해 문의할 사항이 있으시면 아래 주소로 연락해 주십시오.
13. 데이터 삭제 요청
BABA 실시간 채팅 번역기(개발자: BABA SOFTWARE)가 서버에 보관하는 것은 11절에 적은 체험 대장의 한 줄뿐입니다. 대화 내용, 캡처한 이미지, 번역 결과, API 키는 애초에 서버로 가지 않으므로 지울 것도 없습니다.
지워지는 것
- 기기 식별자의 해시값 —
ANDROID_ID에 본 앱 고유의 값을 섞어 계산한 문자열 - 체험이 시작된 시각
그 줄이 전부이며, 지우면 남는 것이 없습니다.
보관 기간
이 한 줄은 삭제를 요청하실 때까지 보관됩니다. 체험을 한 번만 제공하기 위한 기록이므로 정해진 만료 기간을 두지 않습니다. 앱을 삭제해도 이 줄은 남습니다 — 지우려면 아래 방법으로 요청해 주십시오.
요청 방법
- baba_software@hotmail.com 으로 제목을 「데이터 삭제 요청」으로 하여 메일을 보내 주십시오.
- 메일에 기기 열쇠의 앞 여덟 자리를 적어 주십시오. 앱의 설정 화면 아래쪽에
이 기기의 열쇠: xxxxxxxx형태로 표시됩니다. - 확인 후 30일 이내에 해당 줄을 지우고 회신드립니다.
열쇠를 알려 주셔야 하는 이유를 밝혀 둡니다. 저장된 값은 기기에서만 계산되는 해시이고, 당사는 그것을 이메일 주소나 이름으로 되찾을 방법이 없습니다. 이는 설계상 그렇게 만든 것입니다 — 당사가 사용자를 찾아낼 수 없다는 뜻이기도 합니다. 열쇠를 알려 주기 어려우신 경우에도 위 주소로 문의해 주시면 함께 방법을 찾겠습니다.
14. 방침의 변경
본 앱의 동작이 이 문서에 기재된 내용에 영향을 주는 방식으로 바뀌는 경우, 이 페이지를 갱신하고 상단의 시행일도 함께 변경합니다. 여기에 게시된 판은 항상 현재 배포판을 설명하는 판입니다.
15. 연락처
본 방침에 관한 질문, 또는 본 앱의 동작에 관한 질문은 baba_software@hotmail.com으로 보내 주십시오.