BugShot

BugShot 개인정보처리방침

시행일: 2026년 7월 4일

BugShot(이하 "확장 프로그램")은 사용자의 개인정보를 소중히 여기며, 최소한의 정보만 수집·처리합니다. 본 방침은 확장 프로그램이 어떤 정보를 다루는지 투명하게 안내합니다.


1. 수집하는 정보

플랫폼 자격 증명 및 사용자 정보

정보수집 시점목적
Jira 자격 증명 (API Token 또는 OAuth 토큰)Jira 연동 설정 시이슈 생성 및 첨부
Jira 사용자 이메일연동 검증 시연동 상태 표시
GitHub 자격 증명 (PAT 또는 OAuth 토큰)GitHub 연동 설정 시이슈 생성 및 파일 업로드
GitHub 사용자 ID연동 검증 시연동 상태 표시
Linear 자격 증명 (API Key 또는 OAuth 토큰)Linear 연동 설정 시이슈 생성 및 첨부
Linear 사용자 이름·이메일연동 검증 시연동 상태 표시
Notion 자격 증명 (Internal Integration Token 또는 OAuth 토큰)Notion 연동 설정 시페이지 생성 및 첨부
Notion 워크스페이스 정보연동 검증 시연동 상태 표시
GitLab 자격 증명 (Personal Access Token 또는 OAuth 토큰)GitLab 연동 설정 시이슈 생성 및 파일 업로드
GitLab 사용자 이름·이메일 및 인스턴스 URL연동 검증 시연동 상태 표시 (self-managed 인스턴스 주소 포함)
Asana 자격 증명 (Personal Access Token 또는 OAuth 토큰)Asana 연동 설정 시작업(task) 생성 및 파일 업로드
Asana 사용자 이름·이메일연동 검증 시연동 상태 표시
ClickUp 자격 증명 (Personal API Token 또는 OAuth 토큰)ClickUp 연동 설정 시작업(task) 생성 및 파일 업로드
ClickUp 사용자 이름·이메일연동 검증 시연동 상태 표시
Slack 자격 증명 (OAuth user token)Slack 연동 설정 시채널/DM 메시지 전송 및 파일 업로드
Slack 사용자 이름·워크스페이스(team) 정보연동 검증 시연동 상태 표시

담당자·CC(참조)·멘션 대상

담당자·CC(참조)·Slack 멘션 등 사용자를 선택하는 필드를 사용하면 입력한 검색어로 연동된 플랫폼(Jira·GitHub·Linear·Notion·GitLab·Asana·ClickUp·Slack)의 사용자 디렉터리를 조회해 후보(이름·핸들·아바타·이메일)를 표시합니다. 이미 선택된 사용자를 목록 상단에 표시하기 위해 해당 사용자의 프로필(이름·아바타·이메일)을 추가로 조회할 수 있습니다. 사용자가 선택한 대상의 식별자는 생성되는 이슈 본문(또는 Slack 메시지)에 포함되어 해당 플랫폼으로 전송됩니다. 검색어와 조회된 후보·프로필 목록은 기기에 저장되지 않습니다.

페이지 데이터 및 디버그 정보

정보수집 시점목적
DOM 요소 스타일 정보요소 선택 시스타일 비교 및 이슈 본문 생성
스크린샷·탭 영상캡처/탭 녹화 시현재 탭 화면을 캡처해 이슈 첨부
에디터 인라인 이미지이슈 본문에 화면 일부 삽입 시현재 탭 화면을 캡처(captureVisibleTab)해 선택 영역만 잘라 본문에 삽입
화면 녹화 영상화면 녹화 모드 선택 시브라우저 화면 공유 다이얼로그로 사용자가 직접 선택한 대상(전체 화면·다른 앱 창·다른 탭 등 BugShot이 열린 탭 밖 화면도 포함될 수 있음)을 녹화해 이슈 첨부
네트워크 요청 로그디버그 캡처 활성화 시이슈 첨부 (디버그 정보)
WebSocket 메시지 (텍스트 프레임 본문)디버그 캡처 활성화 시이슈 첨부 (디버그 정보 — 송수신 텍스트 메시지, 바이너리 제외)
콘솔 로그디버그 캡처 활성화 시이슈 첨부 (디버그 정보)
사용자 액션 로그 (클릭·입력·페이지 이동·단축키 입력·토글·드롭다운 선택·드래그)디버그 캡처 활성화 시이슈 첨부 (재현 단계 — 영상 모드에 한해 첨부)
30초 리플레이 프레임30초 리플레이 활성화 시현재 탭 화면을 주기적으로 캡처해 직전 30초를 메모리에 임시 보관 (미저장·미전송, 사용자가 명시적으로 캡처할 때만 영상으로 첨부)
사용자 첨부 파일파일 첨부 기능 활성화 후 이슈에 파일 첨부 시 (선택 기능, 기본 꺼짐)사용자가 직접 선택한 임의의 로컬 파일을 이슈에 첨부

