# 🚨 GitHub Actions 의존성 리스크 분석 (DB Backup)

> **일시**: 2026-02-15 22:25
> **주제**: DB 백업을 GitHub Actions로 구현할 시 발생 가능한 시나리오 및 확률 분석

---

## 1. 개요
Firebase Cloud Functions(Blaze) 대신 **GitHub Actions(무료)**를 사용하여 DB 백업을 수행할 경우, 구글 클라우드 플랫폼(GCP) 외에 **GitHub**라는 제3의 서비스에 의존하게 됩니다. 이에 따른 리스크를 분석합니다.

## 2. 발생 가능한 시나리오 및 확률 (Scenario & Probability)

### A. 서비스 장애 (GitHub Actions Outage)
*   **시나리오**: GitHub Actions 서비스 자체의 장애로 인해 예약된 스케줄(`cron`)이 실행되지 않음.
*   **확률**: **낮음 (Low)**. (SLA 99.9% 기준, 연간 몇 시간 정도의 장애 가능성)
*   **영향**: **경미함 (Minor)**. 하루치 백업이 누락됨. 다음 날 정상 실행되면 복구됨. DB가 그 하루 사이에 깨지지 않는 한 문제 없음.
*   **대책**: 장애 발생 시 수동으로 로컬에서 스크립트 실행 가능.

### B. 무료 사용량 초과 (Billing/Quota Limits)
*   **시나리오**: GitHub Free Tier의 월간 무료 실행 시간(2,000분)을 모두 소진하여 백업이 중단됨.
*   **확률**: **매우 낮음 (Very Low)**.
    *   DB 백업 스크립트 실행 시간: 약 1~2분 내외.
    *   매일 실행 시: 2분 x 30일 = 60분/월.
    *   여유분: 1,940분 남음. 다른 무거운 CI/CD(빌드/테스트)가 폭주하지 않는 한 도달하기 어려움.
*   **영향**: **중간 (Medium)**. 백업 중단.
*   **대책**: 워크플로우 실행 시간 모니터링, 공개 리포지토리(Public Repo) 전환 시 무료 사용량 무제한.

### C. 인증 키 보안 사고 (Security Breach)
*   **시나리오**: GitHub 계정이 해킹당하거나, 실수로 `FIREBASE_SERVICE_ACCOUNT_KEY`가 로그에 노출됨.
*   **확률**: **매우 낮음 (Very Low)** (2FA 설정 시).
*   **영향**: **치명적 (Critical)**. 해커가 DB를 삭제하거나 데이터를 유출할 수 있음.
*   **대책**:
    *   GitHub Secrets 사용 (코드에 키 절대 포함 금지).
    *   GCP IAM에서 해당 키에 `Cloud Datastore Import/Export Admin` 권한만 부여하여 피해 최소화 (최소 권한 원칙).
    *   주기적인 키 로테이션.

### D. 액션/스크립트 호환성 깨짐 (Deprecation)
*   **시나리오**: 사용 중인 `google-github-actions/auth` 버전이 업데이트되거나 Node.js 버전이 변경되어 스크립트가 실패함.
*   **확률**: **중간 (Medium)** (1~2년 주기).
*   **영향**: **경미함 (Minor)**. 백업 실패 알림 메일을 받고 코드를 수정하면 됨.
*   **대책**: GitHub Action 버전을 고정(`@v2`)하여 사용.

### E. 데이터 백업 범위 제한 (Limited Scope)
*   **시나리오**: 사용자가 "DB 백업"이 "모든 데이터(첨부파일 포함)"를 백업한다고 오해함.
*   **팩트**: `gcloud firestore export`는 **텍스트 데이터(JSON)**만 백업합니다. 이미지, PDF 등 **구글 드라이브에 저장된 첨부파일은 백업되지 않습니다.**
*   **영향**: **중간 (Medium)**. DB는 복구했으나 이미지가 엑박(Broken Image)으로 뜰 수 있음 (만약 구글 드라이브 파일도 삭제되었다면).
*   **대책**:
    *   구글 드라이브 자체의 "휴지통" 및 "버전 관리" 기능에 의존 (기본 30일 보관).
    *   중요 파일은 별도의 로컬 다운로드 또는 Google Takeout을 권장.

---

## 3. 결론 및 추천 (Conclusion)
**GitHub Actions 의존성은 "관리 가능한 수준"의 리스크입니다.**

*   **치명적인 리스크(데이터 유실)**는 거의 없으며, 대부분 **백업 누락(Skip)** 수준의 경미한 문제입니다.
*   **무료 요금제를 유지하고 싶다면**, GitHub Actions는 매우 합리적이고 안전한 선택입니다.
*   **단, 보안(Service Account Key 관리)에는 각별한 주의가 필요합니다.**

### 최적의 결정 제안:
사용자님께서 **"카드 등록 스트레스 없이 무료로 운영"**하는 것을 최우선으로 하신다면, **GitHub Actions**로 진행하는 것을 강력 추천합니다. 하루 백업이 빠진다고 서비스가 망가지지는 않으니까요.
