개인정보처리방침
하루니키는 한국어로 쓴 하루를 일본어로 바꿔 단어와 문법을 공부하는 iOS와 Android 앱입니다.
로그인은 선택입니다(iOS는 Apple 계정 또는 Google 계정, Android는 Google 계정). 일기 쓰기와 변환, 학습, 복습은 로그인 없이 쓸 수 있고, 일기와 학습 기록을 계정에 보관해 기기를 바꾸거나 여러 기기에서 이어 쓰려면 로그인합니다. 하루니키 서버는 계정의 이름과 전화번호를 보관하지 않습니다. 로그인한 Apple 계정과 Google 계정의 이메일을 받으면 계정 화면에 보여 주려고 암호화해 보관합니다. 일기는 기기 안에 저장되고, 로그인한 계정의 사본은 아래처럼 암호화해 서버 저장소에 보관합니다.
변환 버튼을 누르거나 구독 기능(일본어 일기 첨삭, 되묻기 대화)을 쓸 때, 구독 없이 일기마다 한 번 되묻기 질문에 답할 때만 일기 원문과 대화의 답, 기억, 동의한 경우의 음성 녹음이 하루니키 서버를 거쳐 Anthropic 또는 OpenAI의 AI로 전달될 수 있습니다. 이를 위해 중계하는 내용은 저장하지 않습니다.
로그인한 계정의 일기, 사진, 학습 기록은 암호화해 하루니키 서버 저장소에 보관하며 기기를 바꾸거나 여러 기기에서 쓸 때 맞춥니다.
앱을 어떻게 쓰는지 보기 위해 Google Analytics for Firebase를 씁니다. 화면 이동과 변환, 학습 같은 이용 기록과 기기 측정 ID를 보내며, iOS 앱에서는 App Store 구독 구매와 갱신 기록도 자동으로 함께 보냅니다. 일기와 대화의 내용은 보내지 않습니다. 설정의 사용 통계 화면에서 끌 수 있습니다. iOS에서는 광고 식별자(IDFA)를 읽지 않습니다.
이 웹사이트(harunikki.app)는 광고를 보고 들어온 방문이 앱 설치로 이어졌는지 보려고 무작위 방문 ID와 유입 경로(광고 캠페인 이름, 들어온 사이트 이름), 본 장면, 누른 스토어 버튼, 기기 종류를 하루니키 서버에 남깁니다. IP 주소는 남기지 않고, 브라우저의 Global Privacy Control을 켜면 아무것도 남기지 않습니다(11항).
설정의 동기화 화면에서 이 기기와 서버의 기록을 한 번에 지울 수 있습니다.
이 방침은 하루니키를 운영하는 하루에이아이(이하 하루니키)가 이용자의 개인정보를 어떻게 다루는지 설명합니다. 개인정보 보호법과 정보통신망법을 따릅니다. 아래 내용은 앱의 실제 구현을 기준으로 작성했고, 구현이 바뀌면 이 문서를 먼저 고칩니다.
- 처리 목적
- 처리하는 항목
- 수집 방법
- 보유 기간
- 파기
- 제3자 제공
- 처리 위탁
- 국외 이전
- 일기와 AI 처리
- AI 학습 사용 여부
- 자동 수집 정보와 분석
- 광고
- 이용자의 권리
- 데이터 삭제
- 안전성 확보 조치
- 보호책임자와 문의
- 권리침해 구제
- 방침 변경
1. 개인정보 처리 목적
- 일기 변환과 단어 뜻풀이 같은 AI 기능 제공
- Pro 구독자를 위한 일본어 일기 첨삭, 되묻기 대화, 개인화 질문, 음성 답 받아쓰기 제공
- 구독 없이 일기마다 한 번 답하는 되묻기 대화 제공
- 무료 변환 횟수 관리와 위조된 앱의 차단
- 로그인한 이용자의 여러 기기에서 무료 변환 횟수를 함께 관리
- 구독 상태 확인과 구매 복원
- 로그인한 계정의 한 기기에서 구독하면 같은 계정의 다른 기기에도 구독 혜택 적용
- 로그인한 계정의 기기 간 동기화와 기기 변경 시 기록 이어 쓰기
- 문의와 오류 대응
- 탈퇴할 때 이 앱에 대한 Apple 로그인 권한 폐기
- 서버 백업 복구 시 이미 처리한 삭제 요청 재적용
- 앱 이용 통계 분석과 서비스 개선
- 하루니키 광고의 설치와 구독 성과 측정
2. 처리하는 개인정보 항목
로그인은 선택입니다(iOS는 Apple 계정 또는 Google 계정, Android는 Google 계정). 로그인하지 않은 설치는 기기 식별자로만 구분하며 기기 안의 기능과 변환을 쓸 수 있습니다. 기기 안의 기록은 로그인 전에도, 로그아웃 뒤에도 지워지지 않습니다. 로그인하면 아래 표의 계정 항목이 추가됩니다.
하루니키 서버는 계정의 이름과 전화번호를 보관하지 않습니다. 로그인한 Apple 계정과 Google 계정의 이메일을 받으면 계정 화면에 보여 주려고 암호화해 보관합니다. Apple 계정으로 로그인할 때는 Apple에 이메일 공유를 요청합니다. 이메일 가리기를 고르면 Apple이 만든 전달용 주소를 받습니다. 이름은 요청하지 않습니다.
기기에 저장하는 정보
아래 정보는 기기에 저장됩니다. 이 중 일기, 사진, 학습 기록은 로그인한 계정의 사본을 암호화해 서버 저장소에 보관합니다. 서버 동기화로 올린 사본은 아래 서버 저장소에 암호화해 보관하는 정보 절에 따릅니다. AI 변환을 요청한 내용은 9항에 따라 전송됩니다. 앱을 삭제하면 기기의 자료는 함께 사라집니다. Android 앱은 기기 자동 백업에서 제외되어 있어 이 자료가 Google 자동 백업으로 나가지 않습니다.
- 일기 원문, 일본어 변환 결과, 문장별 읽기와 발음, 단어와 문법, 학습과 복습 기록
- 일기 배경 사진 원본과 썸네일. 사진의 위치 정보와 촬영 메타데이터는 저장할 때 제거합니다
- 앱 설정, 즐겨찾기, 알림 예약
- 구독 기능의 첨삭 결과, 되묻기 대화, 기억(관심사나 자주 나오는 사람처럼 다음 질문을 고르는 데 쓰는 짧은 사실). 기억은 화면에 보이지 않고 설정의 개인화 질문에서 모두 지울 수 있습니다
- 일기를 읽어 주는 합성 음성 캐시. 음성 합성은 기기 안에서만 이루어집니다
- 오류 기록. 이용자가 설정에서 직접 내보낼 때만 밖으로 나갑니다
- 로그인하거나 연결한 Apple 계정과 Google 계정의 이메일. 계정 화면 표시에만 쓰며 서버에 암호화해 보관합니다
하루니키 서버에 저장하는 정보
| 항목 | 내용 | 목적 |
|---|---|---|
| 기기 식별자 | 앱이 처음 실행될 때 서버가 무작위로 만든 ID. Apple이나 Android의 기기 번호, 광고 ID가 아닙니다 | 무료 변환 횟수 관리, 요청 서명 검증 |
| 기기 무결성 증명 정보 | iOS는 Apple App Attest 키 ID, 공개키, 암호화한 증명 영수증. Android는 등록 확인값의 해시와 만료 시각이며, Google Play Integrity 판정은 등록할 때 확인만 하고 저장하지 않습니다 | 위조된 앱의 요청 차단 |
| 변환 기록 | 기기 식별자, 일기 ID, 변환 시각, 횟수. 일기 내용은 포함하지 않습니다. 로그인한 기기의 기록은 계정 ID 기준으로도 집계됩니다 | 무료 변환 횟수와 유료 보호 상한 계산 |
| 구독 기능 사용 기록 | 기능 종류(첨삭, 대화, 구독 없이 답한 대화, 기억 정리, 받아쓰기), 요청 ID, 일기 ID와 대화 ID(해당하는 경우), 문장 수나 횟수, 시각. 로그인한 기기는 계정 ID, 그 밖에는 기기 식별자로 묶습니다. 일기와 답의 내용, 녹음은 포함하지 않습니다. 일본어 일기 첨삭은 위 변환 기록에도 남고 변환 횟수를 함께 씁니다 | 구독 기능의 하루 이용 상한과 구독 없이 답하는 대화의 일기별 한 번과 하루 상한 계산 |
| 계정 정보(로그인한 경우) | 서버가 무작위로 만든 계정 ID, 로그인 수단(Apple 또는 Google), Apple 또는 Google이 발급한 이용자 식별자를 서버 전용 키로 해시한 값, 로그인 수단별 이메일(받은 경우, 암호화), Apple 로그인 권한 폐기용 갱신 토큰(Apple 계정으로 로그인하거나 연결한 경우, 암호화), 계정 생성 시각. 이름, Apple ID와 Google 계정 원문은 저장하지 않습니다 | 같은 계정으로 다시 로그인한 기기 확인, 여러 기기의 무료 변환 횟수 공유, 탈퇴할 때 이 앱에 대한 Apple 로그인 권한 폐기 |
| 계정 연결(로그인한 경우) | 기기 식별자와 계정 ID의 연결, 로그인 요청 확인값(nonce)의 해시, 변환 기록을 계정으로 옮긴 시각 | 로그인한 기기 확인, 로그아웃과 탈퇴 |
| 계정 사건 기록(로그인한 경우) | 계정 ID, 사건 종류(연결, 해제, 탈퇴), 시각 | 부정 사용 확인과 분쟁 대응 |
| 동기화 색인(로그인한 경우) | 계정 ID, 순번, 작성 기기 ID, 사진의 해시값, 크기, 시각. 일기 내용은 넣지 않습니다 | 기기 간 동기화 |
| 감싼 데이터 키(로그인한 경우) | 계정마다 만든 데이터 키를 하루니키 서버의 마스터 키로 감싼 값 | 서버 저장소에 보관하는 동기화 사본의 암호화 |
| 전체 삭제 요청 기록 | 요청 ID, 계정 ID, 완료 시각 | 같은 삭제 요청을 한 번만 처리 |
| 구독 상태 | 구독 연결 ID, 구독 상태, 확인 시각, 암호화한 구매 증거(거래 ID, 상품, 가격, 통화). Android는 계정 ID를 구독 연결 ID로 씁니다 | 유료 기능 제공, 잘못된 기기 연결 방지 |
| 문의 내용 | 이용자가 적은 내용, 분류, 앱 버전, 플랫폼, 기기 식별자 | 문의와 오류 대응 |
| 구매 측정용 식별자 | 구독 연결 ID마다 최신 한 건. 플랫폼, Google Analytics의 앱 인스턴스 ID, OS와 앱 버전, 사용 통계를 껐는지 여부, 갱신 시각 | 구독 구매를 그 기기의 사용 통계에 연결(11항) |
| Android 설치 경로 | Android 앱이 처음 실행될 때 Google Play에서 읽은 설치 경로 가운데 광고 캠페인 이름(utm_source, utm_medium, utm_campaign, utm_content, utm_term), 웹사이트 방문 ID와 스토어 버튼 클릭 ID, Google 광고 클릭 ID가 있었는지 여부, 클릭과 설치 시작 시각. 기기 식별자와 함께 둡니다 | 하루니키 광고와 웹사이트가 설치, 첫 변환, 구독으로 이어졌는지 측정(11항, 12항) |
| 웹사이트 방문 기록 | harunikki.app 방문자의 브라우저가 만든 무작위 방문 ID와 탭 세션 ID, 연 페이지, 본 장면, 누른 스토어 버튼과 위치, 스토어 버튼 클릭 ID, QR 스캔, 처음과 마지막 유입 경로(광고 캠페인 이름, 들어온 사이트의 호스트 이름), 광고 클릭 ID가 있었는지 여부, 기기 종류(iOS, Android, 그 밖), 인앱 브라우저 종류, 언어, 화면 너비, 받은 시각. IP 주소, 전체 주소, 광고 클릭 ID 값은 남기지 않습니다 | 하루니키 광고와 웹사이트의 방문, 스토어 이동, 설치 성과 측정(11항) |
| 접속 IP | 요청 제한을 위해 서버 메모리에서만 잠시 사용합니다. 기기 증명 요청에서는 해시로 1시간 보관합니다 | 과도한 요청 차단 |
AI 호출 운영 기록
제공자, 모델, 호출 시각, 성공과 실패 분류, 토큰 수와 추정 비용을 30일 보관합니다. 기기 식별자, 일기 ID, 원문과 응답은 이 기록에 넣지 않습니다.
삭제 요청을 재적용하기 위해 별도로 보관하는 정보
서버 백업 복구 시 이미 삭제한 정보가 돌아오지 않도록 기기 식별자 또는 계정 ID를 전용 키로 해시한 값과 삭제 요청 시각을 Cloudflare R2에 보관합니다. 이는 사용자와 연결되는 가명 정보이며, 일기 내용이나 삭제 이유는 포함하지 않습니다.
서버 저장소에 암호화해 보관하는 정보
로그인한 계정의 일기 원문과 변환된 일본어 일기, 문장, 단어와 문법 기록, 학습 기록, 사진 원본, 구독 기능의 첨삭 결과와 되묻기 대화, 기억을 하루니키 서버 저장소에 보관합니다. 기기를 바꾸거나 여러 기기에서 같은 계정으로 쓸 때 기록을 맞추기 위해서입니다. 구독과 무관하게 모든 이용자에게 적용되며 앱 안에서 켜고 끌 수 없습니다.
저장소는 Cloudflare, Inc.의 비공개 저장소(아시아 태평양 지역)입니다. 지역 안의 구체적인 국가는 Cloudflare가 정합니다. 색인과 감싼 키는 하루니키 서버 데이터베이스(Fly.io, 일본 도쿄)에 둡니다. 사본은 계정마다 만든 데이터 키로 AES-256-GCM 방식으로 암호화해 저장합니다. 데이터 키는 하루니키 서버의 마스터 키로 감싸 서버 데이터베이스에 보관합니다. 키를 하루니키가 보관하므로 이용자만 풀 수 있는 종단간 암호화는 아닙니다. 운영자가 사본을 읽는 도구와 화면은 두지 않습니다.
동기화 색인으로 서버 데이터베이스에는 계정 ID, 순번, 작성 기기 ID, 사진의 해시값, 크기, 시각만 둡니다. 일기 내용은 넣지 않습니다. 서버 데이터베이스의 복구용 백업에는 감싼 키와 색인이 들어가고 암호화한 사본 자체는 들어가지 않습니다. 보유 기간은 4항에 있고, 설정의 동기화 화면에서 이 기기와 서버의 기록 삭제를 실행하면 지울 수 있습니다(14항).
iOS의 구독 연결 ID는 구독 복원을 위해 이용자 iCloud의 키 값 저장소와 비공개 데이터베이스에 둡니다. 일기나 개인 내용을 담지 않습니다. 동기화에는 iCloud를 쓰지 않습니다.
사용 통계 도구가 처리하는 정보
Google(Google Analytics for Firebase)이 하루니키를 대신해 아래 정보를 처리하고 4항의 기간 동안 보관합니다. 자세한 내용은 11항과 12항에 있습니다.
- 기기 측정 ID(Google Analytics의 앱 인스턴스 ID), iOS에서 같은 개발사의 앱 사이에서만 쓰이는 기기 식별자(IDFV), Android의 광고 ID
- 기기 모델, OS와 앱 버전, 언어와 시간대, 접속 IP로 추정한 대략적인 지역
- 앱 이용 기록(화면 이동, 변환, 학습, 되묻기 대화 같은 이벤트)과 Android의 설치 경로
- 로그인한 경우의 계정 ID, 하루니키 서버가 보내는 구독 구매 이벤트
- iOS 앱의 사용 통계 도구가 자동으로 기록하는 App Store 구독 구매와 갱신(상품, 금액, 통화, 기록된 시각)
외부 사업자에 잠시 전달하는 정보
- 변환을 요청한 일기의 한국어 원문과 제목, 뜻풀이가 필요한 단어 목록과 뜻 참고 정보. Anthropic 또는 OpenAI에 전달할 수 있습니다. 9항을 보세요
- 구독 기능을 쓸 때 첨삭할 일본어 일기 문장과 제목, 되묻기 대화의 일기 문장과 질문, 내 답, 기억, 대화 끝의 일기 요약. Anthropic 또는 OpenAI에 전달할 수 있습니다. 9항의 구독 기능의 AI 처리를 보세요
- 기기 안에서 받아쓸 수 없는 iOS·Android 기기에서 이용자가 동의한 경우의 음성 답 녹음. OpenAI에 전달하며 하루니키 서버는 녹음과 받아쓴 글을 저장하지 않습니다
- 구독 연결 ID와 Apple 또는 Google Play의 결제 영수증. RevenueCat에 전달합니다
- Android 앱을 등록할 때 기기가 만든 Play Integrity 토큰. 서버가 Google에 보내 판정을 받으며 토큰과 판정은 저장하지 않습니다
- Apple 계정으로 로그인하거나 연결할 때 받은 인증 코드. 서버가 Apple에 보내 갱신 토큰으로 바꾸고, 탈퇴할 때 이 앱에 대한 Apple 로그인 권한을 폐기하는 데만 쓰려고 암호화해 보관합니다. 코드는 저장하지 않습니다. 오래전에 로그인해 갱신 토큰이 없는 계정은 iOS에서 탈퇴할 때 Apple 계정을 한 번 더 확인해 받은 인증 코드로 같은 폐기를 하며, 이때의 코드와 토큰은 저장하지 않습니다
3. 개인정보 수집 방법
- 이용자가 앱에서 일기를 쓰고 변환 버튼을 누를 때
- Pro 구독자가 일본어 일기 첨삭을 받거나 되묻기 대화에 답하거나 다른 질문을 받거나 대화를 마칠 때, 서버 받아쓰기에 동의하고 말로 답할 때
- 구독 없이 일기마다 한 번 되묻기 질문에 답할 때
- 이용자가 구독을 구매하거나 복원할 때
- 이용자가 Apple 계정(iOS)이나 Google 계정으로 로그인하거나 로그아웃할 때, 탈퇴할 때
- 일기와 학습 기록을 저장하거나 고칠 때 로그인한 계정의 사본이 서버 저장소로 올라갑니다
- 로그인해 이 기기를 계정에 처음 연결할 때 기기 안의 기록(로그인 전에 쓴 일기 포함)도 서버 저장소로 올라갑니다
- Android 앱이 처음 서버에 등록할 때(Play Integrity 확인)
- 서버에 저장된 개인정보의 삭제 요청을 처리할 때
- 이용자가 설정의 개선 및 문의 화면에서 내용을 보낼 때
- 앱이 서버에 요청을 보낼 때 자동으로 만들어지는 기기 식별자, 요청 시각, 접속 IP
- Android 앱이 설치 뒤 처음 서버와 통신할 때 보내는 Google Play 설치 경로(11항, 12항)
- harunikki.app을 열고 장면을 보거나 스토어 버튼을 누를 때 브라우저가 보내는 방문 기록(11항)
- 앱을 쓰는 동안 앱에 들어 있는 사용 통계 도구가 자동으로 만드는 이용 기록과 기기 정보(11항)
- 구독을 구매하거나 갱신, 해지, 환불할 때 하루니키 서버가 사용 통계 도구로 보내는 구매 이벤트(11항)
- iOS 앱에서 App Store 구독을 구매하거나 갱신할 때 사용 통계 도구가 기기의 App Store 거래 기록을 읽어 자동으로 남기는 구매 기록(11항)
4. 보유 및 이용 기간
| 항목 | 보유 기간 |
|---|---|
| 기기 안의 일기, 사진, 학습 기록, 설정, 구독 기능의 첨삭과 대화, 기억 | 이용자가 지우거나 앱을 삭제할 때까지 |
| 서버 저장소의 동기화 사본(일기, 사진, 학습 기록) | 탈퇴하거나 앱에서 전체 삭제를 실행할 때까지. 고치거나 지운 일기의 옛 사본은 변경 뒤 최대 30일, 어느 일기도 가리키지 않게 된 사진은 최대 60일 안에 정리합니다. 정리 작업의 대기 시간은 보통 몇 분이며 서버 상태에 따라 더 걸릴 수 있습니다. 저장소 삭제가 실패해 남은 사본은 다음 전체 삭제나 탈퇴의 정리에서 지웁니다 |
| 동기화 색인과 감싼 데이터 키 | 탈퇴할 때까지. 전체 삭제를 실행하면 그때까지의 색인을 지웁니다 |
| 전체 삭제 요청 기록 | 30일 |
| 기기 식별자, 무결성 증명 정보, 변환 기록, 구독 상태 | 이용자가 앱에서 데이터 삭제를 실행할 때까지 |
| 계정 정보와 계정 기준 변환 기록 | 이용자가 탈퇴할 때까지. 로그인 수단별 이메일은 그 수단의 연결을 해제하거나 탈퇴하면 지웁니다 |
| Apple 로그인 권한 폐기용 갱신 토큰(암호화) | 이용자가 탈퇴할 때까지. 탈퇴할 때 Apple에 폐기를 요청하고 지웁니다. Apple 쪽 장애로 바로 폐기하지 못하면 계정과 잇는 값 없이 폐기 대기열로 옮겨 폐기를 마칠 때까지, 계정 삭제 뒤 최대 7일 보관합니다 |
| 구독 기능 사용 기록 | 기기 식별자로 묶은 기록은 이용자가 앱에서 데이터 삭제를 실행할 때까지, 계정 ID로 묶은 기록은 탈퇴할 때까지 |
| 계정 연결 | 이용자가 그 기기에서 로그아웃하거나 데이터 삭제를 실행할 때까지 |
| 계정 사건 기록 | 발생 후 1년 |
| 탈퇴 요청 기록(요청 ID, 기기 식별자, 계정 ID, 완료 시각) | 완료 후 30일 |
| 로그인 요청 확인값(nonce)의 해시 | 만료 후 하루 |
| 삭제 재적용 기록(해시한 기기 식별자 또는 계정 ID와 요청 시각) | 요청 기록 후 6일이 지나면 저장소 수명 주기 정책에 따라 정리합니다. 실제 삭제 처리에는 추가 시간이 걸릴 수 있습니다 |
| 암호화한 구매 증거와 구독 연결 기록 | 구독이 활성인 동안과 종료 후 180일 |
| 문의 내용 | 접수 후 180일. 처리가 끝난 문의는 처리 후 30일 중 먼저 오는 시점 |
| 구매 측정용 식별자 | 그 구독 연결 ID를 쓰는 기기가 모두 데이터 삭제를 실행하거나, 계정 ID가 구독 연결 ID인 경우 탈퇴할 때까지. 사용 통계를 끄면 남아 있어도 구매 이벤트를 보내지 않습니다 |
| Android 설치 경로 | 그 설치가 데이터 삭제를 실행할 때까지 |
| 웹사이트 방문 기록 | 받은 날부터 400일 |
| Google Analytics의 이용 기록 | 이벤트 단위 기록은 수집 후 2개월. 개인을 알아볼 수 없게 합친 통계 보고서는 기간 없이 남을 수 있습니다 |
| AI 호출 운영 기록 | 30일 |
| 요청 서명 기록(nonce) | 10분 |
| 기기 증명 요청의 IP 해시 | 1시간 |
| Android 등록 확인값의 해시 | 생성 후 하루 |
| 서버 복구용 백업 | 자동 스냅샷은 5일. 운영자가 만드는 사본은 복구 목적으로만 사용하고 배포와 복구 확인 후 폐기하며, 생성일부터 최대 5일을 넘겨 보관하지 않습니다. 백업에는 감싼 키와 색인이 들어가고 암호화한 동기화 사본 자체는 들어가지 않습니다 |
Anthropic, OpenAI와 RevenueCat이 자체적으로 보관하는 기간은 8항과 9항에, Google Analytics의 보관은 8항과 11항에 적었습니다.
5. 개인정보의 파기
- 위 기간이 지난 서버 정보는 복구할 수 없는 방식으로 삭제합니다
- 이용자가 앱에서 데이터 삭제를 실행하면 서버의 해당 기기 정보와 계정의 동기화 사본을 한 번에 지웁니다. 14항을 보세요
- 이용자가 탈퇴하면 계정 정보, 계정 연결, 계정 기준 변환 기록과 구독 기능 사용 기록, 계정의 동기화 사본과 감싼 데이터 키를 한 번에 지웁니다. Apple 로그인 권한 폐기용 갱신 토큰은 Apple에 폐기를 요청하고 지우며, 바로 폐기하지 못하면 폐기를 마치거나 7일이 지나면 지웁니다. 14항을 보세요
- 복구용 백업에 남은 사본은 백업 보유 기간이 지나면 폐기합니다. 하루니키는 삭제 요청을 받은 정보를 백업에서 되살리지 않습니다
6. 개인정보의 제3자 제공
하루니키는 개인정보를 제3자에게 판매하거나 제공하지 않습니다. 법령에 따른 요청이 있을 때만 예외입니다.
Google은 하루니키를 대신해 사용 통계를 처리하는 수탁자입니다(7항). 하루니키는 Google Analytics에서 Google 제품과 서비스, 광고에 쓰도록 하는 데이터 공유 설정을 모두 끄고 씁니다.
7. 개인정보 처리업무의 위탁
| 받는 자 | 위탁 업무 | 전달하는 정보 |
|---|---|---|
| Anthropic, PBC (미국) | 일기 변환과 단어 뜻풀이, 구독 기능의 일본어 일기 첨삭, 되묻기 대화, 기억 정리 AI 처리 | 변환을 요청한 일기 원문과 제목, 단어 목록과 뜻 참고 정보, 구독 기능에서 보내는 일본어 일기 문장, 대화의 답, 기억, 일기 요약 |
| OpenAI OpCo, LLC (미국) | 일기 변환과 단어 뜻풀이, 구독 기능의 일본어 일기 첨삭, 되묻기 대화, 기억 정리 AI 처리, 음성 답 받아쓰기 (받아쓰기는 OpenAI만 처리) | 변환을 요청한 일기 원문과 제목, 단어 목록과 뜻 참고 정보, 구독 기능에서 보내는 일본어 일기 문장, 대화의 답, 기억, 일기 요약, 서버 받아쓰기에 동의한 경우의 음성 답 녹음 |
| RevenueCat, Inc. (미국) | 구독 상태 관리 | 구독 연결 ID, Apple 또는 Google Play 결제 영수증, 기기 종류와 OS 버전 |
| Google LLC (미국) | Google Analytics for Firebase를 통한 앱 이용 통계 분석 | 앱 인스턴스 ID, iOS의 IDFV, Android의 광고 ID, 앱 이용 이벤트와 화면 이름, 기기 정보, 접속 IP, 로그인한 경우의 계정 ID, 하루니키 서버가 보내는 구독 구매 이벤트, iOS 앱이 자동으로 기록하는 App Store 구매와 갱신. 11항을 보세요 |
| Fly.io, Inc. (서버는 일본 도쿄) | 하루니키 서버 호스팅 | 2항의 서버 저장 정보 전체 |
| Cloudflare, Inc. (미국) | 이 웹사이트 호스팅, 이메일 수신, 삭제 재적용 기록 보관, 동기화 사본 저장소(암호화한 일기, 사진, 학습 기록) | 웹사이트 접속 정보, 이메일 문의 내용, 해시한 기기 식별자 또는 계정 ID와 삭제 요청 시각, 암호화한 동기화 사본 |
Apple은 결제, 기기 무결성 증명(App Attest), Apple 계정 로그인, 구독 연결 ID를 두는 iCloud 키 값 저장소와 비공개 데이터베이스를 자체 서비스로 처리합니다. 결제 카드 정보와 Apple ID는 Apple만 다루며 하루니키는 받지 않습니다. 로그인하면 Apple이 이 앱용으로 발급한 이용자 식별자를 받아 해시해 보관하고, 탈퇴할 때 이 앱에 대한 Apple 로그인 권한을 폐기하려고 Apple이 발급한 갱신 토큰을 암호화해 보관합니다.
Google은 Google 계정 로그인과 Android의 결제(Google Play), 기기 무결성 판정(Play Integrity)을 자체 서비스로 처리합니다. 결제 카드 정보와 Google 계정 비밀번호는 Google만 다루며 하루니키는 받지 않습니다. 로그인하면 Google이 발급한 이용자 식별자만 받아 해시해 보관합니다.
8. 개인정보의 국외 이전
서비스 제공을 위해 아래와 같이 개인정보가 국외로 이전됩니다. AI 처리는 Anthropic과 OpenAI 두 사업자 중 운영 설정에 따른 순서로 전달되며, 장애 등 상황에 따라 한 요청이 다른 사업자에게 넘어갈 수 있습니다. 음성 답의 서버 받아쓰기는 OpenAI만 처리합니다.
| 받는 자 | 국가 | 이전 항목 | 시기와 방법 | 목적과 보유 기간 |
|---|---|---|---|---|
| Anthropic, PBC privacy@anthropic.com |
미국 | 일기 원문과 제목, 단어 목록과 뜻 참고 정보, 구독 기능의 일본어 일기 문장, 대화의 답, 기억, 일기 요약 | 변환이나 단어 뜻풀이, 구독 기능의 첨삭, 대화(답하기와 다른 질문), 기억 정리를 요청해 운영 설정에 따라 이 사업자에게 전달될 때 암호화 통신으로 전송 | AI 변환과 단어 뜻풀이, 구독 기능. Anthropic은 입력과 출력을 수신 후 30일 안에 삭제합니다 |
| OpenAI OpCo, LLC privacy@openai.com |
미국 | 일기 원문과 제목, 단어 목록과 뜻 참고 정보, 구독 기능의 일본어 일기 문장, 대화의 답, 기억, 일기 요약, 서버 받아쓰기에 동의한 경우의 음성 답 녹음 | 변환이나 단어 뜻풀이, 구독 기능의 첨삭, 대화(답하기와 다른 질문), 기억 정리를 요청해 운영 설정에 따라 이 사업자에게 전달될 때, 서버 받아쓰기로 말한 답을 보낼 때 암호화 통신으로 전송 | AI 변환과 단어 뜻풀이, 구독 기능, 음성 답 받아쓰기. 보안과 악용 방지를 위해 입력과 출력이 최대 30일 보관될 수 있으며 법적 의무 등에 따른 예외가 있습니다. 받아쓰기 입력은 OpenAI가 처리 뒤 보관하지 않는다고 밝히고 있습니다 |
| RevenueCat, Inc. compliance@revenuecat.com |
미국 | 구독 연결 ID, 결제 영수증, 기기 종류, OS 버전 | 구매, 복원, 갱신 시점에 암호화 통신으로 전송 | 구독 관리. RevenueCat의 개인정보처리방침에 따라 보관 |
| Cloudflare, Inc. privacyquestions@cloudflare.com |
삭제 재적용 기록은 미국(미국 관할지로 제한한 R2 저장소), 동기화 사본은 아시아 태평양 지역(지역 안의 국가는 Cloudflare가 정함) | 해시한 기기 식별자 또는 계정 ID와 삭제 요청 시각, 암호화한 동기화 사본(일기, 사진, 학습 기록) | 삭제 요청 처리 시, 로그인한 상태에서 일기와 학습 기록을 저장하거나 고칠 때, 이 기기를 계정에 처음 연결할 때(로그인 전에 쓴 기록 포함) 암호화 통신으로 전송 | 서버 백업 복구 시 삭제 재적용(기록 후 6일이 지나면 저장소 수명 주기 정책에 따라 정리), 기기 간 동기화(4항의 기간) |
| Fly.io, Inc. support@fly.io |
일본 | 2항의 서버 저장 정보 전체 | 앱이 서버에 요청할 때 암호화 통신으로 전송. 동기화로 올린 기록은 서버를 거쳐 암호화된 뒤 저장소에 저장됩니다 | 서버 운영. 4항의 기간 동안 보관 |
| Apple Inc. | Apple이 정하는 국가 | 구독 연결 ID, Apple 로그인 때 받은 인증 코드, Apple 로그인 권한 폐기용 갱신 토큰 | 구독 연결 ID를 저장할 때, Apple 계정으로 로그인하거나 연결할 때, 탈퇴할 때 | 구독 복원. 구독 연결 ID는 이용자의 iCloud 키 값 저장소와 비공개 데이터베이스에 보관. 로그인 때 인증 코드를 보내 갱신 토큰으로 바꾸고, 탈퇴할 때 그 토큰을 보내 이 앱에 대한 Apple 로그인 권한을 폐기함. 인증 코드는 보관하지 않음 |
| Google LLC | Google이 정하는 국가 | Play Integrity 토큰 | Android 앱을 등록할 때 암호화 통신으로 전송 | 기기 무결성 판정(하루니키는 토큰과 판정을 보관하지 않음) |
| Google LLC Google Analytics for Firebase |
미국 등 Google이 데이터 센터를 운영하는 국가 | 앱 인스턴스 ID, iOS의 IDFV, Android의 광고 ID, 앱 이용 이벤트와 화면 이름, 기기 정보, 접속 IP(대략적인 지역을 정한 뒤 남기지 않음), 로그인한 경우의 계정 ID, 구독 구매 이벤트, iOS의 App Store 구매와 갱신 기록 | 앱을 쓰는 동안 앱이 암호화 통신으로 전송. 구독 구매 이벤트는 하루니키 서버가 결제 확인 뒤 전송하고, iOS의 App Store 구매와 갱신 기록은 앱이 거래를 읽은 뒤 전송 | 앱 이용 통계 분석. 이벤트 단위 기록은 2개월 보관 |
AI 제공자에게 이전을 원하지 않으면 AI 변환과 단어 뜻풀이, 구독 기능을 이용하지 않을 수 있습니다. 이 경우 AI 기능은 제공되지 않지만 기기 안의 일기 작성과 읽기는 계속 사용할 수 있습니다. 음성 답의 서버 받아쓰기는 동의 안내에서 키보드로 쓰기를 고르면 녹음을 보내지 않습니다. 동기화는 로그인한 계정에만 적용됩니다. Google Analytics로의 이전을 원하지 않으면 설정의 사용 통계 화면에서 끌 수 있으며, 끄더라도 앱의 모든 기능을 그대로 쓸 수 있습니다.
9. 작성한 일기와 AI 처리
- AI가 받는 정보
- 변환을 요청한 일기의 한국어 원문과 제목. 그다음 단계에서 뜻풀이가 필요한 단어의 표제어, 읽기, 품사, 수준과 뜻 참고 정보. 기기 식별자는 AI 제공자에게 보내지 않습니다.
- AI가 만드는 정보
- 일본어 문장, 문장별 읽기와 발음, 문법 표시, 단어 뜻풀이와 예문.
- 처리하는 사업자
- Anthropic, PBC와 OpenAI OpCo, LLC(미국). 하루니키 서버가 요청을 중계하며, 두 사업자 중 운영 설정에 따른 순서로 전달되고 장애 등 상황에 따라 한 요청이 다른 사업자에게 넘어갈 수 있습니다.
- 동의와 전송 시점
- 앱을 설치해 쓰면 이용약관과 이 방침에 동의한 것으로 봅니다. 로그인할 때도 같은 안내를 다시 보입니다. 변환 버튼이나 단어 뜻풀이를 요청할 때마다 위 정보가 위 사업자에게 전송됩니다. 변환이나 구독 기능을 요청하지 않은 일기는 AI 제공자에게 보내지 않습니다.
- 하루니키 서버의 저장 여부
- 변환을 위해 중계하는 원문은 저장하지 않습니다. 서버는 원문을 AI 제공자에게 전달하고 결과를 기기에 돌려줍니다. 동기화로 올린 암호화한 사본은 2항과 4항에 따라 보관합니다. 남는 것은 기기 식별자, 일기 ID, 시각, 횟수와 위에서 설명한 내용 없는 AI 호출 운영 기록입니다. 서버 로그에도 일기 내용을 남기지 않습니다.
- Anthropic의 보관
- Anthropic은 API 입력과 출력을 수신 후 30일 안에 삭제한다고 밝히고 있습니다. Anthropic의 이용 정책을 위반한 것으로 자동 분류된 내용은 최대 2년까지 보관될 수 있습니다.
- OpenAI의 보관
- 응답 저장 기능은 끕니다. 다만 보안과 악용 방지 기록에는 입력과 출력이 최대 30일 보관될 수 있고, 법적 의무 등에 따라 더 오래 보관될 수 있습니다. 응답 저장을 끄는 것이 무보관을 뜻하지는 않습니다.
- 해외 처리
- 미국에서 처리됩니다. 8항을 보세요.
일기에는 주민등록번호, 계좌번호, 카드번호, 비밀번호처럼 서비스에 필요 없는 민감한 정보를 적지 말아 주세요. 변환을 누르면 그 내용이 그대로 AI에 전달됩니다.
구독 기능의 AI 처리
Pro 구독에는 일본어로 쓴 일기의 첨삭, 일기에 대한 되묻기 대화, 대화에서 기억한 것으로 다음 질문을 고르는 개인화 질문, 말로 답하는 음성 입력(iOS와 Android)이 있습니다. 위의 변환과 같이 하루니키 서버가 요청을 중계하고 Anthropic 또는 OpenAI(미국)가 처리합니다. 처리하는 사업자, 보관, 해외 처리는 위 9항과 8항을 따릅니다.
구독이 없어도 일기마다 되묻기 질문에 한 번 답할 수 있습니다. 이 대화도 아래와 같이 처리하되 기억을 보내지 않고 기억을 정리하지도 않습니다. 말로 답하면 기기 안에서 받아쓴 글만 보내며, 아래 서버 받아쓰기는 Pro 구독에서만 씁니다.
- 보내는 것
- 첨삭은 일본어로 쓴 일기 문장(한 번에 60문장까지)과 제목입니다. 제목이 없으면 요약 제목도 함께 요청합니다. 되묻기 대화는 그날 일기의 일본어와 한국어 문장, 하루니키의 질문, 그 대화의 앞선 말과 내 답(답 하나에 400자까지, 한국어로 써도 됩니다), 개인화 질문을 켠 경우의 기억입니다. 개인화 질문을 켠 채 대화를 마치면 그 대화와 일기 요약(600자까지), 지금까지의 기억을 보내 기억을 정리합니다. 기기 식별자는 AI 제공자에게 보내지 않습니다.
- 받는 것
- 첨삭은 고친 문장, 고친 곳마다의 이유와 종류, 문장별 읽기와 뜻, 문법 표시, 요약 제목, 되묻기 질문, 뜻이 모호해 고치지 않은 곳에 대한 질문입니다. 대화는 하루니키의 답(일본어와 한국어), 내 답을 일본어로 고쳐 쓴 문장, 대화를 마치는 말입니다. 기억 정리는 관심사, 자주 나오는 사람과 장소, 좋아하는 말투, 다음에 물어볼 만한 일처럼 짧은 사실의 추가, 수정, 삭제입니다. 건강과 질병, 정치와 종교, 성, 실명, 연락처는 기억에 담지 않도록 거릅니다.
- 보내지 않는 것
- 말로 답하면 음성은 기기 안에서 글로 바뀌고, 녹음은 기기 밖으로 나가지 않습니다. 아래 서버 받아쓰기에 동의한 경우만 예외입니다. Android는 기기 안에서만 받아쓰는 인식 기능(Android 12 이상)만 쓰고, 녹음을 서버로 보낼 수 있는 기본 음성 인식은 쓰지 않습니다. 마이크는 말로 답하는 동안에만 켭니다.
- 서버 받아쓰기와 동의
- 기기 안에서 일본어를 받아쓸 수 없는 일부 iOS 기기와 Android 기기에서는 마이크를 처음 누를 때 이 기기는 음성을 서버에서 글로 바꾼다는 안내와 함께 동의를 묻습니다. 동의하면 말한 답의 녹음(60초까지)을 하루니키 서버를 거쳐 OpenAI에 보내 글로 바꿉니다. 하루니키 서버는 녹음과 받아쓴 글을 저장하지 않으며, OpenAI는 받아쓰기 입력을 처리 뒤 보관하지 않는다고 밝히고 있습니다. 녹음 파일은 기기에 남기지 않습니다. 동의 여부는 그 기기에만 저장하며, 동의하지 않으면 키보드로 답할 수 있습니다. 동의한 뒤에도 키보드로 답하면 녹음을 보내지 않습니다.
- 보관과 삭제
- 하루니키 서버는 구독 기능으로 보내고 받은 내용을 저장하지 않습니다. 남는 것은 2항의 구독 기능 사용 기록과 내용 없는 AI 호출 운영 기록입니다. 첨삭 결과, 대화, 기억은 기기에 저장되고, 로그인한 계정은 다른 일기처럼 암호화한 사본을 서버 저장소에 보관합니다(2항, 4항). 기억은 화면에 보이지 않으며 설정의 개인화 질문에서 전체 지우기로 모두 지울 수 있습니다. 같은 화면에서 개인화 질문을 끄면 기억을 질문에 쓰지 않고 새로 정리하지도 않습니다.
- 위기 대응
-
되묻기 대화에서 일기 문장이나 내 답에 자해와 관련된 표현이 보이면 하루니키 서버는 AI에 보내지 않고 정해진 안내로 답합니다. 정해진 안내는 다음 두 문장입니다.
- 힘든 하루였나 봐요. 지금은 질문을 쉬어 갈게요.
- 마음이 많이 힘들 때는 109(자살예방상담전화)에서 이야기할 수 있어요.
AI가 같은 판단을 내린 경우에도 같은 안내로 답합니다. 그 대화는 질문을 멈추고, 그 답은 일기에 덧붙이지 않으며 기억 정리에도 쓰지 않습니다. 기억 정리 요청에 같은 표현이 보이면 AI에 보내지 않고 기억을 바꾸지 않습니다. 일본어 일기 첨삭에는 이 확인이 없습니다. 이 판단은 서버에 남지 않습니다. 그 답과 안내는 다른 대화와 같이 기기에 저장되고, 로그인한 계정은 암호화한 사본을 서버 저장소에 보관합니다(2항, 4항).
- 이용 상한
- 첨삭은 하루 20문장, 되묻기 대화는 하루 5번이고 대화마다 내 답 5번과 다른 질문 1번까지입니다. 기억 정리는 하루 5번, 서버 받아쓰기는 하루 60번까지입니다. 하루는 한국 시간 0시에 바뀝니다. 상한은 서비스 운영 상황에 따라 바뀔 수 있습니다.
10. AI 모델 학습 사용 여부
하루니키는 이용자의 일기와 대화의 답, 음성으로 AI를 학습시키지 않습니다. Anthropic 상용 서비스 이용약관은 Anthropic이 고객 콘텐츠로 모델을 학습하지 않는다고 정하고 있으며, 하루니키는 이 약관에 따라 API를 사용합니다. 하루니키가 별도의 학습 허용에 동의한 사실은 없습니다.
OpenAI API 입력과 출력은 기본적으로 모델 학습에 사용되지 않습니다. 하루니키는 학습을 위한 데이터 공유를 허용하지 않는 설정으로 사용합니다.
11. 자동 수집 정보와 분석 도구
하루니키는 앱 이용 통계에 Google LLC의 Google Analytics for Firebase를 씁니다. 그 SDK가 iOS와 Android 앱에 들어 있습니다. 광고 성과를 재는 별도 측정 도구는 쓰지 않습니다. 그 밖에 앱에 포함된 외부 라이브러리는 RevenueCat 결제 SDK와 기기 안에서만 도는 음성 합성 엔진이고, Android 앱에는 Google 로그인, Play Integrity, Google Play 결제, Google Play 설치 리퍼러 라이브러리가 더 들어갑니다. 오류 수집 SDK와 광고를 보여 주는 SDK는 쓰지 않습니다. Android의 듣기는 기기에 설치된 음성으로 기기 안에서 합성합니다.
- 도구가 자동으로 모으는 정보
- 기기 측정 ID(Google Analytics의 앱 인스턴스 ID), iOS에서 같은 개발사의 앱 사이에서만 쓰이는 기기 식별자(IDFV), 첫 실행과 앱 열기, 사용 시간, 앱 업데이트, 화면 이름, 기기 모델, OS와 앱 버전, 언어와 시간대, iOS의 App Store 구매와 갱신(아래에 따로 적음), 접속 IP로 추정한 대략적인 지역입니다. Google Analytics는 지역을 정한 뒤 IP 주소를 남기지 않습니다. Android에서는 광고 ID와 설치 경로도 읽습니다(12항). iOS에서는 광고 식별자(IDFA)를 읽지 않으며 앱 추적 투명성 권한도 요청하지 않습니다. 위치 서비스는 쓰지 않습니다.
- iOS 앱이 자동으로 기록하는 App Store 구매
- iOS 앱에 들어 있는 Google Analytics for Firebase는 기기의 App Store 거래 기록을 읽어 구독의 구매와 갱신을 자동으로 Google Analytics에 보냅니다. 상품, 금액, 통화, 무료 체험인지, 기록된 시각이 담기고 기기 측정 ID와 로그인한 경우의 계정 ID가 함께 붙습니다. 도구가 스스로 남기는 기록이라 앱에서 이것만 따로 끌 수 없으며, 아래 거부 방법처럼 사용 통계를 끄면 이 기록도 멈춥니다. Android 앱은 Google Play 구매를 이렇게 자동으로 기록하지 않습니다.
- 하루니키가 보내는 이용 기록
- 가나 질문의 답과 첫 실행 질문을 마친 때, 일기 변환의 성공과 실패(한 줄 일기인지, 다시 만들었는지, 실패 코드), 이 설치의 첫 변환, 로그인(Apple 또는 Google), 구독 화면을 연 때와 연 사유, 학습 탭 진입, 알림 권유와 허용, 되묻기 대화의 시작과 답과 끝(구독 여부, 답한 방식과 몇 번째 답인지, 답 수, 끝난 방식, 구독 안내를 봤는지), 일기 이미지 공유, 학습과 복습 세션을 마친 때(카드나 문항 수, 알아요로 넘기거나 맞힌 수), 구독 기능을 쓴 때(일본어로 쓰기, 첨삭)입니다.
- 하루니키 서버가 보내는 구매 이벤트
- 구독의 무료 체험 시작, 구매와 갱신(금액, 통화, 거래 ID, 상품), 해지(사유), 환불을 결제가 확인된 뒤 하루니키 서버가 2항의 구매 측정용 식별자와 함께 Google Analytics에 보냅니다. 테스트 구매, 무료 체험 시작이 아닌 0원 결제, 사용 통계를 끈 경우의 구매는 보내지 않습니다. 이 설정은 구독 연결 ID마다 마지막으로 서버에 알려 온 기기의 값을 따르므로, 같은 계정의 기기끼리 설정이 다르면 마지막 기기의 설정이 적용됩니다.
- 계정 ID
- 로그인하면 하루니키 계정 ID를 Google Analytics에 이용자 ID로 함께 보내 여러 기기의 기록을 한 사람으로 셉니다. 로그아웃, 탈퇴, 데이터 삭제 때 이용자 ID를 끊고 이 기기의 측정 기록을 초기화합니다. 이름과 이메일은 보내지 않습니다.
- 보내지 않는 것
- 일기 원문과 변환 결과, 사진, 학습 내용, 첨삭과 대화의 글, 기억, 음성, 이름과 이메일은 어떤 이용 기록에도 넣지 않습니다.
- Android 앱이 보내는 설치 경로
- Android 앱은 처음 실행될 때 Google Play 설치 리퍼러로 어떤 링크를 거쳐 설치했는지 읽고, 설치 뒤 처음 서버와 통신할 때 한 번 하루니키 서버에 보냅니다. 광고 캠페인 이름과 이 웹사이트의 방문 ID와 스토어 버튼 클릭 ID만 남기고 나머지는 버립니다. 웹사이트의 스토어 버튼을 눌러 설치했다면 그 클릭과 이 설치가 이어져, 하루니키는 광고별로 설치와 첫 변환, 구독이 몇 건인지 셉니다. 아래 거부 방법처럼 사용 통계를 끄면 보내지 않습니다. iOS 앱은 이런 정보를 보내지 않으며, App Store 캠페인 링크의 결과는 Apple이 캠페인별로 합친 숫자로만 봅니다.
- 거부 방법
- 설정의 사용 통계 화면에서 사용 통계와 광고 측정 보내기를 끄면 이 기기에서 Google Analytics가 App Store 구매 자동 기록을 포함한 수집과 전송을 멈추고, 하루니키 서버도 구매 이벤트를 보내지 않습니다(위 구매 이벤트의 설명처럼 구독 연결 ID마다 마지막 기기의 설정을 따릅니다). 기본은 켜져 있고 기기마다 따로 정합니다. 꺼도 앱의 모든 기능을 그대로 쓸 수 있습니다.
- 보관
- Google Analytics의 이벤트 단위 기록은 2개월 보관하도록 설정했습니다. 개인을 알아볼 수 없게 합친 통계 보고서는 그 뒤에도 남을 수 있습니다.
이 웹사이트의 방문 기록
harunikki.app은 광고나 다른 사이트를 보고 들어온 방문이 앱 설치로 이어졌는지 보려고 하루니키가 직접 만든 스크립트로 방문 기록을 남깁니다. 외부 분석 도구나 광고 픽셀은 쓰지 않습니다.
- 남기는 것
- 브라우저가 처음 방문할 때 만든 무작위 방문 ID, 탭 세션 ID, 연 페이지, 화면에 들어온 장면, 누른 스토어 버튼과 위치, 버튼을 누를 때마다 새로 만드는 클릭 ID, PC 화면의 QR을 휴대폰으로 비췄는지, 처음과 마지막 유입 경로(주소의 광고 캠페인 이름 utm_source, utm_medium, utm_campaign, utm_content, utm_term과 들어온 사이트의 호스트 이름), 광고 클릭 ID가 있었는지 여부, 기기 종류(iOS, Android, 그 밖), 인스타그램이나 카카오톡 같은 인앱 브라우저 종류, 언어, 화면 너비입니다. 방문 ID와 유입 경로는 브라우저의 저장소(localStorage)에 두고, 탭 세션 ID는 탭을 닫으면 사라지는 저장소(sessionStorage)에 둡니다. 쿠키는 쓰지 않습니다.
- 남기지 않는 것
- IP 주소, 방문한 전체 주소, 광고 클릭 ID의 값, 이름과 이메일 같은 연락처입니다. 방문 ID는 앱 계정이나 이름과 잇지 않습니다. Android에서 스토어 버튼을 눌러 설치한 경우에만 그 클릭 ID가 위 Android 설치 경로와 이어집니다.
- 스토어로 넘기는 값
- 스토어 버튼은 Google Play 주소에 광고 캠페인 이름과 방문 ID, 클릭 ID를, App Store 주소에 Apple 캠페인 이름을 붙여 엽니다. Google과 Apple은 각자의 방침에 따라 이 값으로 스토어 방문과 설치를 집계합니다.
- 거부 방법
- 브라우저의 Global Privacy Control을 켜면 방문 ID를 저장하지 않고 방문 기록을 보내지 않으며, 스토어 버튼의 클릭 ID도 만들지 않습니다. 브라우저의 사이트 데이터를 지우면 방문 ID도 지워집니다. 스토어 링크에 붙는 광고 캠페인 이름은 개인을 알아보는 값이 아니라 그대로 넘깁니다.
- 보관
- 하루니키 서버에 받은 날부터 400일 보관하고 그 뒤에 지웁니다.
앱은 쿠키를 쓰지 않습니다.
12. 광고 관련 정보
앱에 광고가 없습니다. 하루니키는 광고 성과를 재는 별도 측정 도구를 쓰지 않고, 이용자를 골라 광고를 보내지 않으며, 광고 매체에 이용자나 기기를 알아볼 수 있는 정보를 제공하지 않습니다.
- iOS
- 광고 식별자(IDFA)를 읽지 않고 앱 추적 투명성 권한도 요청하지 않습니다. 하루니키를 광고로 알릴 때 그 광고가 설치로 이어졌는지는 Apple이 설계한 SKAdNetwork로만 잽니다. Apple이 광고 매체에 캠페인별로 합친 결과만 알리고, 광고 매체는 이용자나 기기를 알아볼 수 있는 정보를 받지 않습니다.
- Android
- Google Analytics가 Google Play 서비스의 광고 ID와 Google Play의 설치 경로 정보를 읽어 어떤 경로로 설치했는지 통계로 보여 줍니다(11항). Android 앱은 같은 설치 경로 가운데 광고 캠페인 이름과 웹사이트 클릭 ID를 하루니키 서버에도 한 번 보내 광고별 설치와 구독 수를 셉니다(11항). 하루니키는 이 정보를 광고 매체에 보내지 않습니다.
- 거부 방법
- 설정의 사용 통계 화면에서 사용 통계와 광고 측정 보내기를 끄면 광고 ID와 설치 경로도 보내지 않습니다. 이 웹사이트의 방문 기록은 브라우저의 Global Privacy Control로 거부할 수 있습니다(11항). Android에서는 기기 설정의 광고 메뉴에서 광고 ID를 삭제할 수도 있습니다.
13. 이용자의 권리와 행사 방법
- 기기 안의 정보는 앱에서 직접 보고, 고치고, 내보내고, 지울 수 있습니다. 설정의 데이터 항목을 보세요
- 서버에 저장된 기기 정보와 계정의 동기화 사본은 앱의 데이터 삭제 기능으로 직접 지울 수 있습니다
- 로그인한 계정은 설정의 계정 화면에서 직접 로그아웃하거나 삭제할 수 있습니다
- 사용 통계와 광고 측정은 설정의 사용 통계 화면에서 언제든 끄고 켤 수 있습니다
- Google Analytics에 남은 기록의 삭제는 16항의 이메일로 요청할 수 있습니다. 하루니키는 로그인한 계정의 ID로 Google Analytics에서 기록을 찾아 지웁니다. 탈퇴나 데이터 삭제를 하면 계정 ID를 다시 찾을 수 없으므로 그 전에 요청해 주세요. 로그인하지 않은 설치나 이미 지운 계정의 기록은 찾지 못할 수 있고, 4항의 기간이 지나면 사라집니다
- 열람, 정정, 삭제, 처리 정지는 16항의 이메일로도 요청할 수 있습니다. 하루니키는 요청을 받은 날부터 10일 안에 답합니다
- 로그인 수단의 이메일은 계정 화면 표시에만 쓰므로 이메일 요청만으로는 어느 기기나 계정의 정보인지 확인하지 않습니다. 이메일로 삭제를 요청할 때는 설정의 앱 정보 화면에서 설치 식별자를 복사해 함께 보내 주세요
- 만 14세 미만 아동은 법정대리인이 대신 권리를 행사할 수 있습니다
14. 데이터 삭제
설정의 동기화 화면에서 이 기기와 서버의 기록 삭제를 실행하면 아래가 지워집니다. 자세한 절차는 데이터 삭제 안내에 있습니다.
- 서버: 기기 식별자, 무결성 증명 정보, 변환 기록, 기기 식별자로 묶은 구독 기능 사용 기록, 구독 상태와 구매 증거, 문의 내용, 구매 측정용 식별자(같은 구독 연결 ID를 쓰는 다른 기기가 없을 때)
- 서버 저장소: 계정의 동기화 사본(일기, 사진, 학습 기록)과 색인. 색인은 바로 지워져 앱은 그 사본을 더 쓰지 않으며, 저장소의 사본은 정리 작업이 지웁니다. 보통 몇 분이 걸리고 서버 상태에 따라 더 걸릴 수 있습니다
- 기기: 일기, 사진, 학습 기록, 구독 기능의 첨삭과 대화, 기억, 설정, 구독 캐시, 인증 정보. 사용 통계 도구의 이용자 ID를 끊고 이 기기의 측정 기록을 초기화합니다. 설정도 지워지므로 사용 통계를 꺼 두었다면 다음에 앱을 열 때 다시 끄세요. 음성 캐시 같은 일부 임시 파일은 남을 수 있으며 앱을 삭제하면 사라집니다
삭제 뒤에도 남는 것이 있습니다.
- iCloud의 구독 연결 ID(iOS). 같은 iCloud 계정에서 구독을 복원하려면 필요합니다. 일기나 개인 내용을 담지 않습니다
- 같은 계정의 다른 기기에 있는 기기 기록. 그 기기는 다음 동기화에서 삭제 사실을 알리고, 이용자는 그 기기의 기록으로 다시 올리거나 지우고 새로 시작할 수 있습니다
- 전체 삭제 요청 기록(요청 ID, 계정 ID, 완료 시각). 4항의 기간 뒤 지웁니다
- Apple, Google과 RevenueCat이 각자 보관하는 결제 기록
- Google Analytics에 이미 보낸 이용 기록. 4항의 기간 뒤 사라지며, 그 전에 지우려면 13항처럼 요청할 수 있습니다
- 이용자가 파일로 내보내 다른 곳에 저장한 백업
- 서버 복구용 백업에 남은 사본. 4항의 기간 뒤 사라집니다
- 백업 복구 시 삭제를 다시 적용하기 위한 해시한 기기 식별자와 요청 시각. 4항의 보존 기간 뒤 정리합니다
앱을 삭제하기만 하면 기기 안의 정보만 사라집니다. 서버의 정보를 지우려면 앱 안에서 삭제를 먼저 실행하세요.
탈퇴(계정 삭제)
로그인은 선택입니다(iOS는 Apple 계정 또는 Google 계정, Android는 Google 계정). 로그인하지 않은 설치는 기기 식별자로만 구분하며, 기기 안의 기록은 로그인 전에도, 로그아웃 뒤에도 지워지지 않습니다.
iOS에서는 설정의 계정 화면에서 탈퇴하기로 탈퇴할 수 있습니다. 계정에 Apple 로그인이 연결돼 있으면 서버가 보관한 갱신 토큰으로 이 앱에 대한 Apple 로그인 권한을 먼저 폐기합니다. 오래전에 로그인해 갱신 토큰이 없는 계정은 iPhone에서 Apple 계정을 한 번 더 확인할 수 있습니다. 서버는 계정 정보, 계정 연결, 계정 기준 변환 기록과 구독 기능 사용 기록, 계정의 동기화 사본과 감싼 데이터 키를 한 번에 지웁니다. 키가 사라지면 사본은 읽을 수 없고 저장소의 개체는 정리 작업이 지웁니다. 이어서 앱이 14항의 이 기기와 서버의 기록 삭제를 실행해 기기 안의 일기, 사진, 학습 기록과 이 기기의 서버 기록을 지웁니다. 탈퇴 뒤 같은 Apple 계정이나 Google 계정으로 다시 로그인하면 새 계정이 만들어집니다.
Android에서 탈퇴할 때도 계정에 Apple 로그인이 연결돼 있으면 서버가 보관한 갱신 토큰으로 이 앱에 대한 Apple 로그인 권한을 먼저 폐기합니다. 서버는 계정 정보, 계정 연결, 계정 기준 변환 기록과 구독 기능 사용 기록, 계정의 동기화 사본과 감싼 데이터 키를 지우고 RevenueCat에 계정 ID로 연결된 구독 고객 기록의 삭제를 요청합니다. 이어서 앱이 14항의 이 기기와 서버의 기록 삭제를 실행해 기기 안의 일기, 사진, 학습 기록과 이 기기의 서버 기록을 지웁니다. 다시 로그인하면 새 계정이 만들어집니다. Google Play 구독은 탈퇴해도 해지되지 않습니다. Google 계정 설정의 연결된 앱에서 하루니키의 접근 권한을 직접 해제할 수도 있습니다.
- 로그아웃은 그 기기와 계정의 연결만 끊습니다. 계정과 계정 기준 변환 기록은 다시 로그인할 때까지 남습니다
- 이 기기의 데이터 삭제는 계정 연결을 끊지만 계정은 지우지 않습니다. 둘 다 지우려면 먼저 탈퇴하세요
- 탈퇴하면 계정 ID가 구독 연결 ID인 구매 측정용 식별자도 함께 지웁니다
- Apple 쪽 장애로 Apple 로그인 권한을 바로 폐기하지 못하면 갱신 토큰을 계정과 잇는 값 없이 폐기 대기열로 옮겨 다시 시도하며, 폐기를 마치거나 7일이 지나면 지웁니다. 갱신 토큰이 없어 폐기하지 못한 채 탈퇴한 경우에는 앱이 알려 드리며, iPhone 설정의 Apple로 로그인에서 연결을 직접 해제할 수 있습니다
- 탈퇴 뒤에는 계정 사건 기록(1년), 탈퇴 요청 기록(30일), 삭제 재적용용 해시(6일)가 4항의 기간 동안 남습니다. 저장소에 남은 암호화한 개체는 키가 없어 읽을 수 없고 정리 작업이 지웁니다
15. 개인정보 보호를 위한 조치
- 모든 통신은 HTTPS로 암호화합니다
- 서버는 기기별 서명을 검증해 위조된 요청을 거부합니다. 서명 비밀은 서버 데이터베이스에 저장하지 않습니다
- 구매 증거와 기기 증명 영수증은 서버에서 암호화해 보관합니다
- 동기화 사본은 계정마다 만든 데이터 키로 AES-256-GCM 암호화해 저장하고, 데이터 키는 서버 마스터 키로 감싸 보관합니다. 운영자가 사본을 읽는 도구와 화면은 두지 않습니다
- Apple 또는 Google이 발급한 이용자 식별자는 서버 전용 키로 해시해 저장하며 원문은 남기지 않습니다. Apple 로그인 권한 폐기용 갱신 토큰은 서버 전용 키로 AES-256-GCM 암호화해 보관하며, 이 토큰으로는 Apple에서 이용자 정보를 더 받을 수 없습니다
- 서버 로그에 일기 내용, 대화의 답과 녹음, 접속 IP, 기기 식별자 원문을 남기지 않습니다. 동기화 요청의 서버 로그에는 계정 ID, 크기, 순번, 오류 코드와 오류 이름만 남습니다
- 운영자 화면에서는 기기 식별자와 구독 연결 ID를 가려서 표시하고, 운영자 접근은 다단계 인증으로 보호합니다
- 동기화 사본의 데이터 키는 하루니키가 보관하므로 이용자만 풀 수 있는 종단간 암호화는 아닙니다. 그만큼 키와 저장소를 분리해 보관합니다
16. 개인정보 보호책임자와 문의
- 보호책임자: 정준호
- 이메일: support@harunikki.app
앱 안의 개선 및 문의 화면으로도 연락할 수 있습니다. 그 화면은 이메일을 받지 않으므로 답장이 필요한 요청은 이메일로 보내 주세요.
17. 권리침해 구제 방법
개인정보 침해에 대한 신고나 상담은 아래 기관에 할 수 있습니다.
- 개인정보분쟁조정위원회: 1833-6972, kopico.go.kr
- 개인정보침해신고센터: 118, privacy.kisa.or.kr
- 대검찰청 사이버수사과: 1301, spo.go.kr
- 경찰청 사이버수사국: 182, ecrm.police.go.kr
18. 개인정보처리방침의 변경
방침이 바뀌면 시행일 7일 전에 이 페이지에 게시합니다. 이용자에게 불리한 변경은 30일 전에 게시합니다. 데이터 흐름이 바뀌는 앱 업데이트는 이 방침을 먼저 고친 뒤 배포합니다.
변경 이력
- 버전 2 (2026.10.27 시행, 2026.10.25 게시): 이 웹사이트의 방문 기록(무작위 방문 ID, 유입 경로, 본 장면, 누른 스토어 버튼, 기기 종류. IP 주소는 남기지 않으며 400일 보관)과 Android 앱의 설치 경로(Google Play 설치 리퍼러)를 더함. 요약과 2항, 3항, 4항, 11항, 12항을 고침
- 버전 1 (2026.10.22): 앱 출시와 함께 시행