개인정보처리방침
Type History (타입 히스토리) · com.coco.typehistory
핵심 안내: Type History가 기록한 입력 기록과 클립보드 기록은 이 기기 안에만 저장됩니다. 서버로 전송하거나 동기화하지 않으며, 사용자가 직접 복사·공유하거나 파일로 내보내지 않는 한 기기 밖으로 나가지 않습니다. 가려진 비밀번호 입력란은 기록하지 않습니다. 다만 이 앱은 Google AdMob 광고를 표시하고, Firebase로 사용 통계와 오류 리포트를 보내며, Google Play로 프리미엄 구매를 확인합니다. 그래서 광고 표시, 사용 통계·오류 리포트 전송, 구매 확인, 그리고 이 방침 페이지를 앱에서 열 때 인터넷 연결을 사용하며, 광고에는 광고 ID가 사용됩니다. 입력 기록과 클립보드 기록의 내용은 그 통신에 포함되지 않습니다.
1. 다루는 정보
Type History는 계정도, 로그인도, 자체 서버도 없습니다. 앱이 다루는 정보는 다음과 같습니다.
- 입력 기록 — 기기에만 저장(전송하지 않음): 접근성 서비스로 다른 앱의 입력란에 입력한 텍스트를 읽어, 앱 이름·패키지명, 시각, 입력란 식별자(뷰 ID 또는 화면 요소 종류)와 함께 기기 안의 로컬 데이터베이스에 저장합니다. 이 정보는 서버로 전송하지 않습니다.
- 가려진 비밀번호 입력란 — 기록하지 않음: 가려진 비밀번호 입력란은 기록하지 않습니다.
- 클립보드 기록 — 켠 경우에만, 기기에만 저장(전송하지 않음): 클립보드 기록은 기본으로 꺼져 있습니다. 설정에서 켜면 다른 앱에서 복사한 텍스트를 복사한 앱의 이름·패키지명, 시각과 함께 기기 안의 로컬 데이터베이스에 저장합니다. "이미지도 기록"을 함께 켜면 복사한 이미지를 앱 전용 저장소에 저장합니다(한 장 10MB 이하). 복사 버튼을 누르거나 '복사됨' 알림이 뜬 것을 감지했을 때만 기록하므로 모든 복사가 기록되지는 않습니다. 복사한 앱이 민감한 내용으로 표시한 클립은 읽지 않습니다. 그 밖에 복사한 텍스트는 내용과 관계없이 기록될 수 있습니다.
- 앱 설정 — 기기에만 저장: 보관 기간, 제외할 앱 목록, 클립보드 기록 사용 여부, PIN 잠금·생체인증 사용 여부 같은 설정은 앱 전용 저장소에 보관합니다. PIN은 원문을 저장하지 않고, 임의의 솔트를 붙인 SHA-256 해시만 저장합니다.
- 설치된 앱 목록 — 기기 안에서만 사용: 제외할 앱을 고르고 기록 옆에 앱 이름·아이콘을 보여 주기 위해, 홈 화면에 아이콘이 있는 앱의 목록을 기기 안에서 조회합니다. 이 목록은 전송하지 않습니다.
- 구매 상태 — 기기에 저장: 프리미엄 구매 여부와 구매 시각, 구매 상태를 마지막으로 확인한 시각, 첫 실행 시각(웰컴 혜택 기간 계산용) 같은 구매 상태 정보를 앱 전용 저장소에 보관합니다. 결제 수단 등 결제 정보는 Google Play가 처리하며 앱은 다루지 않습니다.
- 광고 관련 정보 — Google AdMob이 수집(서버 전송): 광고를 게재하기 위해 AdMob SDK가 광고 ID 등 기기 식별자, 대략적인 위치, 앱 상호작용 정보를 수집·이용할 수 있습니다. 자세한 내용은 아래 4항을 참고하세요.
- 사용 통계·진단 정보 — Firebase Analytics·Crashlytics가 수집(서버 전송): 앱 개선과 안정성 확보를 위해 사용 이벤트(예: 기능을 몇 번 썼는지, 어떤 설정을 켰는지, 구매를 완료했는지 같은 지표)와 오류 리포트를 보냅니다. 입력 기록·클립보드 기록의 내용과, 어떤 앱에 입력하거나 어떤 앱에서 복사했는지(패키지명)는 이 이벤트에 넣지 않습니다. 자세한 내용은 아래 4항을 참고하세요.
- 피드백 메일 — 보낼 때만: 설정의 "피드백 보내기"를 누르면 기기의 메일 앱이 열리고, 본문에 앱 버전, 기기 모델, Android 버전, 언어가 미리 채워집니다. 사용자가 메일을 보내면 개발자는 그 내용과 보낸 사람의 이메일 주소를 받습니다. 입력 기록은 메일에 자동으로 넣지 않습니다.
- 요청하지 않는 권한: 연락처, 사진·미디어, 위치, 마이크, 카메라 권한은 요청하지 않습니다.
2. 접근성 서비스 사용
Type History는 "다른 앱에 입력한 텍스트를 기기에 저장해 두었다가 나중에 다시 찾아 복사한다"는 핵심 기능과, 사용자가 켠 경우 클립보드 기록 기능을 위해 Android 접근성 서비스를 사용합니다.
- 무엇을 읽는가 (입력 기록): 텍스트 변경 이벤트(
TYPE_VIEW_TEXT_CHANGED)를 받아 입력란의 텍스트, 입력한 앱의 패키지명, 입력란 식별자(뷰 ID 또는 화면 요소 종류)를 읽고 시각을 함께 기록합니다. 앱 이름은 패키지명으로 기기에서 찾아 붙입니다. 입력란의 힌트·라벨은 비밀번호 입력란인지 판단하는 데에만 확인하고 저장하지 않습니다.
- 무엇을 읽는가 (클립보드 기록을 켠 경우): 복사를 감지하기 위해 클릭, 알림('복사됨' 안내 등), 화면 전환 이벤트를 추가로 받습니다. 누른 버튼과 알림의 글자·설명은 복사 동작인지 판단하는 데에만 쓰고 저장하지 않으며, 화면 전환 이벤트로는 지금 사용 중인 앱의 패키지명을 확인해 복사한 앱을 정하고 제외할 앱을 적용합니다. 복사를 감지하면 클립보드의 내용을 읽습니다. Android 10 이상에서는 화면에 포커스가 있는 앱만 클립보드를 읽을 수 있어, 접근성 서비스 권한으로 보이지 않는 작은 창을 잠깐 띄웠다가 바로 닫습니다. 이때 "Type History이(가) 클립보드에서 붙여넣음" 같은 시스템 안내가 보일 수 있습니다. 클립보드 기록을 끄면 이 추가 이벤트를 받지 않습니다.
- 어디에 저장하는가: 읽은 내용은 이 기기 안의 로컬 데이터베이스(이미지는 앱 전용 저장소)에만 저장합니다. 사용자가 앱에서 다시 찾아보고, 검색하고, 고쳐서 복사·공유·삭제할 수 있게 하는 데에만 사용합니다.
- 전송하지 않음: 접근성 서비스로 읽은 텍스트와 그 앱 이름·패키지명, 시각, 입력란 식별자, 복사한 내용은 서버로 전송하지 않고, 광고·통계·오류 리포트에도 넣지 않습니다.
- 기록하지 않는 경우: 가려진 비밀번호 입력란, 사용자가 제외한 앱, Type History 자신의 화면에서는 기록하지 않습니다. 접근성 서비스가 꺼져 있는 동안에는 아무것도 기록하지 않습니다.
- 대신 수행하는 동작 없음: 이 앱은 사용자를 대신해 화면을 클릭·스크롤·이동하거나 양식을 채우지 않습니다. 제스처 수행(
canPerformGestures)이나 키 이벤트 필터링을 선언하지 않았습니다.
- 사용 전 안내와 동의: 접근성 서비스는 사용자가 직접 켜야 동작합니다. 앱에서 접근성 서비스를 켜는 흐름에서는 켜기 전에 앱이 무엇을 읽고 어디에 저장하는지 안내하는 "접근성 서비스 사용 안내" 화면을 보여 주고, "동의하고 설정 열기"를 누른 경우에만 접근성 설정으로 이동합니다. 클립보드 기록도 켜기 전에 별도 안내를 보여 줍니다.
- 끄는 방법: 앱의 설정에서 "사용 중" 스위치를 끄면 접근성 서비스가 꺼지고 새 입력은 저장되지 않습니다. Android 설정 > 접근성에서 Type History를 꺼도 됩니다. 클립보드 기록은 앱 설정에서 따로 끌 수 있습니다.
- Type History는 사용자가 자기 기기에서 입력하거나 복사한 글을 본인이 다시 찾아보기 위한 앱입니다. 다른 사람의 기기에 있는 정보를 가져오는 기능이나, 다른 사람이 삭제한 메시지를 되살리는 기능은 없습니다.
3. 요청하는 권한
- 접근성 서비스: 다른 앱에 입력한 텍스트를 읽어 기기에 저장(핵심 기능). 클립보드 기록을 켜면 복사 감지와 클립보드 읽기에도 사용.
- 인터넷(INTERNET), 네트워크 상태(ACCESS_NETWORK_STATE): 광고 표시, 사용 통계·오류 리포트 전송, Google Play 구매 확인, 앱에서 이 방침 페이지를 열 때 사용합니다. 입력 기록과 클립보드 기록은 이 통신에 포함되지 않으며, 기록·복구 기능은 인터넷 없이도 동작합니다.
- 알림(POST_NOTIFICATIONS): 웰컴 혜택(첫 실행 후 7일 한정 할인)이 끝나기 24시간 전에 알림을 한 번 보내는 데 사용합니다. Android 13 이상에서는 웰컴 혜택 기간에 한 번 허용 여부를 묻고, 거부하면 다시 묻지 않습니다. 알림에는 기록 내용이 들어가지 않습니다.
- Google Play 결제(com.android.vending.BILLING): 프리미엄 구매와 구매 복원·확인에 사용합니다.
- 광고 ID(AD_ID) 및 광고 서비스 권한(ACCESS_ADSERVICES_*): Google AdMob SDK와 Firebase Analytics SDK가 광고 게재·측정과 사용 통계를 위해 선언하는 권한입니다.
- 설치 출처 확인(BIND_GET_INSTALL_REFERRER_SERVICE): Google SDK가 앱 설치 경로(예: Google Play)를 확인하기 위해 선언하는 권한입니다.
- 생체인증(USE_BIOMETRIC, USE_FINGERPRINT): PIN 잠금을 켜면 기기가 지원하는 경우 앱 잠금 해제에 생체인증을 사용합니다(설정의 "생체인증 사용"에서 끌 수 있습니다). 생체 정보는 Android 시스템이 처리하며 앱은 인증 성공 여부만 전달받습니다.
- WAKE_LOCK, FOREGROUND_SERVICE: WAKE_LOCK은 WorkManager와 Firebase Analytics SDK가, FOREGROUND_SERVICE는 WorkManager가 선언하는 권한입니다. 앱은 웰컴 혜택 알림을 예약하는 데 WorkManager를 사용합니다.
- 설치된 앱 조회(홈 화면 아이콘이 있는 앱): 제외할 앱 목록과 앱 이름·아이콘 표시에 사용합니다. 기기 안에서만 사용합니다.
4. 제3자 서비스
Type History는 다음 제3자 서비스를 사용합니다.
- Google AdMob: 홈 화면·앱별 기록 화면·기록 버전 화면의 네이티브 광고와, 앱을 열거나 다시 돌아올 때 표시되는 앱 오프닝 광고를 게재합니다. AdMob은 관련성 있는 광고 제공과 광고 측정을 위해 광고 ID 등 기기 식별자, IP 주소에서 추정한 대략적인 위치, 앱 상호작용 및 진단 정보를 수집·이용할 수 있으며, 이 정보는 Google에 제공됩니다. 프리미엄 사용자에게는 광고를 표시하지 않습니다. 자세한 내용은 Google 개인정보처리방침과 Google이 Google 서비스를 사용하는 앱의 정보를 사용하는 방법를 참고하세요.
- Firebase Analytics: 앱이 어떻게 사용되는지 파악하기 위해 사용 이벤트를 수집합니다. 앱이 직접 보내는 이벤트에는 개수·켜짐/꺼짐·설정값 같은 지표만 들어가며, 입력 기록·클립보드 기록의 내용과 대상 앱 패키지명은 넣지 않습니다. 접근성 서비스·PIN 잠금 사용 여부는 사용자 속성으로 함께 보냅니다. Firebase Analytics는 이와 별도로 앱 인스턴스 ID, 광고 ID, 기기 모델·OS 버전, 국가 등 대략적인 지역, 화면 조회, 인앱 구매 같은 정보를 자동으로 수집할 수 있습니다. Firebase 개인정보 보호 안내와 Google 개인정보처리방침을 참고하세요.
- Firebase Crashlytics: 앱 안정성 개선을 위해 오류 리포트와 진단 정보(오류 발생 위치, 기기 모델·OS 버전, 설치 식별자 등)를 수집합니다. 보고서에는 오류 직전에 앱이 남긴 위 Analytics 이벤트 이름·지표와, 접근성 서비스·PIN 잠금 사용 여부가 함께 담깁니다. 입력 기록·클립보드 기록의 내용은 넣지 않습니다. Firebase 개인정보 보호 안내를 참고하세요.
- Google Play 결제: 프리미엄 평생 이용권 구매와 구매 복원·확인을 처리합니다. 결제는 Google Play가 처리하며, 앱은 구매 여부와 구매 시각, 구매 상태를 마지막으로 확인한 시각 같은 구매 상태 정보를 기기에 저장합니다. Google 개인정보처리방침을 참고하세요.
- GitHub Pages: 이 개인정보처리방침 페이지는 GitHub Pages에서 제공됩니다. 앱에서 방침을 열면 이 페이지를 불러오며, 이때 GitHub 서버가 IP 주소 등 접속 정보를 처리할 수 있습니다. GitHub 개인정보 처리방침을 참고하세요.
- 입력 기록과 클립보드 기록은 AdMob·Firebase·Google Play·GitHub를 포함한 어떤 제3자에게도 전송하지 않습니다.
- Android 설정의 광고 메뉴(기기에 따라 Google > 광고 또는 개인정보 보호 > 광고)에서 광고 ID를 재설정하거나 삭제할 수 있습니다.
5. 정보의 이용
기기에 저장된 입력 기록과 클립보드 기록은 사용자 본인이 앱에서 다시 찾아보고, 검색하고, 고쳐서 복사·공유·삭제하고, 파일로 내보내는 데에만 사용합니다. 개발자는 이 기록에 접근할 수 없습니다. 개발자는 이 앱으로 얻은 정보를 판매하지 않습니다.
6. 데이터 보관 및 삭제
- 자동 삭제: 설정한 보관 기간이 지난 기록은 자동으로 삭제됩니다. 보관 기간은 입력 기록은 마지막으로 입력한 시각부터, 클립보드 기록은 복사한 시각부터 셉니다. 삭제는 접근성 서비스가 켜질 때와 켜져 있는 동안 6시간마다, 그리고 앱의 홈 화면을 열거나 보관 기간을 바꿀 때 실행됩니다. 그래서 접근성 서비스를 끈 채 앱을 열지 않으면 기간이 지난 기록이 기기에 남아 있을 수 있습니다. 기본값은 7일입니다. 무료 버전에서는 1일 / 3일 / 7일 중에서, 프리미엄에서는 30일 / 90일 / 180일 / 1년까지 선택할 수 있습니다.
- 클립보드 기록: 클립보드 기록도 같은 보관 기간을 따릅니다. 다만 무료 버전에서는 복사한 뒤 7일까지만 보관합니다. 복사한 이미지의 전체 용량이 300MB를 넘으면 영구 보관하지 않은 이미지부터 오래된 순으로 삭제합니다.
- 영구 보관(프리미엄): 영구 보관으로 표시한 기록은 자동 삭제에서 제외되며, 사용자가 직접 삭제할 때까지 남습니다.
- 직접 삭제: 기록을 하나씩 삭제하거나, 설정의 "모든 기록 삭제"로 입력 기록과 클립보드 기록을 한 번에 지울 수 있습니다. 영구 보관한 기록까지 지우려면 "영구 보관한 기록도 함께 삭제"를 선택합니다.
- 기록 중지: 설정의 "사용 중" 스위치를 끄면(접근성 서비스가 꺼짐) 새 입력을 기록하지 않습니다. 특정 앱을 "제외할 앱"으로 지정하거나, 클립보드 기록만 끌 수도 있습니다.
- 내보내기·가져오기(프리미엄): 입력 기록을 파일로 내보낼 수 있습니다. 파일에는 입력한 글 원문, 앱 이름·패키지명, 시각, 입력란 식별자가 암호화 없이 담기며, 사용자가 고른 위치에만 저장됩니다. Type History는 이 파일을 서버로 전송하지 않습니다. 내보낸 파일은 앱을 삭제해도 지워지지 않으니 직접 관리해 주세요.
- 앱 삭제: 앱을 제거하면 기기에 저장된 기록과 설정이 함께 삭제됩니다. 서버에 사본이 없으므로 별도의 삭제 요청 절차가 필요하지 않습니다. Google(AdMob·Firebase)이 수집한 정보는 각 제공사의 방침에 따라 보관됩니다.
- 앱 잠금: PIN 잠금과 생체인증으로 앱을 잠가, 기기를 잠시 빌려주더라도 기록이 열리지 않게 할 수 있습니다.
7. 아동의 개인정보
본 앱은 만 13세 미만 아동을 대상으로 하지 않으며, 아동의 개인정보를 고의로 수집하지 않습니다.
8. 방침 변경
본 개인정보처리방침은 필요 시 갱신될 수 있으며, 변경 시 본 페이지에 게시됩니다.
9. 문의
개인정보 관련 문의: philleeran@gmail.com
시행일: 2026-10-16 · English