# task-2115: InsuRo .env 파일 git 추적 제거 + 보안 처리

## SCQA

**S**: InsuRo 프로젝트(`/home/jay/projects/InsuRo/`)의 `.env` 파일이 `.gitignore`에 등록되지 않아 git 추적 중이며, Supabase service role key, VAPID private key, Naver API secret 등 민감정보가 GitHub에 노출되어 있다.

**C**: `.env` 파일이 커밋 이력에 포함되어 있어 누구나 키를 조회할 수 있는 보안 사고 상태. 즉각적인 추적 제거와 추가 노출 방지가 필요하다.

**Q**: `.env`의 git 추적을 제거하고 향후 실수로 커밋되지 않도록 방지할 수 있는가?

**A**: `.gitignore`에 `.env` 패턴 5종을 추가하고 `git rm --cached .env`로 추적을 제거했다. `.env.example` 파일을 생성하여 새 개발자 온보딩을 지원한다. `npm run build` 14.49초 성공. 키 로테이션은 범위 외로 별도 태스크 권장.

## 수정 파일

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| .gitignore:30-34 | .env, .env.local, .env.production, .env*.local, !.env.example 추가 | grep ".env" .gitignore → 5건 | verified |
| .env (git tracking) | git rm --cached .env 실행 | git ls-files .env → 빈 출력 | verified |
| .env.example (신규) | 키 이름만 포함한 예제 파일 생성 (25줄, 715바이트) | ls .env.example → 존재 | verified |

## 커밋 이력 (worktree: task/task-2115-dev2)

- `ae60ea7` [task-2115] 토르: .gitignore에 .env 패턴 추가
- `f0124fc` [task-2115] 토르: .env git 추적 제거
- `2e54f2a` [task-2115] 토르: .env.example 생성

## L1 스모크테스트 결과

- 서버 재시작: 해당없음 (프론트엔드 빌드 프로젝트)
- API 응답 확인: 해당없음
- 빌드 테스트: `npm run build` → 성공 (14.49초, 142 precache entries)
- 스크린샷: 해당없음 (빌드 전용 보안 작업)

## 발견 이슈 및 해결

### 자체 해결 (0건)
(코드 변경이 아닌 git 설정 작업으로 코드 이슈 없음)

### 범위 외 미해결 (2건)
1. **키 로테이션 필요** — 범위 외 사유: .env가 이미 GitHub 이력에 올라가 있어, Supabase service role key/VAPID private key/Naver API secret 등의 교체 필요. 외부 서비스(Supabase/PostHog/Naver) 설정 변경이 동반되므로 별도 태스크 권장
2. **git 이력에서 .env 완전 삭제** — 범위 외 사유: `git filter-branch` 또는 BFG Repo-Cleaner 사용 시 force push 필요하여 협업자 영향 큼. 키 로테이션으로 과거 노출 문제 해결 가능
3. **VITE_ 접두사 혼용** — 범위 외 사유: INSURO_NEW_SERVICE_ROLE_KEY(서버 전용)는 VITE_ 없이 정상이나, 프론트엔드 빌드에 불필요한 서버 키가 .env에 혼재. 아키텍처 개선 태스크로 분리 권장

## 머지 판단

- **머지 필요**: Yes
- **브랜치**: task/task-2115-dev2
- **워크트리 경로**: /home/jay/projects/InsuRo/.worktrees/task-2115-dev2
- **머지 의견**: 보안 critical 작업. .gitignore + git rm --cached + .env.example 3건 모두 검증 완료. npm run build 성공. 충돌 가능성 낮음 (.gitignore 끝에 추가, 신규 파일 생성).

## 모델 사용 기록

- 팀원: 토르 / 작업 내용: .gitignore 수정 + git rm --cached + .env.example 생성 / 사용 모델: sonnet / 정당성: -

## 토큰 사용량

- 토르 서브에이전트: total_tokens 28,775 / tool_uses 15 / duration 67초

## Codex 사전 검증

- 결과: pass=false (키 로테이션 미포함 지적)
- 대응: 태스크 지시서에 "키 로테이션은 별도 판단 필요"로 범위 한정 명시. 키 로테이션 관련 리스크를 "범위 외 미해결" 섹션에 기록

## 3문서

- plan.md: status → completed
- context-notes.md: 3 Step Why 기록 완료
- checklist.md: 10/10 항목 체크 (100%)

## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회

