# 🔥 Firebase Realtime Database 설정 가이드
> Bybit 선물 트레이딩 대시보드 전용

---

## 1단계 — Firebase 프로젝트 생성

1. [https://console.firebase.google.com](https://console.firebase.google.com) 접속
2. **Google 계정으로 로그인**
3. 「**프로젝트 추가**」 클릭
4. 프로젝트 이름 입력 (예: `bybit-trading-dashboard`)
5. Google 애널리틱스: **비활성화** 선택 (선택사항)
6. 「**프로젝트 만들기**」 클릭 → 완료 대기

---

## 2단계 — Realtime Database 생성

1. 좌측 사이드바 → 「**빌드**」 메뉴 펼치기
2. 「**Realtime Database**」 클릭
3. 「**데이터베이스 만들기**」 클릭
4. 위치 선택: `asia-southeast1 (Singapore)` 추천
5. 보안 규칙: **테스트 모드**로 시작 선택 ✅
6. 「**사용 설정**」 클릭

> ⚠️ 테스트 모드는 30일 후 만료됩니다. 이후 아래 규칙으로 업데이트하세요.

### 권장 보안 규칙 (30일 후 적용)
Firebase 콘솔 → Realtime Database → 「규칙」 탭 → 아래 내용 붙여넣기:
```json
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
```
> 개인 사용 목적이므로 단순 규칙으로 충분합니다.

---

## 3단계 — 웹 앱 추가 및 SDK 설정 가져오기

1. Firebase 콘솔 좌측 상단 ⚙️ **「프로젝트 설정」** 클릭
2. 「**일반**」 탭 스크롤 아래 → 「**내 앱**」 섹션
3. 웹 아이콘 `</>` 클릭
4. 앱 닉네임 입력: `bybit-dashboard`
5. Firebase Hosting: **체크 해제**
6. 「**앱 등록**」 클릭
7. 아래와 같은 코드 블록이 표시됩니다:

```javascript
const firebaseConfig = {
  apiKey: "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  authDomain: "bybit-trading-dashboard.firebaseapp.com",
  databaseURL: "https://bybit-trading-dashboard-default-rtdb.asia-southeast1.firebasedatabase.app",
  projectId: "bybit-trading-dashboard",
  storageBucket: "bybit-trading-dashboard.appspot.com",
  messagingSenderId: "123456789012",
  appId: "1:123456789012:web:abcdef1234567890"
};
```

8. 이 값들을 복사해 두세요.

---

## 4단계 — 대시보드에 설정 입력

1. `bybit_trading_dashboard.html` 파일을 브라우저에서 열기
2. 우측 상단 **「⚙️ Firebase 설정」** 버튼 클릭
3. 위에서 복사한 값들을 각 입력칸에 붙여넣기:
   - **API Key** → `apiKey` 값
   - **Auth Domain** → `authDomain` 값
   - **Project ID** → `projectId` 값
   - **Storage Bucket** → `storageBucket` 값
   - **Messaging Sender ID** → `messagingSenderId` 값
   - **App ID** → `appId` 값
   - **Database URL** → `databaseURL` 값
4. 「**💾 저장 및 적용**」 클릭
5. 우측 상단에 **「Firebase: 연결됨」** 표시 확인

---

## 5단계 — 영구 저장용 HTML 다운로드

설정 모달 하단의 **「📥 설정 저장된 HTML 다운로드」** 클릭

→ `bybit_trading_dashboard_configured.html` 파일이 다운로드됩니다.

→ 이 파일을 사용하면 매번 설정 없이 바로 Firebase에 연결됩니다.

---

## 데이터 구조

Firebase에 저장되는 데이터 구조:

```
trading/
├── positions/          ← 현재 활성 포지션
│   ├── 0/
│   │   ├── id
│   │   ├── side        (long / short)
│   │   ├── symbol
│   │   ├── entryPrice
│   │   ├── qty
│   │   ├── investKRW
│   │   └── openTime
│   └── 1/ ...
├── history/            ← 청산 완료 거래 기록
│   ├── 0/
│   │   ├── ...position 정보
│   │   ├── closePrice
│   │   ├── closeTime
│   │   ├── pnlKRW      ← 실현 손익 (원화)
│   │   └── pnlPct      ← 수익률 (%)
│   └── 1/ ...
└── portfolio/          ← 포트폴리오 요약
    ├── initial         (10,000,000)
    ├── realized        ← 누적 실현 손익
    └── tradeCount      ← 총 거래 횟수
```

---

## 자주 묻는 질문

**Q: 브라우저를 닫아도 데이터가 유지되나요?**  
A: 네. Firebase Realtime Database에 저장되므로 어느 기기, 어느 브라우저에서 열어도 데이터가 유지됩니다.

**Q: 여러 기기에서 동시에 사용할 수 있나요?**  
A: 가능합니다. 단, 동시에 포지션을 수정하면 마지막 저장 값이 반영됩니다.

**Q: API 호출 비용이 발생하나요?**  
A: Firebase 무료 요금제(Spark)로 개인 사용 수준은 충분합니다. 월 100만 건 읽기/쓰기 무료 제공.

**Q: Bybit API Key가 필요한가요?**  
A: 시세 조회(GET)는 API Key 없이 가능합니다. 이 대시보드는 실제 거래가 아닌 **가상 포지션 추적** 도구입니다.