네트워크 로그 수집 시 authorization, cookie 등 민감 헤더와 token, access_token 등 민감 쿼리 파라미터는 자동으로 마스킹 처리됩니다. 요청·응답 본문(JSON·폼 데이터)에 포함된 token, password, secret 등 민감 키의 값도 자동으로 마스킹됩니다. 페이지가 WebSocket으로 주고받는 실시간 메시지의 경우 텍스트 프레임 본문만 수집되며(이미지·파일 등 바이너리 프레임은 수집하지 않음), 위와 동일한 본문 마스킹이 적용됩니다. 콘솔 로그는 페이지가 출력한 메시지를 원문 그대로 수집하므로(별도 마스킹 없음), 민감 정보를 콘솔에 출력하는 페이지에서는 디버그 캡처 시 유의하시기 바랍니다.

디버그 캡처 시 콘솔·네트워크 로그는 현재 페이지 본문뿐 아니라 그 페이지에 삽입된 다른 출처(third-party) 프레임(iframe — 예: 결제 위젯, 임베드 SDK)에서 발생한 콘솔·네트워크 로그도 함께 수집할 수 있습니다. 이는 해당 프레임에서 일어나는 오류가 버그 재현에 필요하기 때문이며, 수집된 로그에는 출처(origin) 정보가 함께 기록되어 이슈 첨부 시 출처별로 구분·필터할 수 있습니다. 위 민감 헤더·파라미터·본문 마스킹은 프레임 출처와 무관하게 동일하게 적용됩니다.

요소 선택·스타일 편집과 요소 캡처도 페이지에 직접 삽입된 다른 출처(cross-origin) 프레임(iframe — 결제 위젯·임베드 등) 내부 요소로 확장됩니다. 해당 프레임 안의 요소를 선택하면 그 요소의 선택자·스타일 정보·텍스트를 수집하고, 프레임 출처(origin)를 함께 기록해 이슈의 스타일 변경 목록에 표시합니다. iframe 내부 요소를 캡처하면(현재 탭 화면을 캡처해 해당 요소 영역만 잘라내는 방식) 그 프레임의 화면 내용이 스크린샷에 포함될 수 있습니다. 프레임 안에 또 프레임이 겹쳐 있거나(중첩) 보안 정책(sandbox)으로 막힌 프레임은 내부에 접근하지 않습니다.

사용자 액션 로그는 클릭한 요소·입력 필드·페이지 이동에 더해, 단축키·특수키 입력(예: Enter·Esc·⌘K — 인쇄 문자와 입력 필드 값 자체는 기록하지 않습니다), 체크박스·라디오 토글, 드롭다운 선택, 요소를 끌어다 놓는 드래그 동작(끈 요소와 놓은 위치 요소의 식별 정보)을 재현 단계로 기록합니다. 드래그도 기존 클릭과 동일하게 요소의 접근성 이름·선택자만 담으며 새로운 민감 정보를 수집하지 않습니다. 비밀번호·카드번호 등 민감 입력 필드(type=password, autocomplete 힌트, 필드 이름·라벨의 민감 키워드로 판별)의 입력 값은 자동으로 마스킹 처리되며, 해당 민감 필드에 포커스된 동안의 키 입력은 아예 기록하지 않아 원문이 기기를 벗어나지 않습니다.

화면 녹화 중에는 페이지를 이동(다른 사이트로의 이동 포함)하더라도 그동안의 콘솔·네트워크·액션 로그가 끊기지 않고 함께 보존되어, 해당 녹화로 만든 이슈에는 녹화 중 방문한 페이지들의 디버그 로그가 포함될 수 있습니다.

디버그 캡처를 한 번 시작한 적 있는 페이지를 다시 로드하면, 캡처를 재개하는 시점에 해당 페이지 로드 초반(재개 직전)의 콘솔·네트워크·액션 로그도 소급해 함께 포함될 수 있습니다. 이 로드 초반 로그는 캡처를 다시 시작하기 전까지는 기기 메모리에만 임시 보관되며 저장·전송되지 않습니다.

앱 설정

