# 🛡️ DB 백업 설정 가이드 (GitHub Actions)

이 가이드는 GitHub Actions를 사용하여 Firestore 데이터를 매일 자동으로 Google Cloud Storage(GCS)로 백업하기 위한 설정 과정을 안내합니다.

## 1. Google Cloud Platform (GCP) 설정

### 1.1. API 활성화
1.  [Google Cloud Console](https://console.cloud.google.com/)에 접속하여 프로젝트를 선택합니다.
2.  **API 및 서비스 > 라이브러리**로 이동합니다.
3.  다음 두 가지 API를 검색하여 **사용(Enable)** 설정합니다.
    *   **Cloud Firestore API**
    *   **Cloud Storage API**

### 1.2. 백업용 버킷(Bucket) 생성
1.  **Cloud Storage > 버킷**으로 이동합니다.
2.  **만들기**를 클릭합니다.
3.  버킷 이름 입력 (예: `insuwiki-backups`). **이 이름을 기억해두세요 (`GCS_BUCKET_NAME`).**
4.  **위치**: `asia-northeast3` (서울) 권장.
5.  **스토리지 클래스**: Standard 또는 Nearline (백업용).
6.  **만들기** 완료.

### 1.3. 서비스 계정(Service Account) 생성 및 키 다운로드
1.  **IAM 및 관리 > 서비스 계정**으로 이동합니다.
2.  **서비스 계정 만들기**를 클릭합니다.
    *   이름: `github-action-backup` (예시)
    *   설명: Firestore Backup for GitHub Actions
3.  **액세스 권한 부여 (역할)** 단계에서 다음 두 가지 역할을 추가합니다.
    *   **Cloud Datastore 가져오기/내보내기 관리자** (Cloud Datastore Import/Export Admin)
    *   **저장소 개체 관리자** (Storage Object Admin)
4.  완료 후, 생성된 서비스 계정 클릭 -> **키(Keys)** 탭으로 이동.
5.  **키 추가 > 새 키 만들기 > JSON** 선택.
6.  컴퓨터에 JSON 파일이 다운로드됩니다. **이 파일 내용을 복사해두세요 (`GCP_SA_KEY`).**

---

## 2. GitHub 저장소 설정 (Secrets)

1.  InsuWiki GitHub 저장소로 이동합니다.
2.  **Settings > Secrets and variables > Actions** 메뉴로 이동합니다.
3.  **New repository secret** 버튼을 눌러 다음 두 가지를 등록합니다.

| Secret 이름 | 값 (Value) | 설명 |
| :--- | :--- | :--- |
| `GCP_SA_KEY` | (다운로드 받은 JSON 파일의 전체 내용) | GCP 인증을 위한 서비스 계정 키 |
| `GCS_BUCKET_NAME` | `gs://[버킷이름]` (예: `gs://insuwiki-backups`) | 백업 파일이 저장될 버킷 경로 (**gs:// 포함**) |

---

## 3. 테스트 및 검증

1.  설정이 완료되면 GitHub 저장소의 **Actions** 탭으로 이동합니다.
2.  좌측 메뉴에서 **Firestore Backup** 워크플로우를 선택합니다.
3.  **Run workflow** 버튼을 클릭하여 수동으로 실행해봅니다.
4.  초록색 체크(Success)가 뜨면 성공입니다.
5.  GCP Cloud Storage 버킷에 현재 날짜/시간의 폴더가 생성되었는지 확인합니다.
