# 텔레메트리 및 프라이버시 분석

> Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.

## 개요

Claude Code는 이중 분석 파이프라인을 통해 광범위한 환경 및 사용 메타데이터를 수집한다. 키로깅이나 소스 코드 유출의 증거는 없으나, 수집 범위가 넓고 완전한 비활성화가 불가능하다는 점에서 프라이버시 우려가 존재한다.

## 데이터 파이프라인 구조

### 자사 로깅 (1P)

- **엔드포인트**: `https://api.anthropic.com/api/event_logging/batch`
- **프로토콜**: OpenTelemetry + Protocol Buffers
- **배치 크기**: 최대 200개 이벤트, 10초 간격 전송
- **재시도**: 이차 백오프, 최대 8회, 디스크 영속 저장
- **저장소**: 전송 실패 시 `~/.claude/telemetry/`에 저장

출처: `src/services/analytics/firstPartyEventLoggingExporter.ts`

### 서드파티 로깅 (Datadog)

- **엔드포인트**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs`
- **범위**: 사전 승인된 64개 이벤트 유형으로 제한
- **토큰**: `pubbbf48e6d78dae54bceaa4acf463299bf`

출처: `src/services/analytics/datadog.ts`

## 수집 항목

### 환경 핑거프린트

모든 이벤트에 다음 메타데이터가 포함된다 (`src/services/analytics/metadata.ts:417-452`):

```
- platform, platformRaw, arch, nodeVersion
- 터미널 유형
- 설치된 패키지 매니저 및 런타임
- CI/CD 감지, GitHub Actions 메타데이터
- WSL 버전, Linux 배포판, 커널 버전
- VCS(버전 관리 시스템) 유형
- Claude Code 버전 및 빌드 시각
- 배포 환경
```

### 프로세스 메트릭 (`metadata.ts:457-467`)

```
- uptime, rss, heapTotal, heapUsed
- CPU 사용량 및 사용률
- memory arrays 및 external allocations
```

### 사용자 추적 (`metadata.ts:472-496`)

```
- 사용 중인 모델
- 세션 ID, 사용자 ID, 디바이스 ID
- 계정 UUID, 조직 UUID
- 구독 등급 (max, pro, enterprise, team)
- 저장소 원격 URL 해시 (SHA256, 앞 16자)
- 에이전트 유형, 팀 이름, 부모 세션 ID
```

### 도구 입력 로깅

도구 입력은 기본적으로 잘린다:

```
- 문자열: 512자에서 잘림, 128자 + 생략부호로 표시
- JSON: 4,096자 제한
- 배열: 최대 20개 항목
- 중첩 객체: 최대 2단계 깊이
```

출처: `metadata.ts:236-241`

단, `OTEL_LOG_TOOL_DETAILS=1` 설정 시 **전체 도구 입력이 기록된다**.

출처: `metadata.ts:86-88`

### 파일 확장자 추적

`rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 관련 Bash 명령에서 파일 인자의 확장자가 추출·기록된다.

출처: `metadata.ts:340-412`

## 비활성화 문제

자사 로깅 파이프라인은 직접 Anthropic API 사용자의 경우 **비활성화할 수 없다**.

```typescript
// src/services/analytics/firstPartyEventLogger.ts:141-144
export function is1PEventLoggingEnabled(): boolean {
  return !isAnalyticsDisabled()
}
```

`isAnalyticsDisabled()`가 true를 반환하는 경우:
- 테스트 환경
- 서드파티 클라우드 제공자 (Bedrock, Vertex)
- 글로벌 텔레메트리 비활성화 (설정 UI에 노출되지 않음)

자사 이벤트 로깅을 비활성화하는 **사용자 대상 설정은 존재하지 않는다**.

## GrowthBook A/B 테스트

사용자는 명시적 동의 없이 GrowthBook을 통해 실험 그룹에 배정된다. 전송되는 사용자 속성:

```
- id, sessionId, deviceID
- platform, organizationUUID, subscriptionType
```

출처: `src/services/analytics/growthbook.ts`

## 핵심 요약

1. **수집량**: 세션당 수백 건의 이벤트가 수집된다
2. **비활성화 불가**: 직접 API 사용자는 자사 로깅을 끌 수 없다
3. **영속성**: 전송 실패 이벤트는 디스크에 저장되어 적극적으로 재시도된다
4. **서드파티 공유**: 데이터가 Datadog으로 전송된다
5. **도구 상세 백도어**: `OTEL_LOG_TOOL_DETAILS=1`로 전체 입력 로깅이 활성화된다
6. **저장소 핑거프린팅**: 저장소 URL이 해싱되어 서버 측 상관분석에 사용된다