정보수집 시점목적
LLM 프로바이더 설정 (base URL, API 키, 모델)AI 초안 기능 설정 시LLM API 호출

LLM API 키는 난독화하여 저장됩니다.

Chrome 내장 AI(Prompt API)를 지원하는 브라우저에서는 외부 API 호출 없이 온디바이스 모델로 초안을 생성할 수 있습니다. 이 경우 데이터가 사용자의 기기를 벗어나지 않으며, 별도의 API 키가 필요하지 않습니다.

익명 사용량 집계

확장 프로그램은 제품 개선을 위해 익명 집계 이벤트를 수집합니다(2026년 6월 19일 시행).

정보수집 시점목적
설치(extension_installed, 확장 버전)신규 설치 시설치 규모·버전 분포 파악
사이드 패널 열기(sidepanel_opened)사이드 패널을 열 때활성화 정도 파악
플랫폼 연결(platform_connect: 플랫폼·성공/취소/실패)OAuth 연결 시도 시연동 플랫폼별 인기도·연결 성공·취소·실패 비율 파악
플랫폼 연결 해제(platform_disconnected: 플랫폼)연결 해제 시연동 이탈 파악
이슈 제출(issue_submitted: 플랫폼·캡처 모드·제출 결과·리플레이 트림 여부)이슈 제출 시플랫폼별 사용량·캡처 방식 우선순위·제출 성공·실패 비율·30초 리플레이 트리밍 사용률 파악

이 이벤트들은 위 분류 문자열만 담으며, 이슈 제목·본문·URL·개인 식별 정보는 일절 포함하지 않습니다. 같은 설치를 구분하기 위해 설치 시 무작위 식별자(distinct_id)를 한 번 생성해 기기에 저장하고 이후 이벤트에 함께 보냅니다. 이 식별자는 무작위 값일 뿐 이메일·계정·IP 등 어떤 개인정보와도 연결되지 않습니다. 실제 IP 주소가 저장되지 않도록 이벤트에 IP 값을 0.0.0.0으로 실어 보내고, 위치 추정(GeoIP)도 비활성화하며($geoip_disable), 개인 프로필 생성도 비활성화합니다($process_person_profile: false). 이 집계에는 별도의 옵트아웃(off) 설정이 없습니다.

확장 프로그램은 위 항목 외에 사용자의 브라우징 기록, 쿠키, 개인 식별 정보 등을 수집하지 않습니다.

2. 정보 저장

모든 데이터는 사용자의 브라우저 내부에만 저장됩니다.

외부 서버에 사용자 데이터를 저장하지 않습니다.

3. 외부 전송

확장 프로그램은 아래 서비스에만 데이터를 전송합니다.

대상전송 내용목적
Jira REST API (*.atlassian.net, api.atlassian.com)이슈 본문, 스크린샷, 영상, 디버그 로그이슈 생성 및 첨부
GitHub REST API (api.github.com)이슈 본문, 라벨, 담당자이슈 생성
GitHub (api.github.com, github.com, 및 GitHub가 발급한 업로드 URL[AWS S3])스크린샷, 영상, 디버그 로그파일 업로드
Linear GraphQL API (api.linear.app, 첨부 파일은 Linear가 발급한 업로드 URL)이슈 본문, 스크린샷, 영상, 디버그 로그이슈 생성 및 첨부
Notion REST API (api.notion.com)페이지 본문, 스크린샷, 영상, 디버그 로그페이지 생성 및 첨부
GitLab REST API (gitlab.com 또는 사용자 지정 self-managed 인스턴스)이슈 본문, 라벨, 담당자, 스크린샷, 영상, 디버그 로그이슈 생성 및 파일 업로드
Asana REST API (app.asana.com)작업(task) 본문, 워크스페이스·프로젝트·담당자, 스크린샷, 영상, 디버그 로그작업 생성 및 파일 업로드
ClickUp REST API (api.clickup.com)작업(task) 본문, 워크스페이스·스페이스·리스트·담당자, 스크린샷, 영상, 디버그 로그작업 생성 및 파일 업로드
Slack Web API (slack.com 및 Slack이 발급한 파일 업로드 URL)메시지 본문(제목·상세), 멘션 대상, 스크린샷, 영상, 디버그 로그, 승격 시 트래커 이슈 링크사용자 본인 워크스페이스의 채널/DM에 메시지·첨부 전송 및 트래커 승격 시 원 메시지 스레드에 이슈 링크 자동 댓글
OAuth 프록시 서버OAuth 인가 코드토큰 교환 (Jira, GitHub, Notion, Asana, ClickUp, Slack)
사용자 지정 LLM 프로바이더이슈 본문 초안, 스크린샷 (선택적), 디버그 로그 요약 (선택적)AI 초안 생성
PostHog (us.i.posthog.com)익명 집계 이벤트 (설치·패널 열기·플랫폼 연결/해제·이슈 제출)익명 사용량 집계

