← 돌아가기

개인정보처리방침

톡톡분석의 실제 코드 경로를 기준으로 기본 분석과 선택 기능의 저장·전송 경계를 구분해 안내합니다. 기능 이름이 같아도 기본 분석, 공유, 벤치마크, Trend Note의 데이터 흐름은 서로 다릅니다.

1. 핵심 처리 경계

기본 개인 대화 분석은 선택한 파일의 원문을 서비스 서버에 보내지 않고 현재 브라우저 탭에서 처리합니다.

공유·벤치마크·Trend Note는 사용자가 별도로 실행하는 예외 흐름입니다. 파생 분석 히스토리는 기본적으로 저장하지 않으며 결과 화면에서 직접 켠 경우에만 이 브라우저에 저장됩니다. 원격 광고와 제품 측정은 홈·가이드·개인정보처리방침·이용약관·트렌드 랜딩 등 공개 화면에서 동작하며, 업로드·결과·트렌드 결과·공유 화면에는 싣지 않습니다.

2. 기능별 데이터 흐름

기본 개인 대화 분석

실행 시점
업로드 화면에서 사용자가 분석 시작을 누를 때
처리 정보
선택한 파일의 대화 원문, 발화자 표시 이름, 시간과 브라우저에서 계산한 분석 결과
목적
대화 통계와 결과 화면 생성
저장·전송
원문과 전체 메시지는 현재 탭의 브라우저 메모리에서 처리하며 기본 분석을 위해 서비스 서버로 보내지 않음
수신자
외부 수신자 없음
처리 국가
해당 없음
보관
현재 탭에서 새 분석으로 교체하거나 초기화·새로고침·탭 종료할 때까지 메모리에 남을 수 있음
삭제·통제
페이지 새로고침 또는 탭 종료. 브라우저 사이트 데이터 삭제로 별도 로컬 기록도 지울 수 있음
동의 경계
사용자가 파일을 고르고 분석 시작을 누름. 이 동작은 공유·벤치마크·Trend 전송 동의가 아님

로컬 분석 히스토리

실행 시점
결과 화면에서 사용자가 저장 항목과 보관 기간을 확인하고 로컬 비교 기록 켜기를 누른 뒤, 현재·후속 기본 분석 결과가 열릴 때
처리 정보
임의 기록 ID, 분석 시각, 분석 모드, 정규화한 표시 이름 목록·분석 모드·분석 시작 시각·기기별 무작위 salt로 만든 32자리 가명 키, 연애 온도, 케미 유형, 메시지 수, 그룹 에너지, 평균 답장 시간, 활동일. 설정에는 스키마 버전·켜짐 여부·보관 기간·기기별 salt를 저장하며 원문·표시 이름·파일명·분석 시작 시각 자체는 저장하지 않음
목적
이전 결과와 변화 비교
저장·전송
명시적으로 켠 경우에만 브라우저 localStorage의 toktok_history에 파생 결과를 저장하며 외부로 전송하지 않음
수신자
외부 수신자 없음
처리 국가
해당 없음
보관
사용자가 고른 30일·90일·180일 중 하나와 최근 최대 5건을 동시에 적용. 결과 열기·저장·기간 변경 시 만료 기록을 정리
삭제·통제
결과 화면의 기록 전체 삭제 또는 저장 끄기. 저장 끄기는 기록과 기기별 salt를 삭제하고 후속 저장도 막으며, 다시 켜면 새 salt를 생성. 브라우저 사이트 데이터 삭제로도 제거 가능
동의 경계
기본값은 꺼짐이며 결과 화면에서 저장 필드와 보관 기간을 확인한 뒤 로컬 비교 기록 켜기를 눌러야 저장. 예시·공유 결과는 기록하지 않음

서버 공유 링크

