Privacy Policy
Last updated: 2026-08-08 Service: ainote — iOS · Android 앱, 웹 서비스(app.ainote.dev), API(api.ainote.dev), Chrome / Safari 확장, MCP 도구 Operator: 디코드(Dcode) · 대표 김다혜 — 사업자 정보는 §10 참조
이 문서가 ainote 개인정보처리방침의 정본이다. 다른 경로에 게시된 사본과 내용이 다르면 이 문서가 우선한다.
1. 어떤 데이터를 수집하는가
사용자 계정
- 이메일 주소 (가입 시)
- 비밀번호 hash (bcrypt — 평문 비밀번호 저장 안 함)
- (선택) 표시 이름
사용자 컨텐츠
- 태스크 (
tasks), dev-docs, 핸드오프, vault 파일 — 사용자가 직접 작성한 모든 내용 - 위 항목의 메타데이터 (created_at, updated_at, category, position 등)
- 음성 파일 — 사용자가 회의록 기능에서 직접 고른 오디오 파일(m4a·mp3·wav·webm). 전사·요약을 위해 서버로 올라가고 §4-2 의 AI 사업자로 전달된다. 앱이 직접 녹음하지는 않는다 — 기기에 이미 있는 파일을 불러온다.
인증·세션
- MCP API keys (해시 저장 — 평문은 발급 직후 한 번만 노출)
- JWT 토큰 (RFC 8628 device flow 시), 발급 일시 + 만료 일시
- OAuth Apple / Google ID 토큰 (SSO 사용 시)
- 세션 IP / User-Agent (보안 감사 목적, 30일 후 자동 삭제)
외부 통합 데이터
- GitHub installation ID (vault 기능 사용 시)
- Apple / Google federated identity (SSO 사용 시)
- Telegram chat ID (Telegram bot 연동 시)
- 기기 캘린더 (iOS·Android 앱에서 사용자가 캘린더 권한을 허용한 경우에만):
- 앱이 기기에 이미 있는 일정을 읽고, 사용자가 만든 일정을 기기 캘린더에 쓴다.
- 🔴 이 데이터는 기기 밖으로 나가지 않는다. ainote 서버로도, 제3자로도 보내지 않는다. 아래 §4 의 Google Calendar 행과는 별개 경로다 — 그쪽은 웹에서 계정을 연결한 경우에만 동작한다.
- 권한을 허용하지 않아도 나머지 기능은 그대로 쓸 수 있다.
- Google Calendar 연동 데이터 (웹에서 사용자가 설정에서 직접 활성화한 경우에만):
- 캘린더 목록 (이름, 시간대, 색상) — 동기화 대상 캘린더 선택 UI 표시 목적
- 일정 정보 (제목, 설명, 시간, 장소, 참석자) — 앱 내 일정 표시 + 할 일 ↔ 일정 동기화 목적
- Google OAuth access / refresh token (서버 저장, 연동 해제 시 즉시 삭제)
- 요청 스코프:
calendar.calendarlist.readonly(캘린더 목록 읽기 전용) +calendar.events(일정 조회·생성·수정·삭제)
- Google Drive 백업 (Android 앱에서 사용자가 직접 활성화한 경우에만):
- 요청 스코프:
drive.file— ainote 가 직접 생성한 백업 파일에만 접근, 다른 Drive 파일은 읽기 불가
- 요청 스코프:
클립보드 (텍스트·이미지)
ainote 는 "클립보드로 할 일 만들기" 기능을 위해 기기의 클립보드를 읽는다. 읽는 시점과 범위는 아래와 같고, 이 기능을 쓰지 않으면 내용을 읽지 않는다.
| 시점 | 무엇을 | 어디까지 나가는가 |
|---|---|---|
| 앱 화면에 머무는 동안 | 클립보드에 텍스트·이미지가 있는지 여부만 확인 (버튼을 보여줄지 판단) | 기기 밖으로 나가지 않음 |
| 사용자가 버튼을 누른 순간 | 클립보드의 텍스트 본문, Android·웹은 이미지도 함께 | ainote 서버 → AI 사업자 (아래 §4) |
- iOS: 버튼 표시 판단에는 "글자가 있는가 / 이미지가 있는가"만 확인한다. 이 확인은 붙여넣기 확인창을 띄우지 않는다. 실제 내용은 버튼을 누른 뒤 한 번만 읽는다. iOS 는 텍스트만 전송하고 이미지는 전송하지 않는다.
- Android: 화면이 떠 있는 동안 클립보드 변경을 감지해 텍스트·이미지 유무를 앱 안에서만 갱신한다. 버튼을 누르면 텍스트와 이미지를 서버로 보낸다.
- 웹(app.ainote.dev): 브라우저의 클립보드 읽기 권한을 사용해, 사용자가 기능을 실행한 시점에만 텍스트·이미지를 읽는다.
전송된 클립보드 내용은 할 일을 뽑아내는 데만 쓰이고, 결과로 만들어진 할 일이 계정에 저장된다. 클립보드 원본 자체를 별도 항목으로 보관하지 않는다. 클립보드를 상시 감시하거나, 다른 앱의 복사 이력을 수집하지 않는다.
자동 수집 (서버 로그)
- API 호출 메서드 / 응답 코드 / 응답 시간
- ⚠️ AI 기능(요약·할 일 추출)을 호출하면 입력 텍스트의 앞부분이 서버 로그에 남는다. 로그는 운영 진단 목적으로만 보관한다.
이용 분석 (선택 동의)
- 모바일 앱: 기본값 꺼짐. 설정에서 직접 켠 경우에만 화면 조회·기능 사용 이벤트를 PostHog 로 보낸다. 익명 식별자를 쓰고, 노트·할 일 본문은 보내지 않는다.
- 서버: 로그인·할 일 생성/수정/삭제, AI 요청 같은 행동 이벤트를 PostHog 로 보낸다. 계정 식별자와 이벤트 속성(카테고리 id, 변경된 필드 이름, 글자 수, 처리 시간)이 포함되고, 노트·할 일 본문은 포함하지 않는다.
- 웹(app.ainote.dev): PostHog 웹 SDK 로 페이지 조회를 수집한다.
- Android 앱: Firebase Analytics·Crashlytics 가 앱 실행·화면 조회·크래시 정보를 자동 수집한다.
2. 데이터 위치
- Primary database: PostgreSQL (Render, Singapore region)
- Encryption at rest / in transit: Render Postgres 는 AES-256 으로 저장 시 암호화되며 복제본과 백업에도 같이 적용된다. 외부 연결은 Render 관리 TLS 인증서로 전송 구간이 암호화된다 (출처: Render 문서). 이는 인프라 수준 암호화이고, 애플리케이션 수준의 추가 암호화는 아래
mcpcategory 에 한정된다 — 종단간 암호화(E2EE)가 전체 데이터에 적용된다는 뜻이 아니다 - Vault git repositories: 사용자 본인 소유 GitHub 계정 (private repo). ainote 는 indexing 만, git traffic 은 proxy 안 함
- Encrypted client-side data:
mcpcategory (mcpServers + API keys) 는 클라이언트 디바이스에서 age 로 암호화 후 업로드. 서버는 평문 모름 - OS Keychain: 디바이스별 age identity / MCP key 는 사용자 본인 디바이스의 macOS Keychain / libsecret / Credential Manager
3. 데이터 사용
ainote 는 사용자 데이터를:
✅ 사용:
- 사용자가 명시적으로 호출한 도구의 결과 반환
- 멀티-디바이스 동기화, 사용자 본인 식별, 보안 감사
- 사용자가 실행한 AI 기능(요약·전사·할 일 추출·이미지 분석)의 처리
- 알림 발송 (리마인더·브리핑)
- 기능 개선을 위한 이용 통계 — 위 §1 "이용 분석" 범위 안에서만
❌ 사용 안 함:
- 광고 목적 이용 — 0. 광고 네트워크·데이터 브로커에 제공 — 0
- 제3자 판매 — 0
- 회사가 직접 수행하는 AI/ML 모델 학습 — 0
- 마케팅 이메일 — 0 (서비스 필수 알림만)
AI 기능을 실행하면 그 대상 콘텐츠가 §4 의 AI 사업자에게 전송된다. 전송받은 데이터를 각 사업자가 자사 약관에 따라 어떻게 처리하는지는 해당 사업자의 정책을 따르며, ainote 의 통제 범위 밖이다.
Google 사용자 데이터 — Limited Use 고지
ainote's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
- Google Calendar / Drive 데이터는 위에 명시된 사용자-노출 기능(일정 표시, 할 일 동기화, 백업) 제공에만 사용
- 광고 목적 사용 금지, 제3자 판매·이전 금지
- 사람의 열람 금지 (사용자의 명시적 동의, 보안 점검, 법적 의무 등 정책상 허용된 예외 제외)
- AI/ML 모델 학습에 사용하지 않음
4. 제3자 공유
개인정보를 판매하거나 임대하지 않는다.
4-1. 서비스 운영 기반
| 제3자 | 무엇을 | 왜 |
|---|---|---|
| Render (호스팅) | 모든 데이터 (저장 위치) | 인프라 제공자, Singapore 데이터센터 |
| 1pass (api.1pass.dev) | 인증에 필요한 계정 식별 정보 | 통합 로그인(SSO). 같은 운영주체의 처리위탁 |
| Apple / Google (SSO) | 인증 토큰만 | SSO 로그인 사용자 한정 |
| Sentry | 예외 메시지·스택트레이스, 느린 SQL 질의, 요청 경로, 성능 프로파일 | 오류 진단. 요청 본문·쿠키·IP 는 보내지 않도록 설정 |
| PostHog | 계정 식별자, 행동 이벤트 이름과 속성 | 이용 통계 (§1 "이용 분석") |
| Firebase (Analytics · Crashlytics) | 앱 실행·화면 조회 이벤트, 크래시 로그, 이용자 식별자 | Android 앱 오류 수집·이용 통계 |
4-2. AI 기능을 실행할 때
요약·전사·분석·클립보드 할 일 추출을 실행하면, 그 대상이 되는 콘텐츠가 해당 기능을 제공하는 AI 사업자로 전송된다. 기능을 쓰지 않으면 전송되지 않는다.
| 제3자 | 무엇을 | 왜 |
|---|---|---|
| BizRouter (bizrouter.ai) | 클립보드 텍스트·이미지, AI 대화 전문과 이력, 관련 할 일 맥락, YouTube 요약 | AI 게이트웨이. 최종 처리는 Google·OpenAI·Anthropic·Perplexity 로 재위탁 |
| Google (Gemini API) | 음성 녹음 원본, 웹페이지 본문, YouTube 자막, 노트·할 일 텍스트, 이미지 | 요약·분석·음성 전사·임베딩 |
| Groq | 오디오 파일 원본 | 음성 전사 (1순위 경로) |
| OpenAI | 이미지, 오디오 파일, 대화 내용 | 이미지 분석, 음성 전사, 텔레그램 대화 |
| Anthropic | 이미지, 대화 내용 | 이미지 분석, 텔레그램 대화 |
| Voyage AI · OpenRouter · Ollama | 노트·위키 본문 | 사용자가 본인 API 키를 등록한 경우에만 |
| Anthropic · OpenAI (BYOK 직결) | AI 에이전트에 보낸 질문과 대화 이력 전문 | 🔴 사용자가 본인 API 키를 등록한 경우에만. 앱이 해당 서비스에 직접 연결하며 ainote 서버를 거치지 않는다 — 위 §4-2 의 서버 경유 행과는 다른 경로다. 키는 기기 보안 저장소에만 있고 서버로 보내지 않는다 |
4-3. 알림·연동 기능
| 제3자 | 무엇을 | 왜 |
|---|---|---|
| Google (FCM) | 알림 제목과 본문 — 할 일 제목과 메모가 그대로 담긴다 | Android·웹 푸시 발송 |
| Apple (APNs · Sign in with Apple) | 알림 내용, 인증 토큰 | iOS 푸시 발송, Apple 로그인 검증 |
| Expo · 브라우저 푸시 서비스 | 알림 내용 | 푸시 발송 (대체 경로) |
| Telegram | 연동된 대화의 메시지 내용 | 텔레그램 연동을 켠 경우에만 |
| Google Calendar API | 일정 데이터 (양방향 동기화) | 웹에서 캘린더 연동을 직접 활성화한 사용자 한정. 앱의 기기 캘린더(§1)는 이 경로를 타지 않는다 |
| GitHub (vault) | 연동 대상 노트 파일의 내용. 사용자 본인 소유 repo 에만 | vault 기능을 쓰는 경우에만 |
| Naver Cloud | 사용자가 입력한 장소 문자열 | 할 일 장소의 좌표 변환 |
4-4. 국외 이전
위 수신자는 대부분 국외에 서버를 두고 있어, 해당 기능을 쓰면 개인정보가 국외로 이전된다. 이전 항목과 목적은 각 표에 적힌 것과 같고, 이전 국가는 수신자의 서비스 지역을 따른다. 이전은 서비스 제공에 필요한 범위에서만 이루어지며, 해당 기능을 쓰지 않는 방법으로 이전을 피할 수 있다.
5. 사용자 권리
데이터 접근 / 이동
GET /api/users/me/export(계획 — Phase 3) — 모든 사용자 데이터 JSON dumppull_dev_docs도구로 dev-doc 즉시 로컬 복원vault_clone으로 vault git repo URL 발급, 본인 GitHub 에서 직접 clone
데이터 삭제
- 모든 destructive 도구 사용자 임의 호출 가능 (
delete_task,delete_dev_doc등) - 30일 trash window 후 영구 삭제 (
TaskCleanupJob매일 2am KST) - 계정 전체 삭제: 앱 또는 app.ainote.dev → 설정 → 계정 삭제. 요청 후 30일 동안 비활성 상태로 보관되고, 그 기간에 재로그인하면 복구된다. 30일이 지나면 영구 삭제되며 복구할 수 없다. 상세: /legal/account-deletion
데이터 수정
- 모든 update 도구 (
update_task,update_dev_doc등) - 잘못된 핸드오프: 7일 자동 purge 또는 같은 (project, topic, date, time) 으로 overwrite
GDPR (EU 사용자)
- Right to access — 위 export
- Right to rectification — 위 수정
- Right to erasure ("right to be forgotten") — 위 삭제
- Right to data portability — JSON export + vault git clone
- Right to object — 마케팅·프로필링 없음 (애초에 사용 안 함)
- 처리 근거: Article 6(1)(b) "necessary for the performance of a contract"
- Data Protection Officer (DPO): 직접 운영 — Contact
6. 쿠키 / 추적
- app.ainote.dev (웹 앱): session cookie(필수) + PostHog 웹 SDK 가 두는 분석용 저장값. 광고 쿠키 0
- ainote.dev · docs.ainote.dev (랜딩 + 문서): 쿠키 0
- api.ainote.dev (MCP/OpenAPI API): 쿠키 0, header-based auth 만
- 모바일 앱: 광고 식별자(IDFA·GAID) 를 읽지 않는다. 이용 분석은 §1 의 선택 동의 범위
7. 보안
- HTTPS 강제 (Render 가 발급한 Let's Encrypt 인증서)
- 비밀번호 bcrypt (cost factor 12+)
- MCP key 발급 시 평문은 단 한 번만 노출, 이후 hash 저장
- E2E age 암호화 (
mcpcategory) - 보안 취약점 보고: /legal/security
8. 미성년자
ainote 는 만 14세 미만 사용자를 대상으로 하지 않는다. 만 14세 미만임이 확인되면 즉시 계정 삭제 + 데이터 삭제.
9. 정책 변경
본 정책 변경 시 Last updated 일자가 갱신된다. 중대한 변경 (데이터 사용 범위 확대 등) 시 활성 사용자에게 in-app 알림. 30일 grace period.
10. Contact
운영주체 (개인정보처리자)
| 항목 | 내용 |
|---|---|
| 상호 | 디코드(Dcode) |
| 대표자 | 김다혜 |
| 사업자등록번호 | 280-18-02841 |
| 통신판매업 신고번호 | 2026-강원원주-00196 |
| 사업장 소재지 | 강원특별자치도 원주시 동부순환로 261, 4층 4호 A54 (행구동) |
| 대표 전화 | 010-4275-7750 |
문의 채널
- 이메일: support@1pass.dev
- GitHub Issues: https://github.com/seunghan91/ainote/issues
- Telegram / Kakao open chat: https://seunghan.xyz (블로그의 Contact 섹션에서 채널 확인)
- Security disclosure: /legal/security
본 정책은 한국어 원본을 기준으로 한다. 영문 번역과 충돌 시 한국어 본문 우선.