---
name: 키움증권 계좌 구성
description: 레이가 관리하는 키움증권 위탁계좌 4개 — 관리자님 본인(일반·ISA) + 가희(일반·ISA). 계좌마다 AppKey/SecretKey 쌍이 분리돼 있고, 토큰이 계좌에 바인딩되므로 TR 호출 시 계좌번호 파라미터 없이도 라벨만으로 분기.
type: project
---
레이가 관리하는 키움증권 위탁계좌는 총 **4개**:

- 본인 명의: `일반`, `ISA`
- 가희 명의: `가희_일반`, `가희_ISA` (2026-04-25 추가)

**Why:** 2026-04-24 키움 REST API 실제 연동 과정에서 기존 추정("AppKey 1쌍으로 두 계좌 다 됨")이 틀렸음이 확인됨. 키움 API 포털에서 각 계좌별로 앱 등록이 이루어지고, AppKey/SecretKey가 계좌 단위로 발급됨. 발급된 토큰도 해당 계좌에 바인딩되어 있어 TR 호출 시 계좌번호 파라미터를 따로 넣지 않아도 올바른 계좌가 조회된다. 2026-04-25 가희 명의 2계좌가 추가되며 동일한 분리 구조를 그대로 확장 적용.

**How to apply:**
- `credentials/kiwoom.json`은 계좌별 키 분리 구조 사용 (라벨 = `accounts` 키):
  ```json
  {
    "base_url": "https://api.kiwoom.com",
    "accounts": {
      "일반":      {"appkey": "...", "secretkey": "...", "account_no": ""},
      "ISA":       {"appkey": "...", "secretkey": "...", "account_no": ""},
      "가희_일반": {"appkey": "...", "secretkey": "...", "account_no": ""},
      "가희_ISA":  {"appkey": "...", "secretkey": "...", "account_no": ""}
    }
  }
  ```
- 토큰 캐시도 계좌 단위 분리: `state/kiwoom_tokens/{일반,ISA,가희_일반,가희_ISA}.json`
- 조회 함수 시그니처는 `label: str`(계좌 라벨)만 받음. 계좌번호는 요구하지 않음 — 토큰 스코프로 식별됨
- `account_no` 필드는 스키마 호환성 위해 유지하지만 필수 아님
- 새 계좌 추가 시 앱 등록을 별도로 해서 AppKey 쌍 추가 발급 받아야 함
- 본인/가희 자금은 회계상 분리 — 합산 표시는 신중히 (briefing 기본 표시 정책은 별도 결정)