실행 시점
결과 화면에서 사용자가 링크로 공유하기를 누를 때
처리 정보
생성 전에 표시한 참여자 가명, 기간, 메시지 수, 빈도·시간대 통계, 자주 쓴 단어, 관계·참여자별 공개 파생 지표. 실제 표시 이름, 전체 메시지 배열, 최장 메시지 미리보기와 파일명은 전송하지 않음
목적
링크를 받은 사람이 공개 요약 결과를 열람하도록 제공
저장·전송
브라우저가 생성 전 미리보기에 사용한 동일 공개 투영본만 서비스 API로 보내고, 서버가 다시 허용 목록으로 투영한 뒤 Upstash Redis에 저장합니다. 철회용 원문 토큰은 현재 브라우저에만 저장하고 서버에는 SHA-256 해시만 별도 저장하며, 요청 IP의 호출 횟수는 1분 동안 저장합니다.
수신자
서비스 운영자, Upstash Redis, 링크를 받은 모든 사람
처리 국가
Redis 저장 리전은 배포 환경 설정에 따르며 현재 화면과 코드에서 국가를 고정하거나 표시하지 않음
보관
공개용 결과와 철회 토큰 해시는 7일 후 자동 만료. 현재 브라우저의 철회 권한은 다음 공유 생성·권한 조회·사이트 방문 중 정리 동작이 실행될 때 만료 여부를 확인해 지우며 IP 호출 횟수 키는 1분
삭제·통제
링크를 만든 현재 브라우저에서 7일 만료 전에 철회할 수 있습니다. 철회하면 서비스 API·공유 페이지·OG 이미지가 공개본을 다시 조회하지 못하지만 이미 전달된 메신저 미리보기나 제3자 캐시의 삭제까지 보장하지 않습니다.
동의 경계
링크로 공유하기 버튼을 누르는 것이 공개용 결과 전송·저장 요청
현재 한계
철회 후에도 이미 전달된 메신저 미리보기나 제3자 캐시의 삭제까지 서비스가 보장할 수 없음

기기 텍스트 공유

실행 시점
공유 모달에서 전송할 전체 텍스트를 확인한 뒤 텍스트로 공유하기를 누를 때
처리 정보
참여자 1, 참여자 2 형식의 가명, 메시지 수, 기간, 선택된 규칙 기반 계산 결과와 사용자가 만든 서버 공유 링크. 실제 표시 이름, 원문, 파일명은 포함하지 않음
목적
사용자가 선택한 앱 또는 클립보드로 가명화된 요약을 전달
저장·전송
Web Share API가 지원되면 운영체제 공유 선택 화면에 표시하고 사용자가 고른 앱으로 전달합니다. 지원되지 않거나 실패하면 현재 기기의 클립보드에 복사합니다. 서비스 서버에는 텍스트 공유 자체를 전송하지 않습니다.
수신자
사용자가 선택한 외부 앱 또는 현재 기기의 클립보드
처리 국가
선택한 외부 앱의 처리 국가와 정책에 따르며 서비스가 확정하지 못합니다. 클립보드만 사용하면 서비스의 국외 전송은 없음
보관
선택한 외부 앱과 운영체제·클립보드의 보관 정책에 따르며 서비스가 자동 삭제하지 못함
삭제·통제
공유 전 전체 텍스트를 확인하고 취소할 수 있습니다. 전송 후에는 선택한 앱의 메시지·기록 또는 기기 클립보드를 사용자가 직접 삭제해야 합니다.
동의 경계
전체 텍스트 미리보기 뒤 텍스트로 공유하기 버튼을 누르고 운영체제 공유 대상을 선택하거나 클립보드 복사를 허용하는 동작
현재 한계
외부 앱에 전달된 텍스트를 서비스가 원격 철회하거나 삭제할 수 없음

결과 퀴즈 점수 공유

