회원가입과 로그인
일반 회원의 Google 소셜 로그인과 PG사 심사용 테스트 계정의 이메일·비밀번호 로그인에 Supabase Auth를 이용합니다. 인증 과정에서 계정 이메일과 외부 식별자가 처리되며, 테스트 계정 비밀번호는 Supabase Auth에 전달할 뿐 업스토리 데이터베이스·브라우저 저장소·애플리케이션 로그에 보관하지 않습니다. 업스토리는 회원번호, 닉네임, 계정 상태와 가입·수정 시각을 저장하며 회원번호는 사용자 화면과 공개 세션 응답에 표시하지 않습니다.
저장 블로그와 분석
회원이 사용하는 네이버 블로그 ID와 canonical 주소를 최대 3개까지, 명시적으로 추가한 벤치마킹 블로그 ID와 canonical 주소를 별도 목록에 최대 20개까지 보관합니다. 주소 저장 시 사용자가 선택한 블로그 카테고리도 함께 보관하며 선택하지 않으면 공란으로 저장합니다. 별칭, 키워드, 포스팅 URL·원문·제목, 분석 결과와 분석 이력은 영구 저장하거나 애플리케이션 로그에 남기지 않습니다. 무료 사용 한도 적용에는 회원번호, 한국시간 날짜, 도구 종류, 성공 횟수와 최대 10분의 실행 예약 식별자만 저장하며 31일이 지나면 삭제합니다. 유료회원에게 적용되는 키워드·포스팅 도구 한도도 회원번호, 날짜와 성공 횟수만 저장합니다.
회원 전용 기능을 선택한 뒤 로그인에서 돌아올 때 작업을 이어갈 수 있도록 같은 탭의 세션 저장소에 입력 키워드 또는 블로그 주소, 조회 수와 작업 종류를 최대 10분간 임시 보관할 수 있습니다. 벤치마킹 주소 저장은 로그인 뒤 입력만 복원하며 자동 저장하거나 분석하지 않습니다. 이 값은 서버나 URL로 전달하지 않으며 복원, 만료 또는 검증 실패 즉시 삭제합니다. 포스팅 분석 URL·결과와 인증 정보는 세션 저장소에 보관하지 않습니다.
이미지 재구성
사용자가 선택하거나 클립보드에서 붙여넣은 이미지, 비율·구도·워터마크 설정, 썸네일 제목·스타일·정렬과 생성 결과는 현재 브라우저 메모리에서만 처리합니다. 업스토리 서버, 데이터베이스, Storage, URL, 쿠키와 브라우저 저장소로 전송하거나 보관하지 않으며 페이지를 벗어나면 복구할 수 없습니다. PNG 복사 과정에서는 브라우저의 클립보드 권한이 사용될 수 있습니다.
저장 블로그와 블로그 활동 알림
사용자가 블로그를 저장하면 검증된 네이버 블로그 ID와 주소, 네이버 RSS에서 확인한 공식 블로그명, 사용자가 선택한 카테고리와 블로그별 일일 목표를 저장합니다. 카테고리와 공식 이름을 입력하거나 확인하지 못한 경우 해당 값은 비워 둡니다.
사용자가 활동 알림을 명시적으로 켜면 국내 휴대전화 번호, 알림 시각, 동의 시각과 중복 방지·재시도에 필요한 최신 처리 상태를 저장합니다. 전화번호는 서버 키를 이용한 AES-256-GCM 방식으로 암호화하며 화면에는 마스킹해 표시합니다. 설정한 시각에 목표가 있는 메인 블로그 1개와 서브 블로그 최대 2개의 당일 공개 글 수를 네이버에서 확인하고 목표 달성 여부와 관계없이 역할별 현재 수·목표 수와 전체 달성률을 SOLAPI에 제공해 카카오 알림톡을 발송합니다. 블로그명, 블로그 ID, 글 제목, 실제 분석 결과와 알림 문구 원문은 SOLAPI에 제공하거나 장기 이력으로 저장하지 않습니다.
알림을 명시적으로 해제하면 전화번호와 알림 설정을 즉시 삭제하되 블로그별 일일 목표는 유지합니다. 메인 블로그나 해당 목표가 없으면 설정을 보존하되 발송을 중지하며, 회원 탈퇴 최종 정리 시 설정과 저장 블로그 정보는 함께 삭제됩니다. 대상 블로그 중 하나라도 네이버 조회에 실패하면 30분 안에서 최대 3회 전체 확인하고 끝내 모두 확인할 수 없으면 부분 알림을 보내지 않습니다.
예약 알림의 중복 방지와 장애 확인을 위해 회원번호·한국시간 날짜별 실행 식별자, 설정 버전, 예정·시도·접수·완료 시각, 처리 상태·횟수·표준 오류 코드와 SOLAPI 접수 식별자를 7일간 보관한 뒤 삭제합니다. 알림 해제 후에도 이 최소 기록은 같은 기간 유지하며 회원 최종 탈퇴 정리 시 삭제합니다. 실행 기록에 전화번호, 블로그 식별자, 실제 글 수와 메시지 원문을 추가 보관하지 않습니다. SOLAPI에는 개별 요청 결과를 연결할 임의 실행 식별자를 함께 전달합니다. 애플리케이션 운영 로그에는 개인별 내용 대신 건수와 지연 시간의 집계만 남깁니다. 접수 여부가 불명확한 발송은 중복 방지를 위해 자동 재발송하지 않습니다.
피드백과 알림
피드백 유형, 내용, 회원번호, 닉네임, 쿼리를 제외한 페이지 경로와 접수 시각은 Discord로 전달됩니다. 신규가입 알림에는 회원번호, 닉네임, 인증 이메일과 가입 시각이 전달됩니다. 원문은 애플리케이션 DB나 로그에 저장하지 않으며 Discord 메시지는 운영 정책에 따라 보관됩니다.
결제와 환불
7일 또는 30일 이용권 결제 시 PortOne 및 KG이니시스에 결제번호, 상품명, 금액, 통화와 구매자가 입력한 이름·연락처·이메일을 결제 처리 목적으로 전달합니다. 결제 화면의 구매자 입력값은 브라우저와 서버 요청 메모리에서만 처리하며 업스토리 데이터베이스, 브라우저 저장소, URL과 애플리케이션 로그에 저장하지 않습니다. 결제 화면을 닫으면 입력값을 초기화합니다. 0원 쿠폰 지급에는 구매자 정보를 요구하거나 결제대행사로 전송하지 않습니다. 카드번호, 계좌번호, 결제수단 상세와 PG 원문 응답은 업스토리가 저장하지 않습니다.
업스토리는 결제·환불 확인과 법정 의무 이행을 위해 결제번호, 회원번호, 상품 코드, 금액·통화, 결제·이용 기간, 상태, 환불 요청 사유·금액·상태, 관리자 처리 사유, 정책 버전과 동의 시각을 보관합니다. 성공한 거래와 환불 기록은 5년간 보관합니다. 탈퇴 최종 처리 시 거래 기록의 회원 연결을 제거하고 결제번호 중심의 최소 기록만 남깁니다. 실패하거나 완료되지 않은 결제 준비 기록은 30일 뒤 다음 결제 준비 과정에서 삭제합니다.
할인코드 적용 시 쿠폰 식별자, 구매 당시 코드·조건 버전, 정상가·실제 할인액·실결제액, 회원별 사용 이력과 사용 시각을 기존 구매 원장과 함께 보관합니다. 무료 지급에는 결제대행사로 정보를 전송하지 않습니다. 최종 회원 익명화 시 쿠폰 사용 이력의 회원 연결도 제거합니다. 할인코드를 URL이나 애플리케이션 로그에 기록하지 않습니다.
관리자 운영 정보
권한이 확인된 관리자는 회원 운영을 위해 회원번호, 닉네임, 계정 상태, 가입일, 저장 블로그 수와 최근 키워드 도구 사용일, 이용권 구매·환불 상태와 사용 기간을 조회할 수 있습니다. 관리자 회원 목록에는 인증 이메일과 저장 블로그 주소를 표시하지 않으며 페이지 방문 기록이나 회원 검색어를 새로 수집하지 않습니다. 관리자 작업 기록에는 작업 종류, 대상·처리 관리자 식별자와 처리 시각만 저장하고 소식 원문이나 회원 검색어는 기록하지 않습니다.
이용권 수동 지급·회수에는 대상 회원, 지급 일수와 최초·변경 이용 기간, 원본 이용권 식별자, 처리 관리자, 처리 시각과 표준 사유 코드를 저장합니다. 자유 입력 사유나 결제수단 정보는 추가 수집하지 않습니다. 권한 변경과 중복 처리 방지를 위해 이 기록을 관리하며 최종 회원 익명화 시 대상 및 처리자의 회원 연결을 해제합니다.
소식과 팝업 이미지
운영자가 작성한 소식, 홈 팝업과 첨부 이미지는 Supabase Postgres와 Storage에 저장됩니다. 이미지는 파일 메타데이터를 제거하고 WebP로 변환하며 공개 콘텐츠에 사용되는 이미지만 공개 주소로 제공됩니다. 홈 팝업의 `일주일간 보지 않기`를 선택하면 팝업 식별자, 콘텐츠 버전과 만료 시각이 브라우저 저장소에 7일간 보관됩니다.
탈퇴와 복구
탈퇴 사유 코드와 선택적으로 입력한 상세 사유는 30일 복구 기간 동안 저장됩니다. 탈퇴는 이용권 기간을 중지하거나 자동 환불하지 않으며 복구 시 원래 만료일까지 남은 기간만 다시 이용할 수 있습니다. 계정을 복구하면 탈퇴 사유를 즉시 삭제하며, 복구하지 않으면 Auth 개인정보, 닉네임, 사용하는 블로그와 벤치마킹 블로그, 사용량과 탈퇴 사유를 삭제하고 회원번호와 익명화 상태만 재사용 방지 기록으로 유지합니다. 법정 보존 대상 거래 기록은 회원 연결을 끊어 최소 5년 기록만 유지합니다. 이미 Discord에 전달된 메시지는 유지됩니다.
인프라와 외부 요청
Vercel과 Supabase 인프라에서 보안과 운영을 위한 접속 기록이 처리될 수 있습니다. 일반 분석은 서버가 검증된 식별자로 네이버 공개 서비스와 공식 API에 요청합니다. AI 재구성 URL 입력은 사설·예약 주소를 차단한 공개 HTTPS 웹페이지의 HTML 본문만 요청 메모리에서 사용한 뒤 폐기하며 원문을 응답에 포함하지 않습니다. 사용자가 목표 키워드 검색 확인을 실행할 때는 해당 키워드를 네이버 공식 블로그 검색 API에 전달합니다.
광고와 쿠키
광고 승인 전에는 광고 스크립트와 광고 쿠키를 사용하지 않습니다. 로그인 유지에는 Supabase 인증 쿠키를 사용합니다.
모바일 앱
앱에서는 선택한 사진을 기기에서 JPEG로 변환하고 편집 화면에 전달합니다. 사진과 이미지 결과는 서버에 업로드하지 않습니다. 내보내기와 공유를 위한 기기 임시 파일은 작업 종료 시 정리하며, 1시간이 지난 내보내기 임시 파일은 다음 앱 시작 시 정리합니다. 사용자가 사진 앱 또는 다른 앱에 직접 저장·공유한 파일은 해당 앱에서 관리합니다.
앱 로그인 연결에는 5분 유효한 일회용 식별자와 검증값을 사용합니다. 전달용 인증 정보는 서버에서 암호화하고 소비한 뒤 다시 사용할 수 없으며 만료 후 운영 정리 작업에서 삭제합니다. 로그인 세션은 앱의 웹 화면에 HTTP 전용 쿠키로 보관합니다.
앱 이용권은 Apple App Store 또는 Google Play에서 결제합니다. RevenueCat을 통해 스토어 거래를 검증하며 임의의 고객 식별자, 스토어 거래번호, 상품 코드, 결제 시각·환경·상태를 처리합니다. 업스토리는 카드번호나 스토어 계정 비밀번호를 받지 않습니다. 앱 거래와 처리 기록은 거래 확인을 위해 보관하며 최종 탈퇴 시 업스토리 회원 연결을 해제합니다.
앱 알림에 동의하면 Firebase Cloud Messaging과 Apple Push Notification service를 이용합니다. 전화번호 없이 임의 기기 식별자, 암호화한 푸시 토큰, 동의 여부·시각과 알림 시각을 보관합니다. 잠금 화면에는 블로그 주소·목표 수치 대신 일반 활동 안내를 표시합니다. 발송 상태와 중복 방지 기록은 7일 뒤 삭제합니다. 알림 해제·로그아웃·탈퇴 시 해당 기기의 서버 토큰을 비활성화하고 지웁니다.
Firebase Crashlytics가 활성화된 앱에서는 앱 버전, 기기·운영체제 정보와 오류 스택을 장애 분석에 이용합니다. 직접 기록하는 오류에는 사진, 입력 URL, 블로그 ID, 분석 결과, 로그인 토큰과 결제 원문을 포함하지 않습니다. 운영체제와 외부 서비스 자체 보관 정책은 해당 제공자의 정책을 따릅니다.
문의
운영사 주식회사 크레브, 대표 이정민 · support@crev.kr