OAuth 프록시 서버는 토큰 교환만 중계하며, 사용자 데이터를 저장하거나 로깅하지 않습니다. Linear·GitLab은 PKCE 방식으로 프록시 없이 직접 토큰을 교환합니다.

사용자가 "파일 첨부" 기능으로 직접 선택한 로컬 파일은 이슈(작업) 제출 시 위 각 플랫폼(Jira·GitHub·Linear·Notion·GitLab·Asana·ClickUp)에 본문 첨부로, Slack의 경우 메시지 스레드에 함께 업로드됩니다. 이 기능은 기본적으로 꺼져 있으며, 설정에서 활성화한 경우에만 동작합니다.

GitLab self-managed 인스턴스에 PAT로 연결할 경우, 사용자가 입력한 인스턴스 주소(임의 origin)로 직접 통신합니다. 이 접근은 설치 시 부여되는 필수 광역 호스트 권한(<all_urls>)으로 커버되어 별도의 권한 요청 대화상자 없이 동작합니다.

LLM 프로바이더는 사용자가 직접 설정한 엔드포인트로만 전송되며, 사용자가 AI 초안 생성을 명시적으로 실행할 때에만 동작합니다. 해당 호스트 접근은 필수 광역 호스트 권한(<all_urls>)으로 커버됩니다.

CC(참조) 멘션 검색 시 입력한 검색어는 위 각 플랫폼의 사용자 검색 API로 전송되며, 사용자가 선택한 멘션 대상은 이슈 본문의 일부로 함께 전송됩니다. 모두 사용자가 직접 검색·선택할 때에만 동작합니다.

4. 제3자 공유

수집한 정보를 제3자에게 판매, 공유, 전달하지 않습니다. 사용자가 직접 이슈를 생성하거나 AI 초안을 요청하는 경우에만 해당 플랫폼 또는 사용자가 설정한 LLM 프로바이더로 데이터가 전송됩니다.

5. 데이터 삭제

6. 권한 사용 안내

확장 프로그램 권한

권한사용 목적
sidePanel사이드 패널 UI 표시
activeTab현재 탭의 DOM 요소 정보 수집
scriptingDOM 선택·오버레이 표시를 위한 스크립트 주입, GitHub 파일 업로드를 위한 페이지 스크립트 실행
storage설정·세션·이슈 기록 저장
commands키보드 단축키 등록
contextMenus우클릭 메뉴에서 사이드 패널 열기
identityOAuth 로그인 (Jira, GitHub, Linear, Notion, GitLab, Asana, ClickUp, Slack)
tabCapture탭 영상 녹화
webNavigation페이지 이동 직전 콘솔·네트워크 로그 꼬리 보존, 새로 로드된 프레임(iframe) 감지 시 로그 수집 연결 (탭·프레임 이동 감지)

호스트 권한

확장 프로그램의 호스트 권한은 <all_urls> 한 가지입니다.

별도의 플랫폼별 호스트 권한은 두지 않으며, 위의 모든 통신은 <all_urls> 권한으로 이뤄집니다. 데이터가 실제로 전송되는 외부 대상(각 플랫폼 API 서버·OAuth 프록시 등)은 "3. 외부 전송" 항목을 참고하세요.

광역 호스트 권한 (<all_urls>) 사용처

<all_urls> (모든 사이트)는 설치 시 부여되는 필수 권한입니다(설치 화면에 "모든 사이트의 데이터 읽기/변경"으로 표시). 임의 웹페이지를 대상으로 동작하는 확장의 핵심 기능에 필요하며, 별도의 런타임 권한 요청 대화상자는 없습니다. 주요 사용처:

각 기능은 사용자가 직접 켜거나 실행할 때만 데이터를 전송합니다. 권한 자체는 설치 시 상시 부여되지만, 사용자는 Chrome 설정(확장 프로그램 > BugShot > 사이트 액세스)에서 접근 범위를 좁힐 수 있습니다.

7. 변경 사항

본 방침이 변경될 경우, 이 페이지를 통해 고지합니다.

8. 문의

개인정보 관련 문의: ox501501@gmail.com