실행 시점
결과 퀴즈를 마친 사용자가 점수 공유를 누를 때
처리 정보
퀴즈 정답 수, 전체 문항 수, 백분율과 서비스 이름. 대화 원문·표시 이름·파일명·분석 지표는 포함하지 않음
목적
사용자가 선택한 앱 또는 클립보드로 퀴즈 점수를 전달
저장·전송
Web Share API가 지원되면 운영체제 공유 선택 화면에 표시하고 사용자가 고른 앱으로 전달합니다. 지원되지 않거나 실패하면 현재 기기의 클립보드에 복사합니다. 서비스 서버에는 점수 공유 자체를 전송하지 않습니다.
수신자
사용자가 선택한 외부 앱 또는 현재 기기의 클립보드
처리 국가
선택한 외부 앱의 처리 국가와 정책에 따르며 서비스가 확정하지 못합니다. 클립보드만 사용하면 서비스의 국외 전송은 없음
보관
선택한 외부 앱과 운영체제·클립보드의 보관 정책에 따르며 서비스가 자동 삭제하지 못함
삭제·통제
점수 문구를 화면에서 확인하고 공유를 취소할 수 있습니다. 전송 후에는 선택한 앱의 메시지·기록 또는 기기 클립보드를 사용자가 직접 삭제해야 합니다.
동의 경계
화면에 표시된 점수 문구를 확인한 뒤 점수 공유 버튼을 누르고 운영체제 공유 대상을 선택하거나 클립보드 복사를 허용하는 동작
현재 한계
외부 앱에 전달된 점수 문구를 서비스가 원격 철회하거나 삭제할 수 없음

지원 종료된 URL 포함형 공유 링크

실행 시점
현재 새 링크를 생성하는 동작 없음
처리 정보
이전 링크의 d 쿼리는 읽거나 결과·메타데이터로 표시하지 않음
목적
이전 URL 형식의 위험과 지원 종료 안내
저장·전송
서비스는 새 URL 폴백을 만들지 않고 이전 d 쿼리를 해석하지 않습니다. 과거 형식은 요약 데이터를 암호화하지 않은 URL-safe Base64로 포함했으므로 기존 URL이 브라우저 방문 기록·클립보드·메신저·중계 시스템에 남아 있을 수 있습니다.
수신자
현재 서비스가 쿼리 데이터를 결과로 처리하는 수신자 없음. 기존 URL을 보유한 브라우저·메신저·중계 시스템에는 과거 값이 남아 있을 수 있음
처리 국가
서비스 호스팅·CDN과 링크 전달 서비스의 배포 설정에 따라 국외에서 처리될 수 있으며 현재 코드에서 처리 국가를 고정하지 않습니다.
보관
서비스는 이전 쿼리를 결과로 보관하거나 재표시하지 않음. 다만 과거에 복사·전달된 URL은 제3자 시스템에 남아 있을 수 있음
삭제·통제
서비스 화면에서는 이전 쿼리를 읽지 않습니다. 브라우저 방문 기록·클립보드·전달 메시지는 사용자가 각 서비스에서 직접 삭제해야 합니다.
동의 경계
현재 새 URL 포함형 공유 동작 없음
현재 한계
과거에 제3자에게 전달된 URL 자체를 서비스가 원격 삭제할 수 없음

연애 온도 벤치마크

실행 시점
사용자가 체크박스를 선택하고 통계 참여 버튼을 누를 때
처리 정보
0~100 연애 온도 숫자, 요청 IP 기반 1분 호출 횟수. 원문·발화자 이름·파일명은 전송하지 않음
목적
제출 점수의 합계·횟수·평균 집계와 요청 남용 방지
저장·전송
서비스 API를 거쳐 Redis에 점수 합계와 제출 횟수를 누적하고 IP 기반 호출 횟수 키를 저장
수신자
서비스 운영자와 Upstash Redis
처리 국가
Redis 저장 리전은 배포 환경 설정에 따르며 현재 화면과 코드에서 국가를 고정하거나 표시하지 않음
보관
점수 합계와 제출 횟수는 현재 만료 기한 없음. IP 호출 횟수 키는 1분
삭제·통제
집계값에 합산되어 개별 제출을 식별·삭제하는 기능은 없음. 제출 전 체크를 해제할 수 있음
동의 경계
별도 체크박스 선택 후 통계 참여 버튼을 눌러야 전송
현재 한계
자기선택 표본이고 사람·대화 단위 중복을 확인하지 못하며 개별 철회도 불가함. 현재 결과는 제출 횟수와 평균만 보여주며 순위·백분위·모집단 대표성을 제공하지 않음

