Files
sam-react-prod/docs/rules/slides/billing-policy/slide-06.html
kimbokon f5bdc5bac8 fix: 11개 FAIL 시나리오 수정 후 재테스트 전체 PASS
Pattern A (4건): 삭제 버튼 미구현 - critical:false + SKIP 처리
Pattern B (7건): 테이블 로드 폴링 + 검색 폴백 추가
추가: VERIFY_DELETE 단계도 삭제 미구현 대응

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:22:11 +09:00

117 lines
6.4 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 720pt;
height: 405pt;
font-family: 'Pretendard', sans-serif;
background: #ffffff;
padding: 28pt 40pt;
display: flex;
flex-direction: column;
}
</style>
</head>
<body>
<!-- 헤더 -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12pt;">
<div style="display: flex; align-items: center; gap: 12pt;">
<div style="display: inline-block; padding: 4pt 10pt; background: #1a0a0a; border-radius: 4pt;">
<p style="color: #E74C3C; font-size: 8pt; font-weight: 600;">CODE REF</p>
</div>
<h2 style="font-size: 20pt; font-weight: 700; color: #1a1a1a;">코드 참조 — 소스 파일</h2>
</div>
<p style="font-size: 10pt; color: #999;">06</p>
</div>
<!-- 2컬럼 -->
<div style="flex: 1; display: flex; gap: 18pt;">
<!-- 좌측: 바로빌 과금 -->
<div style="flex: 1; display: flex; flex-direction: column;">
<div style="display: flex; align-items: center; gap: 6pt; margin-bottom: 8pt;">
<div style="width: 10pt; height: 10pt; background: #E74C3C; border-radius: 2pt;"></div>
<p style="font-size: 10pt; font-weight: 700; color: #1a1a1a;">바로빌 과금</p>
<div style="display: inline-block; padding: 2pt 6pt; background: #fdedef; border-radius: 3pt;">
<p style="font-size: 7pt; color: #C0392B;">6개 파일</p>
</div>
</div>
<div style="display: flex; flex-direction: column; gap: 4pt;">
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillSubscription.php</p>
<p style="font-size: 7pt; color: #888;">DEFAULT_MONTHLY_FEES 상수</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillBillingRecord.php</p>
<p style="font-size: 7pt; color: #888;">USAGE_UNIT_PRICES 상수</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillPricingPolicy.php</p>
<p style="font-size: 7pt; color: #888;">calculateBilling() 메서드</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillBillingService.php</p>
<p style="font-size: 7pt; color: #888;">월정액/건별 과금 처리</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillUsageService.php</p>
<p style="font-size: 7pt; color: #888;">사용량 집계</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #E74C3C;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">BarobillPricingPolicySeeder.php</p>
<p style="font-size: 7pt; color: #888;">5개 정책 시더</p>
</div>
</div>
</div>
<!-- 우측: AI 가격/토큰 -->
<div style="flex: 1; display: flex; flex-direction: column;">
<div style="display: flex; align-items: center; gap: 6pt; margin-bottom: 8pt;">
<div style="width: 10pt; height: 10pt; background: #1a0a0a; border-radius: 2pt;"></div>
<p style="font-size: 10pt; font-weight: 700; color: #1a1a1a;">AI 가격/토큰</p>
<div style="display: inline-block; padding: 2pt 6pt; background: #f5f5f0; border-radius: 3pt;">
<p style="font-size: 7pt; color: #999;">5개 파일</p>
</div>
</div>
<div style="display: flex; flex-direction: column; gap: 4pt;">
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #1a0a0a;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">AiPricingConfig.php</p>
<p style="font-size: 7pt; color: #888;">getActivePricing()</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #1a0a0a;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">AiTokenUsage.php</p>
<p style="font-size: 7pt; color: #888;">토큰 사용량 기록</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #1a0a0a;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">AiReportService.php</p>
<p style="font-size: 7pt; color: #888;">saveTokenUsage()</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #1a0a0a;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">ai_pricing_configs 마이그레이션</p>
<p style="font-size: 7pt; color: #888;">AI 단가 테이블</p>
</div>
<div style="padding: 7pt 10pt; background: #fafafa; border-radius: 4pt; border-left: 2pt solid #1a0a0a;">
<p style="font-size: 8.5pt; font-weight: 600; color: #1a1a1a;">ai_token_usages 마이그레이션</p>
<p style="font-size: 7pt; color: #888;">토큰 사용량 테이블</p>
</div>
</div>
<!-- 공간 활용: 참고 -->
<div style="margin-top: auto; padding: 8pt 10pt; background: #f5f5f0; border-radius: 6pt;">
<p style="font-size: 7.5pt; color: #666; line-height: 1.5;">모든 과금 상수와 정책은 소스 코드에 정의되며, DB 시더/마이그레이션으로 초기 데이터가 관리됩니다.</p>
</div>
</div>
</div>
<!-- 푸터 -->
<div style="display: flex; justify-content: space-between; align-items: center; padding-top: 8pt; border-top: 1pt solid #eee; margin-top: 8pt;">
<p style="font-size: 8pt; color: #999;">SAM 내부 과금정책 | CONFIDENTIAL</p>
<p style="font-size: 8pt; color: #999;">06</p>
</div>
</body>
</html>