법률 검토 전 초안입니다. 실제 서비스 공지/약관에 반영하려면 법무 검토가 필요합니다.
Security & Data Behavior
보안 및 데이터 처리 안내
이 페이지는 실제 코드의 기능(권한, 발행 조건, 저장·삭제 경로)을 기준으로 생성했습니다. 아래 내용은 개인정보처리방침과 데이터 삭제 안내를 보완합니다.
읽어오는 정보
Instagram 연결 계정: 프로필·미디어 읽기
instagram_business_basic 권한으로 연결한 본인 계정의 프로필(계정 식별자, 사용자명, 이름, 프로필 사진, 계정 유형, 공개 지표)과 미디어 정보를 읽어 계정 확인과 게시물 선택에 사용합니다.
Instagram 계정·미디어 인사이트
instagram_business_manage_insights 권한으로 연결한 계정과 해당 계정 소유 미디어의 통계를 조회해 표시합니다. 조회 가능 여부는 실제 부여받은 권한과 HypeDuck의 접근 정책에 따릅니다.
Instagram DM 대화 표시
instagram_business_manage_messages 권한으로 연결한 계정의 DM 대화·참여자·메시지 식별자, 메시지 본문과 시각을 처리해 대화를 표시하고 사용자의 명시적인 답장 요청에 사용합니다. 자동응답을 켠 경우에는 새로 받은 메시지의 본문을 키워드와 비교하는 데에도 처리합니다.
Facebook 로그인으로 따로 연결한 Instagram 계정 (삭제·좋아요용)
사용자가 직접 Facebook 로그인으로 연결하면 instagram_basic, pages_show_list, pages_read_engagement 권한으로 Facebook 사용자 식별자, 접근 가능한 페이지 목록과 역할, 페이지에 연결된 Instagram 계정(식별자·사용자명·이름·프로필 사진)과 본인 게시물·스토리 목록을 읽어 연결할 계정을 확인하고 대상을 고르는 데 사용합니다. 삭제·좋아요를 켠 경우에만 각각 instagram_manage_contents, instagram_manage_engagement(+pages_read_user_content)를 추가로 요청하고, 댓글 좋아요는 댓글 목록을 위한 instagram_manage_comments, 공개 계정 좋아요는 공개 계정 게시물 조회를 위한 instagram_manage_insights를 추가로 요청합니다. 이 연결은 Instagram 로그인 연결과 별개이며 계정을 옮기지 않고, 사용자명이 같다는 이유만으로 두 연결을 합치지 않습니다. 실제로 부여받은 권한과 HypeDuck의 승인 정책이 허용하는 기능만 켜지며, 일반 사용자 대상의 모든 권한에 대한 Meta 승인을 의미하지는 않습니다.
게시(발행) 조건
Instagram 미디어 발행 (사용자 확인 시)
instagram_business_content_publish 권한은 연결한 계정에 사용자가 선택하고 확인한 미디어와 캡션을 발행하는 데 사용합니다. 실제 부여받은 권한과 HypeDuck의 접근 정책을 충족해야 발행할 수 있습니다.
Instagram 예약 게시 (사용자가 시각을 정한 경우)
instagram_business_content_publish 권한으로, 사용자가 직접 고르고 확정한 사진·릴스·묶음·스토리와 캡션을 사용자가 정한 시각(지금부터 2분 뒤에서 30일 안)에 연결한 계정에 자동으로 게시합니다. 예약을 만드는 확인이 곧 게시 승인이며, 시각이 되면 다시 묻지 않고 서버가 게시를 요청합니다. 게시 직전에 연결·권한·계정 유형을 다시 확인하고 허용되지 않으면 게시하지 않으며, 정한 시각에서 15분이 넘게 지나도 게시하지 않고 놓친 것으로 표시합니다. 게시 요청이 나가기 전에는 예약을 취소할 수 있고 처리가 시작되기 전에는 시각을 바꿀 수 있습니다(내용을 바꾸려면 취소하고 새로 예약). 게시 요청이 이미 나갔다면 취소할 수 없습니다. 결과를 확인하지 못하면 같은 요청을 다시 보내지 않고 Instagram에서 직접 확인이 필요하다고 표시합니다. 스토리 예약은 캡션과 AI 표시를 보내지 않으며, 계정 유형 자격이 확인된 계정이나 지정된 심사 계정에서만 쓸 수 있습니다.
Instagram 내 미디어의 댓글 조회·관리
instagram_business_manage_comments 권한으로 연결한 계정 소유의 미디어에 달린 댓글을 읽고, 사용자가 확인한 답글 작성·숨김·삭제 작업을 요청합니다. 서버에서 미디어와 댓글의 소속을 확인합니다. 여기서 삭제 대상은 댓글이며 Instagram 게시물 자체의 삭제 기능을 뜻하지 않습니다.
인스타그램 댓글 키워드로 자료 보내기
사용자가 게시물과 키워드·답장·자료 링크를 정하고 직접 켠 경우, instagram_business_basic 및 instagram_business_manage_comments 권한으로 해당 게시물의 새 댓글을 확인해 자료를 비공개 답장으로 한 번 보냅니다. 댓글은 작성 후 7일 이내여야 하며, 같은 댓글에 중복 발송하지 않습니다. 이 규칙으로 후속 메시지를 보내지는 않습니다.
Instagram DM 답장 (사용자 확인 시)
instagram_business_manage_messages 권한을 통한 이 항목의 답장은 사용자가 작성하고 확인한 경우에만 요청합니다. 키워드 자동응답은 별도 항목에서 설명합니다. 서버는 현재 연결 계정과 권한, 최근 24시간 이내 상대방에게서 받은 수신 메시지 근거를 확인합니다. 선택 기능인 담당자 7일 답장은 기본적으로 꺼져 있고 검수용으로 허용한 계정이나 Meta가 Human Agent 기능을 승인한 뒤에만 열립니다. 이 경우에도 상대방의 가장 최근 메시지로부터 24시간이 지나고 7일이 지나기 전에, 사용자가 직접 작성하고 확인한 답장만 HUMAN_AGENT 태그를 붙여 보내며, 서버가 보내기 직전에 그 기간과 같은 권한을 다시 확인합니다. 자동응답·AI가 만든 문장·홍보 메시지는 이 방식으로 보내지 않습니다. 메시지 전달이나 읽음 확인을 보장하지 않습니다.
Instagram DM 키워드 자동응답 (사용자가 켠 경우)
사용자가 키워드와 답장 문구를 정하고 직접 켠 경우에만 동작합니다. 새로 받은 텍스트 DM이 최근 24시간 이내에 받은 것이고 키워드가 들어 있으면, 사용자가 작성한 문구를 텍스트 답장으로 보냅니다. 같은 메시지에는 중복 발송하지 않습니다. instagram_business_manage_messages 권한으로 수신 메시지 본문을 읽어 키워드와 비교하며, 이 기능을 위해 새 권한을 추가로 요청하지 않습니다. 켜거나 설정을 고친 뒤에 받은 메시지에만 답하고 그 전에 받은 메시지에는 답하지 않습니다. 받은 메시지에 "상담원"이 들어 있으면 답장을 보내지 않고 그 대화의 자동응답을 멈춘 뒤 담당자 응대로 전환합니다. 사용자가 직접 답장하거나 [담당자 응대]를 눌러도 같은 대화의 자동응답이 멈추며, 사용자가 [자동응답 재개]를 누르기 전에는 다시 시작하지 않습니다. 이미 접수된 자동응답은 취소할 수 없습니다. AI가 만든 문장은 보내지 않고 사용자가 쓴 문구만 보내며, 메시지 전달이나 읽음 확인을 보장하지 않습니다.
Facebook 연결: 좋아요·좋아요 취소 (사용자 확인 시)
instagram_manage_engagement 권한은 사용자가 직접 누른 좋아요 또는 좋아요 취소 한 건을 본인 게시물, 본인 게시물의 댓글·답글, 공개된 비즈니스·크리에이터 계정의 게시물에 보내는 데 사용합니다. 서버가 대상의 출처를 확인한 목록에서만 보내며(임의 식별자 입력 불가), 비공개 계정과 스토리는 지원하지 않습니다. 대량·예약·자동 실행은 하지 않으며 같은 계정의 요청은 한 번에 하나씩, 간격을 두고 보냅니다. 전달을 보장하지 않으며 결과를 확인하지 못하면 확인이 필요하다고 표시합니다.
Threads 게시물 발행 (연결 + 동의 시에만)
Threads 계정을 연결하고 threads_content_publish 항목에 동의한 사용자만 Threads에 게시할 수 있습니다. 대시보드에서 즉시 발행하거나, 예약 발행(지정한 시각에 서버 또는 확장이 자동 실행)을 선택할 수 있습니다. 두 경우 모두 사용자가 직접 작성·확정한 게시물만 발행되며, 연결/동의가 없는 계정이나 사용자가 만들지 않은 게시물의 임의 발행은 없습니다.
Threads 타래 답글 발행 (사용자 작성·확정 시에만)
threads_manage_replies 권한은 사용자가 해당 발행 건에 직접 작성하고 최종 확인한 타래 답글을 순서대로 게시하는 데만 사용합니다. 본문을 발행한 뒤 실제 반환된 게시물 ID를 첫 답글의 대상으로 쓰고, 이후 각 답글도 직전에 반환된 게시물 ID에 연결합니다. HypeDuck은 관련 없는 대화나 다른 사용자의 콘텐츠를 임의로 관리하지 않습니다.
확장 프로그램 분석·다운로드
Instagram 프로필·캡션의 페르소나 활용
연결한 Instagram 계정의 프로필과 최근 게시물 캡션은 대본·캡션을 개인화하는 페르소나 구성에도 사용합니다.
확장 프로그램의 페이지 분석·다운로드
Chrome 확장은 사용자가 스캔을 실행한 Instagram 페이지에서 공개 릴스 정보(캡션, 썸네일, 공개 지표 등)를 분석하고, 분석 파이프라인에 사용할 미디어를 다운로드합니다. 이 분석/다운로드 능력은 web 앱과 확장이 공유하는 capability 계약(analysis/collection/download)으로 표현됩니다.
저장되는 데이터
Instagram 예약 기록
예약마다 게시 종류, 정한 시각과 시간대, 캡션과 AI 생성 표시, HypeDuck 사용자·연결 식별자, 예약 시점의 Instagram 계정 식별자·앱 식별자·앱 범위 사용자 식별자·계정 유형·부여 권한, 요청 키와 단방향 해시, 보관한 사본의 위치·크기·형식·버전 지문, 진행 상태와 오류 코드, 처리·취소·게시 요청 시각, 게시된 경우 Instagram 결과 식별자를 데이터베이스에 저장합니다. 같은 작업의 Instagram 작업 기록(요청 해시·상태·공급자 결과 식별자)과 스토리 수명·컨테이너 처리 결과를 담은 부속 기록, 사본 정리를 위한 참조 기록(사용자·연결 식별자, 참조를 만든 시점의 Instagram 앱 식별자·앱 범위 사용자 식별자, 요청 키, 정리 상태와 시각이며 파일 내용은 없음)도 남습니다.
Instagram 예약 게시용 미디어 사본
예약을 만들 때 고른 파일을 HypeDuck 클라우드 저장소에 바꿀 수 없는 사본으로 복사해 두고, 게시할 때는 원본이 아니라 이 사본을 씁니다. 사본 경로에는 사용자 식별자, 요청 식별자, 무작위 시도 식별자가 들어갑니다. 게시 때 Instagram이 이 저장소 주소에서 파일을 가져갑니다. 게시 직전에는 사본이 처음 복사한 파일과 같은지(크기·형식·버전 지문)만 확인하며, 달라졌으면 게시하지 않습니다. 예약에 연결되지 못한 임시 사본은 별도로 정리합니다.
Instagram DM 답장 작업 기록
DM 답장 작업 원장에는 요청 식별자·해시·상태·공급자 결과 식별자와 일반 답장·담당자 7일 답장 구분을 저장하며, 답장 본문을 작업 데이터로 저장하지 않습니다. 이는 작업 원장의 저장 범위에 관한 설명입니다.
Instagram DM 답장 상태 복구
브라우저 탭의 DM 답장 상태 복구 데이터에는 요청 키만 저장합니다. 메시지 본문은 이 복구 데이터에 포함하지 않습니다.
Instagram DM 답장 가능 시간 기록
웹훅으로 연결 계정·상대방·메시지 식별자, 최근 수신 시각과 만료 시각을 저장해 답장 가능 시간을 확인합니다.
Instagram DM 자동응답 기록
자동응답을 위해 네 가지를 저장합니다. 규칙에는 키워드와 답장 문구, 켜짐 여부와 켠 시각이 들어 있으며 끄더라도 연결이 삭제될 때까지 남습니다. 발송 기록에는 발송 상태와 오류 코드, 상대방 식별자, 요청 키와 공급자 결과 식별자, 시각이 들어 있고 받은 메시지 본문은 저장하지 않습니다. 중복 발송 방지 기록에는 앱·계정·메시지 식별자를 단방향 해시한 값과 만료 시각만 있고 메시지 본문과 원래 식별자는 없습니다. 담당자 응대 상태에는 앱·계정 식별자, 상대방 식별자, 응대 전환·재개 시각과 전환 사유가 들어 있습니다. 답장을 보낼 때는 기존 DM 답장 작업 기록에도 요청 해시·상태·결과 식별자가 남으며 답장 본문은 저장하지 않습니다. 이는 자동응답 기록의 저장 범위에 관한 설명입니다.
Facebook 연결 기록
연결에는 Facebook·Instagram 계정 식별자, 페이지 이름, 사용자명, 부여된 권한, 토큰 만료 시각이 저장되며 Facebook 사용자 액세스 토큰은 암호화하여 저장합니다. 연결 도중의 임시 기록은 10분 안에 만료되고 만료 시 암호화된 토큰을 지웁니다. 삭제·좋아요 작업 기록에는 요청 키, 대상 식별자, 상태, 오류 코드, 시각이 남으며 게시물 내용과 토큰은 저장하지 않습니다.
저장되는 릴스·분석·연결 데이터
릴스 메타데이터, 분석 작업 결과(AnalysisTask), 생성된 스크립트/카피(ReelGeneratedCopy), 연결 계정 식별자·프로필·부여 권한·토큰 만료 시각(SocialConnection), Instagram 작업 기록(InstagramOperation)이 데이터베이스에 저장됩니다. 액세스 토큰은 암호화하여 저장합니다.
확장이 모으는 공개 글 숫자 지표
하입덕 확장은 사용자가 스레드와 인스타그램에서 보는 공개 글의 숫자 지표(조회수, 좋아요, 댓글과 답글, 리포스트, 인용, 공유)와 글 코드, 작성자 아이디, 게시 시각, 작성자 팔로워 수, 인스타그램 글 형식(릴스, 동영상, 사진, 캐러셀)을 하입덕 서버에 모읍니다. 스레드와 인스타그램을 따로 저장하며, 글마다 최신값 한 줄과 게시 7일 안 글의 시간대별 기록을 남깁니다. 누가 봤는지 알 수 없도록 열람한 사람의 계정, 기기, 보던 주소는 함께 저장하지 않고, 본문과 사진, 영상도 저장하지 않습니다. 작성자 계정이 공개로 확인된 글만 모읍니다. 이를 위해 Meta에 요청을 더 보내지 않고 확장이 이미 받은 값만 씁니다. 이 데이터는 터진 글 찾기, 순위 같은 하입덕 기능에 씁니다.
삭제 방법
Instagram 예약 사본·기록의 결과 확정 뒤 정리
사본은 결과가 확정된 뒤에만 지웁니다. 확정은 Instagram이 게시를 확인해 결과 식별자를 받은 경우, Instagram이 컨테이너 오류나 만료를 알려 게시되지 않았음이 확인된 경우, 취소·놓침·차단되었고 Instagram으로 생성 요청이 나가지 않았음이 확인된 경우입니다. 확정된 때로부터 최소 24시간이 지난 뒤 정리 작업이 사본을 삭제하고, 예약 기록은 종료 후 30일이 지나면(사본이 이미 삭제된 확정 건만) 삭제합니다. 처리 시간 초과·결과 불명·요청이 나갔을 수 있는 취소나 차단처럼 결과를 확인하지 못한 경우에는 사본과 기록을 자동으로 만료시키지 않고 계속 보관합니다. 컨테이너 식별자를 아는 경우 정리 작업이 시간당 한 번, 최대 24번 Instagram에서 상태를 읽어 확정을 시도하며, 알 수 없는 경우는 운영자가 확인해 닫거나 삭제 요청이 처리될 때까지 남습니다. 예약에 연결되지 못한 임시 사본은 만든 지 2시간이 지난 뒤에만 지우고, 늦게 도착한 복사 결과를 지우기 위해 2시간 간격으로 최대 48번 다시 확인하며 그래도 복사 종료가 증명되지 않으면 지우지 않고 보고만 합니다. 정리는 처리량이 제한된 배치로 진행되어 기한 직후 삭제 완료를 보장하지 않습니다.
Instagram 예약 사본의 연결·탈퇴 삭제와 삭제 요청
연결이나 계정이 삭제되면 그 예약 기록과 Instagram 작업 기록·부속 기록은 함께 삭제됩니다. 보관 사본의 정리 참조는 따로 남으므로, 연결 해제·연결된 계정 삭제·회원 탈퇴·검증된 Meta 삭제 요청은 부모를 지우는 같은 처리 안에서 먼저 그 사용자·연결의 참조에 삭제 요청 표시를 합니다(검증된 Meta 삭제 요청은 참조를 만들 때 적어 둔 앱 식별자·앱 범위 사용자 식별자가 같은 참조에 닿으며, 이미 연결을 해제한 뒤에도 마찬가지입니다). 표시가 실패하면 연결이나 계정도 지워지지 않습니다. 표시가 선 뒤에는 결과가 확정되지 않은 사본이라도 정리 작업이 사본을 삭제하고 새 복사는 시작되지 않습니다. 이미 시작된 복사가 늦게 끝날 수 있어, 복사 종료가 확인될 때까지 정리 작업이 2시간 간격으로 최대 48번 다시 지우고 그래도 확인되지 않으면 표시를 유지한 채 보고합니다(시간이 지났다는 이유로 완료로 처리하지 않습니다). 정리는 배치로 진행되어 삭제 요청 직후 삭제 완료를 보장하지 않으며, 검증된 Meta 삭제 요청의 영수증은 사본 삭제가 실제로 끝나기 전까지 추가 확인이 필요한 상태로 남고 같은 요청의 재전송이나 상태 조회로 확정됩니다. 참조를 만들 때 식별자를 적지 못한 이전 참조는 누구의 것인지 추정하지 않으므로 어떤 Meta 삭제 요청에도 묶지 않고 검토가 필요한 상태로 남깁니다. 이미 Instagram으로 보낸 요청과 이미 게시된 게시물은 되돌리지 못하며, 이는 Instagram 게시물을 삭제하는 기능이 아닙니다.
만료된 Instagram DM 시간 기록 정리
만료된 DM 답장 가능 시간 기록은 처리량이 제한된 배치로 정리합니다. 답장 가능 시간이 끝나는 순간 기록의 삭제까지 완료된다고 보장하지 않습니다.
Instagram DM 자동응답 기록 정리
규칙과 발송 기록은 연결이 삭제될 때 함께 삭제됩니다. 발송 기록은 생성 30일이 지나면, 중복 발송 방지 기록은 메시지를 받은 시각으로부터 약 25시간이 지나면 정리 대상이 되며 이 방지 기록은 연결을 삭제해도 그때까지 남습니다. 담당자 응대 상태는 계정에 연결이 남아 있는 동안 보관하고, 자동 모드로 2일 동안 쓰이지 않은 기록은 정리합니다. 연결이 모두 사라진 계정의 응대 상태는 정리 작업이 이를 처음 확인한 날부터 30일 뒤에 삭제하며, 그 사이 다시 연결되면 계속 보관합니다. 사용자가 직접 연결을 해제해도 이 응대 상태는 바로 삭제되지 않습니다. 검증된 Meta 삭제 요청으로 연결을 삭제할 때와 회원 탈퇴로 연결이 사라질 때는 같은 계정에 남은 연결이 없으면 응대 상태도 바로 삭제합니다. 정리는 처리량이 제한된 배치로 진행하므로 기한이 지난 직후 삭제 완료를 보장하지 않습니다.
Facebook 연결: 본인 Instagram 게시물 삭제 (사용자 확인 시)
instagram_manage_contents 권한은 사용자가 목록에서 직접 고르고 되돌릴 수 없다는 안내를 확인한 본인 게시물(광고 제외, 스토리·릴스 포함)만 삭제하는 데 사용합니다. 캐러셀은 앨범 전체가 삭제되며 일부만 삭제할 수 없습니다. 서버가 계정 소유와 게시물 종류를 다시 확인하고, 한 번의 확인당 삭제 요청을 한 번만 보내며 자동 재시도하지 않습니다. 결과를 확인하지 못하면 삭제 여부를 단정하지 않고 확인이 필요하다고 표시합니다.
Facebook 연결 해제·삭제와 기록 보관
Facebook 연결만 해제하면 그 연결의 토큰과 진행 중인 임시 연결 기록을 삭제하고 아직 보내지 않은 요청을 취소하며 Instagram 로그인 연결은 유지됩니다. 이미 보냈거나 결과를 확인하지 못한 작업 기록은 같은 요청을 실수로 되풀이하지 않도록 토큰 없이 남깁니다. Meta의 앱 제거(deauthorize) 요청을 받으면 해당 Facebook 사용자의 모든 연결 토큰을 지웁니다. 검증된 Meta 데이터 삭제 요청과 회원 탈퇴는 연결, 임시 기록, 작업 기록을 모두 삭제합니다. 끝난 임시 연결 기록과 보내지 않은 채 거절된 요청 기록은 30일 뒤 정리되며, 정리는 처리량이 제한된 배치로 진행되어 기한 직후 삭제 완료를 보장하지 않습니다.
공개 글 숫자 지표 보관 기간
확장이 모은 공개 글 숫자 지표 중 글별 최신값은 마지막으로 관측된 뒤 180일이 지나면, 시간대별 기록은 30일이 지나면 정리 작업이 지웁니다. 정리는 처리량이 제한된 배치로 진행되어 기한 직후 삭제 완료를 보장하지 않습니다.
데이터 삭제 경로
설정에서 연결을 해제하면 저장된 연결과 토큰을 삭제합니다. 작성한 콘텐츠·페르소나·분석 결과까지 자동으로 모두 삭제되지는 않습니다. 검증된 Meta 삭제 요청은 해당 연결 데이터의 삭제 접수 코드와 처리 상태를 제공합니다. 과거 연결이나 복사된 데이터는 추가 검토가 필요할 수 있습니다. 이메일로 더 넓은 범위의 삭제를 요청할 수 있으나 요청 접수 자체가 삭제 완료를 뜻하지는 않습니다. 상세 절차는 /data-deletion에서 확인할 수 있습니다.
Threads 게시물 삭제 (HypeDuck 공식 발행분 + 재확인)
threads_delete 권한은 연결한 본인이 HypeDuck의 공식 Threads API로 발행한 자기 게시물을 플래너에서 삭제할 때만 사용합니다. 서버가 사용자 소유 발행 원장에서 계정과 게시물 ID를 확인하며, 사용자가 임의의 Threads 게시물 ID를 입력하거나 바꿀 수 없습니다. 되돌릴 수 없다는 별도 경고를 읽고 다시 확인해야 실제 삭제를 요청합니다.
한계 및 보장하지 않는 것
Instagram 기능의 권한·접근 조건
Instagram 기능은 실제 부여받은 권한과 HypeDuck의 승인 권한·심사 계정 접근 정책이 허용하는 경우에만 사용할 수 있습니다. 지정된 심사 계정으로 이용이 제한될 수 있으며, 기능 구현이 일반 사용자 대상의 모든 권한에 대한 Meta 승인을 의미하지 않습니다.
플랫폼 자체 제재에 대한 보장 없음
HypeDuck은 Instagram, Threads, Kakao 등 연동 플랫폼이 자체 정책에 따라 내리는 조치(계정 제한, 정지 등)를 막거나 발생하지 않는다고 보장할 수 없습니다. 각 플랫폼의 이용약관 준수 여부에 대한 최종 책임은 사용자에게 있습니다.