Trend Note 서비스 API 수신

실행 시점
공개·반공개 대화에서 사용자가 전송 동의 후 트렌드 노트 생성을 누를 때
처리 정보
선택 기간 전체 lines의 time·sender·content, 추출 urls 전체, meta의 dateLabel·channel·volume, 요청 내용의 SHA-256 해시와 결합된 10분 유효 서버 서명 확인증, 요청 IP 기반 KST 일일 성공 생성권, IP와 결합하지 않은 KST 일일 외부 제공자 시도 횟수
목적
Trend 제공자 요청 준비, 결과 반환, 비용·남용 통제
저장·전송
브라우저가 first-party Next.js /api/trend-note로 전체 요청을 전송합니다. 앱은 원문 요청을 Redis에 저장하지 않지만 서비스 서버와 호스팅 인프라가 요청을 처리하며 인프라 로그 보관 여부는 현재 코드에서 강제하지 못합니다.
수신자
서비스 운영자, first-party Next.js 서비스 서버, 호스팅 인프라, 생성권 저장용 Upstash Redis
처리 국가
서비스 호스팅과 Redis 리전은 배포 설정에 따라 국외일 수 있으며 현재 UI와 코드에서 처리 국가를 고정하지 않습니다.
보관
앱은 lines·urls·meta를 Redis에 저장하지 않습니다. 요청 해시와 결합된 일회용 확인증 표시는 최대 10분, IP 생성권 카운터·커밋 상태와 IP 비결합 제공자 시도 횟수 키는 한국 시간 기준 당일까지이며, 환불된 예약의 중복 정산 방지 표시는 최대 5분 보관합니다. 호스팅 인프라 로그 보관 기간은 현재 코드에서 강제하지 못합니다.
삭제·통제
생성 전 기간 축소·동의 해제가 가능하지만 서비스 API로 전송된 요청을 앱에서 사후 삭제하는 기능은 없습니다.
동의 경계
선택 기간·전송 상한 안내와 별도 체크박스 확인 뒤 브라우저가 요청 해시를 보내 10분 유효 서버 서명 확인증을 발급받고, 동일 요청에서 일회용으로 사용해야 함. 합성 샘플은 외부 전송하지 않음
현재 한계
서버 확인증은 동일 요청에 대한 최근 UI 절차와 재사용 방지만 기술적으로 묶습니다. 직접 API 호출자가 같은 발급 절차를 수행할 수 있어 실제 문구 열람·현재 사용자의 의사·대화 참여자 전원의 동의·적법 근거를 증명하지 않습니다. 호스팅 국가·인프라 로그 기간도 확정하지 않습니다.

Trend Note 최종 AI 제공자

