# InfoKeyword Firebase 프로젝트 분리

## 개요
InfoKeyword가 현재 InsuWiki의 Firebase 프로젝트(`insuwiki-j2h`)를 공유하고 있음.
**독립 Firebase 프로젝트를 생성하고 완전 분리**해야 함.

## 프로젝트 경로
- **InfoKeyword**: `/home/jay/projects/InfoKeyword/`
- **현재 .env**: `/home/jay/projects/InfoKeyword/.env`

## ★ 핵심 원칙
**프로젝트마다 독립 Firebase 프로젝트 생성 필수** — 제이회장님 지적사항. 절대 다른 프로젝트 Firebase를 재사용하지 않는다.

## 작업 내용

### 1. Firebase 프로젝트 생성
- gcloud/Firebase CLI로 새 프로젝트 생성
- 프로젝트 ID: `infokeyword-j2h` (또는 유사)
- 리전: asia-northeast3 (서울)
- gcloud 인증: `gcloud auth print-access-token` 사용 가능 (서비스 계정 `anu2026@insuwiki-j2h.iam.gserviceaccount.com` 활성화 상태)
- Firebase CLI 미인증 상태이므로 REST API 사용 권장

### 2. Firebase 서비스 설정
- **Authentication**: Google Sign-In provider 활성화
- **Firestore**: 데이터베이스 생성 (Native mode, asia-northeast3)
- **Authorized domains**: `localhost`, `100.76.130.39` 추가

### 3. Firestore 보안 규칙 배포
- `/home/jay/projects/InfoKeyword/firestore.rules` 파일 내용을 새 프로젝트에 배포
- Firebase Rules REST API 사용: `firebaserules.googleapis.com`

### 4. Firestore 인덱스 생성
- `ik_analyses` 복합 인덱스: userId(ASC) + createdAt(DESC)
- Firestore Admin API 사용

### 5. 환경변수 교체
- `/home/jay/projects/InfoKeyword/.env` 파일의 NEXT_PUBLIC_FIREBASE_* 값을 새 프로젝트 값으로 교체
- 교체 대상:
  - NEXT_PUBLIC_FIREBASE_API_KEY
  - NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
  - NEXT_PUBLIC_FIREBASE_PROJECT_ID
  - NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
  - NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
  - NEXT_PUBLIC_FIREBASE_APP_ID

### 6. InsuWiki Firestore에서 ik_ 컬렉션 규칙 제거
- 기존 `insuwiki-j2h`에서 `ik_analyses`, `ik_keyword_cache`, `ik_users` 관련 규칙 제거
- InsuWiki 원래 규칙만 남기고 재배포
- 원본 규칙: `/home/jay/projects/insuwiki/firestore.rules`

### 7. 빌드 및 검증
- `npm run build` 성공 확인
- `npm test` 전체 PASS 확인
- 실제 Google 로그인 테스트 (curl로 Firebase Auth REST API 호출)

## API 참고
- Firebase Management API: `firebase.googleapis.com/v1beta1/projects`
- Identity Toolkit: `identitytoolkit.googleapis.com/admin/v2`
- Firestore Admin: `firestore.googleapis.com/v1`
- Firebase Rules: `firebaserules.googleapis.com/v1`

## gcloud 인증 정보
- 서비스 계정: `anu2026@insuwiki-j2h.iam.gserviceaccount.com`
- `gcloud auth print-access-token`으로 Bearer 토큰 획득
- 새 프로젝트에 이 서비스 계정의 권한 추가 필요

## 주의사항
- InsuWiki의 기존 데이터/규칙에 영향 주지 말 것
- InfoKeyword의 ik_ 컬렉션에 기존 데이터가 없으므로 마이그레이션 불필요
- .env 파일에 민감 정보 포함 — 커밋 금지

## 완료 조건
1. 새 Firebase 프로젝트 생성 완료
2. Authentication Google provider 활성화
3. Firestore 생성 + 보안 규칙 배포
4. 복합 인덱스 생성
5. .env 환경변수 교체
6. InsuWiki에서 ik_ 규칙 제거 + 재배포
7. npm run build 성공
8. npm test PASS