League API Engineering
정확히 하나의 기본 모드를 선택하세요. 혼합 요청의 경우, 진행 전에 지배적인 모드와 2차 산출물을 명시하세요.
| 모드 | 사용 목적 | 필수 결과물 |
|---|---|---|
implement | 데이터 통합 추가 또는 변경 | 소스 결정 → 어댑터 계약 → 정제된 픽스처/테스트 → 구현 계획 또는 코드 → 게이트 |
audit | 기존 통합 평가 | 인벤토리 → 증거 레이블 → 위험 매트릭스 → 우선순위별, 소스별 수정 |
debug | 실패 또는 오해의 소지가 있는 통합 | 재현 → 실패 분류 → 전송/스키마/캐시/폴백 검사 → 수정 증명 |
research | 소스 선택 또는 현재 사실 확인 | 날짜가 포함된 증거 맵 → 소스 평가 → 결정 |
policy | 데이터 사용 또는 제품 동작의 허용 여부 | 제품/데이터 검토 → 정책 게이트 → 허용, 제한, 또는 차단 결정 |
비협상 게이트
게이트를 통과하지 못한 설계는 우회하지 말고 거부하세요:
- 비밀 및 개인정보: Riot 키, LCU 자격 증명, Bearer 토큰, 쿠키, 개인식별정보(PII), 실제 플레이어 기록을 임베드, 지속, 또는 로깅하지 마십시오.
- 로컬 클라이언트 안전성: 인젝션, 훅, 프로세스 메모리 접근, 메모리 스캐닝, 안티치트 우회, 숨겨진 상태 추출, 독점 전체화면 제어 주장을 금지합니다. 루프백 인증서 완화는
127.0.0.1또는localhost에 명시적으로 바인딩된 클라이언트로 제한되며, 원격 HTTPS에 재사용될 수 없습니다. - 권한 및 이용약관: 문서화되지 않은 엔드포인트나 공급자를 공식 지원되는 것으로 표현하지 마십시오. 사용 전에 적용 가능한 약관, 저작자 표시, 재배포, 인증, 속도 제한 조건을 확인하세요.
- 폴백 진실성: 폴백은 모집단, 범위, 최신성, 패치, 로케일, 큐, 출처 의미를 보존해야 합니다. 실질적으로 다른 데이터는 별도의 결과이지, 묵시적인 대체물이 아닙니다.
- 지원되지 않는 요청: MMR/ELO 추정치를 만들거나, 숨겨진 상태를 추론하거나, 사용할 수 없는 플레이어 정보를 노출하지 마십시오. 제약 조건과 함께
policy_blocked또는unsupported_context를 반환하세요.
소스 결정 워크플로우
- 요청된 데이터를 분류하세요: 로컬 세션, 활성 매치, 정적/버전 관리 데이터, 원격 계정/매치/랭크 데이터, 집계 트렌드 데이터, 또는 지원되지 않는/숨겨진 상태.
source-decision-tree.md로 시작하세요; 권한, 접근성, 라우팅, 최신성, 안정성, 패치 범위, 지연 시간, 이용약관, 개인정보, 저작자 표시, 속도 제한, 실패 동작을 기준으로 후보를 선택하세요.- 점수 매기기 전에 하드 게이트를 적용하세요. 임베드된 프로덕션 키, 안전하지 않은 로컬 접근, 금지된 데이터, 검토되지 않은 재배포, 호환되지 않는 폴백이 필요한 소스는 거부됩니다.
- 각 실질적 주장에 대해 증거 등급을 기록하세요:
verified-current: 날짜가 있는 공식 소스 또는 현재 재현 가능한 관찰에 의해 직접 지원됨;observed-undocumented: 공식적으로 보장되지는 않지만 재현된 동작;historical: 과거에 문서화되었거나 관찰되었으며, 현재라고 가정하기 어려움;inference: 프로덕션 전에 검증이 필요한 추론된 결론.
adapter-contract.md를 사용하여 어댑터 계약을 작성하거나 업데이트한 후, 캐시/폴백, 테스트, 카나리 제어를 적용하세요.
오류 분류 어휘
하나의 기본 오류 클래스를 사용하고 원시 정제된 진단을 별도로 보관하세요: offline, unauthorized, rate_limited, not_found, no_data, unsupported_context, transport, http_status, parse, schema_drift, 또는 policy_blocked.
unauthorized, policy_blocked, parse, 또는 schema_drift를 무턱대고 재시도하지 마십시오. caching-and-fallbacks.md를 참조하세요.
감사 출력 계약
감사는 날짜가 포함된 산출물을 생성하며, 다음을 포함합니다:
- 범위, 데이터 클래스, 어댑터 인벤토리;
- 권한, 안정성, 증거 등급, 이용약관 검토 날짜가 포함된 소스/엔드포인트 맵;
- 자격 증명, 개인정보, 로컬 접근, 라우팅, 버전 관리, 저작자 표시 관련 발견;
- 캐시, 데이터 없음, 재시도, 드리프트, 폴백 호환성 관련 발견;
- 심각도, 가능성, 영향받는 동작, 증거, 구체적인 수정 사항이 포함된 위험 매트릭스;
- 우선순위별 수정 사항, 차단된 항목, 검증 기준.
가정을 검증된 것으로 표시하지 마십시오. 단순히 한 번 동작한다고 해서 소스를 안전하다고 부르지 마십시오.
프로그레시브 디스클로저
- 공식 및 로컬 소스 선택:
riot-web-apis.md,lcu.md,live-client-data.md,data-dragon.md,communitydragon.md. - 외부 소스 및 제품 정책:
third-party-providers.md,policy-and-product-gates.md. - 엔지니어링 제어:
adapter-contract.md,caching-and-fallbacks.md,testing-and-canaries.md. - 선택적 제한적 예시:
case-study-lolcompanion.md.
게시 전에 패키지 루트에서 python scripts/validate.py .를 실행하세요 (유효성 검사기가 있는 경우).