실행 시점
Trend 서비스 API가 동의된 요청을 검증하고 배포 설정에 맞는 제공자를 호출할 때
처리 정보
직접 GLM 경로는 서버가 선별·축약한 evidence의 id·content와 meta·에디토리얼 지시만 전송하며 sender·time·추출 urls 배열은 별도 필드로 보내지 않습니다. 설정된 proxy Trend API 경로는 선택 기간의 lines(time·sender·content)·urls·meta 전체와 consent=true를 전송할 수 있습니다.
목적
오픈채팅 흐름 요약과 인용 후보 생성
저장·전송
배포 설정이 GLM이면 최대 16개 evidence를 선별·축약해 GLM/Z.ai chat completions로 보냅니다. GLM이 아닌 proxy 설정이면 TREND_API_URL의 /trend로 lines·urls·meta 전체를 보냅니다. 두 경로 모두 최종 JSON을 한 번 직렬화한 UTF-8 바이트가 최대 250,000 이하인지 확인하고, KST 일일 전역 제공자 시도 예산을 원자적으로 확보한 직후 그 동일 문자열을 전송합니다.
수신자
배포 설정에 따른 GLM/Z.ai 또는 proxy Trend API 운영자
처리 국가
최종 AI 제공자의 처리 국가는 배포 설정과 제공자 인프라에 따라 달라지며 현재 UI에서 확정하지 않습니다.
보관
최종 AI 제공자의 요청 로그와 보관 기간은 해당 제공자 정책·설정에 따르며 서비스 코드에서 강제하지 못합니다.
삭제·통제
제공자 호출 전에는 동의를 해제할 수 있지만 호출 후 제공자 보관분을 앱에서 삭제하는 기능은 없습니다.
동의 경계
서비스 API 수신과 같은 Trend 생성 동의를 사용합니다. 합성 샘플은 제공자를 호출하지 않습니다.
현재 한계
현재 UI는 실제 배포에서 direct GLM과 proxy 중 어느 경로인지, 제공자 국가·보관 기간을 확정해 표시하지 않습니다.

원격 광고 (공개 화면)

실행 시점
홈·가이드·개인정보처리방침·이용약관 등 공개 화면을 볼 때
처리 정보
광고 요청·기기·브라우저 식별자·대략적 위치 등 Google AdSense가 수집하는 표준 광고 신호. 앱은 대화 원문·표시 이름·파일명·공유 ID·민감 점수를 광고 이벤트 필드로 보내지 않음
목적
공개 지면에서 서비스 운영 비용을 보전하기 위한 광고 표시
저장·전송
공개 경로에서 Google AdSense 스크립트와 수동 슬롯을 로드합니다. 업로드·결과·Trend·공유 경로에서는 광고 스크립트와 슬롯을 로드하지 않습니다. 별도 인앱 광고 온오프 UI는 없습니다.
수신자
Google (AdSense)
처리 국가
Google 처리 리전(주로 미국 등)에 따름. 앱이 국가를 고정하지 않음
보관
Google 광고 쿠키·식별자 보관 기간은 Google 정책에 따름
삭제·통제
브라우저 광고 차단 확장 프로그램 또는 사이트 데이터 삭제로 Google 광고·쿠키를 차단·제거할 수 있습니다. 앱 안 별도 광고 끄기 UI는 없습니다.
동의 경계
파일 분석·벤치마크·Trend AI 동의와 별개. 공개 화면 방문 시 로드되며 인앱 철회 UI는 없음
현재 한계
공개 화면과 분석 화면이 같은 origin을 쓰므로, 공개 화면에서 로드된 원격 스크립트가 브라우저 저장소에 접근할 수 있는 구조적 가능성은 남습니다. 앱은 보호 경로에 광고를 싣지 않고 원문·이름을 광고 필드로 보내지 않지만 이를 암호학적 격리로 주장하지 않습니다.

원격 제품 측정 (공개 화면)과 로컬 진단 로그

