---
task_id: task-2115
type: context
scope: task
created: 2026-04-23
updated: 2026-04-23
status: in-progress
---

# 맥락 노트: task-2115

**task**: task-2115

---

## 결정 근거

### .env 추적 제거만 수행, 키 로테이션은 별도
- 키 로테이션은 Supabase/Cloudflare/PostHog 등 외부 서비스 설정 변경이 필요하여 영향 범위가 큼
- 현재는 추적 제거 + .gitignore 추가로 추가 노출 방지에 집중
- 키 로테이션은 별도 태스크로 권장

### git filter-branch 미사용
- 이력에서 완전 삭제하면 force push 필요, 팀원 로컬 히스토리 깨짐
- 현재는 추적 제거로 충분 (추가 노출 방지 목적)

## 3 Step Why

1st Why: "왜 이 설계가 필요한가?"
→ .env 파일이 git에 추적되면 GitHub에 민감 키(Supabase service role key, VAPID private key)가 노출되어 보안 사고 위험

2nd Why: "왜 .gitignore + git rm --cached가 최선인가?"
→ 로컬 .env 파일을 유지하면서 git에서만 제거하는 가장 안전하고 표준적인 방법. git filter-branch는 force push 필요하여 위험

3rd Why: "왜 git filter-branch 대신 이 접근이 나은가?"
→ filter-branch는 모든 협업자의 로컬 히스토리를 깨뜨리고, force push가 필요. .gitignore + rm --cached는 비파괴적이고 즉시 적용 가능. 키 로테이션으로 과거 노출 문제도 해결 가능 (별도 태스크)

★ A-B-C 답변 논리적 일관성: 보안 위험 → 표준 방법 → 비파괴적 접근 순으로 논리 일관

## 참조 자료

- 프로젝트: `/home/jay/projects/InsuRo/`
- .env 파일: Supabase, PostHog, Naver API, VAPID 키 포함

## 주의사항

- .env 파일이 이미 GitHub에 올라간 이력이 있으므로, 키 로테이션 별도 권장
- worktree에서 작업 후 PR 생성 (Lv.3 critical)