실행 시점
공개 경로를 탐색하거나 공개 화면 CTA를 누를 때. 로컬 진단 로그는 현재 탭에서 분석 오류가 발생할 때 기록
처리 정보
페이지 경로, 기능별 건수·오류 코드 같은 제품 이벤트. 원문·발화자 이름·파일명은 제품 이벤트 필드에 포함하지 않음. 브라우저 sessionStorage의 로컬 진단에는 확장자·인코딩·형식·라인 수 등 최근 최대 20개가 남을 수 있음
목적
공개 화면 이용 패턴 파악과 사용자가 선택한 진단 정보 복사 지원
저장·전송
공개 경로에서 Google Tag Manager를 로드하고 dataLayer 이벤트를 전송합니다. 업로드·결과·Trend·공유 경로에서는 원격 측정을 보내지 않습니다. 진단 로그는 현재 탭 sessionStorage에만 둡니다. 별도 인앱 측정 온오프 UI는 없습니다.
수신자
Google Tag Manager/연결 태그 목적지. 진단 복사를 누른 경우에만 사용자 클립보드
처리 국가
GTM·연결 태그 설정에 따르며 앱이 국가를 고정하지 않음. 로컬 진단은 기기 안
보관
원격 이벤트 보관은 Google/태그 설정에 따름. 로컬 진단 로그는 최근 20개이며 탭 세션 종료 또는 사이트 데이터 삭제 시 제거
삭제·통제
브라우저 추적 차단·사이트 데이터 삭제로 원격 측정 쿠키를 줄이거나 제거할 수 있습니다. 브라우저 탭을 닫거나 사이트 데이터를 삭제해 로컬 진단 로그를 제거할 수 있습니다. 앱 안 별도 측정 끄기 UI는 없습니다.
동의 경계
파일 분석 시작·벤치마크·Trend AI 동의와 별개. 공개 화면에서 동작하며 인앱 철회 UI는 없음
현재 한계
동일 origin 한계로 공개 화면 원격 스크립트의 브라우저 접근 가능성은 남습니다. 보호 경로 이벤트 전송은 앱 코드로 막지만 절대 격리 증명은 하지 않습니다.

3. 광고·분석 도구

광고는 홈·가이드·개인정보처리방침·이용약관 등 공개 화면에서 Google AdSense로 표시됩니다. 업로드·결과·Trend·공유 화면에는 광고를 넣지 않으며, 인앱 광고 끄기 설정은 없습니다.

제품 측정은 공개 화면의 경로·기능 건수 같은 이벤트를 GTM으로 보냅니다. 업로드·결과·Trend·공유 화면에서는 원격 측정을 보내지 않으며 원문·이름은 이벤트 필드에 넣지 않습니다. 인앱 측정 끄기 설정은 없습니다.

광고와 제품 측정은 파일 분석 시작·벤치마크·Trend AI 동의와 별개입니다. 별도 인앱 온오프 UI는 없으며, 공개 화면(홈·가이드·약관·개인정보·트렌드 랜딩)에서만 동작하고 업로드·결과·트렌드 결과·공유 화면에는 싣지 않습니다. 브라우저 광고 차단 확장 프로그램으로 차단할 수 있습니다.

4. 이용자의 삭제·통제 방법

  • 결과 화면의 기록 전체 삭제로 로컬 기록만 지우거나, 저장 끄기로 기록을 지우고 후속 저장도 막을 수 있습니다.
  • 브라우저 사이트 데이터를 삭제하면 로컬 히스토리 설정·기록과 세션 진단 로그를 제거할 수 있습니다.
  • 서버 공유는 7일 후 만료되며 링크를 만든 현재 브라우저에서 조기 철회할 수 있습니다.
  • 이전 URL 포함형 폴백은 새로 만들거나 표시하지 않습니다. 과거 URL이 브라우저·메신저에 남았다면 각 서비스에서 직접 삭제해야 합니다.
  • 벤치마크 집계값은 개별 제출과 연결되지 않아 현재 개별 삭제를 지원하지 않습니다.
  • Trend Note는 전송 전에 기간을 줄이거나 동의를 해제할 수 있지만 전송 후 제공자 보관분을 앱에서 삭제할 수 없습니다.

5. 개인정보가 없는 검증 기록

데이터 흐름을 검증할 때는 실제 대화·발화자 이름·파일명을 기록하지 않고 아래 메타데이터만 사용합니다.

flowId, action, requestMethod, destinationClass, status, payloadBytes, timestamp

6. 문의와 권리 행사

접근, 처리 내역, 삭제 가능 여부에 관한 문의는 아래로 보내주세요.

  • 담당자: goddaehee
  • 이메일: goddaehee@kakao.com

7. 시행일

본 방침은 2026년 7월 14일부터 적용됩니다.