대상 구현물: screen_04_solution_v1.html — 정밀 진단 결과(연 손실 ¥766,000)를 근거로 Phase 1 옵티마이저(Mix & Match)와 Phase 2 Post-FIT ESS·FIP 도입 효과를 재무 모델(IRR·회수기간·누적 현금흐름)로 산출해 제시하는 정적 제안서 화면. 본 문서는 실제 구현(DOM·표시값)을 기준으로 한 요구사항과 검증용 테스트케이스를 정의한다.
무엇을, 어디까지 검증하는가
| 항목 | 내용 |
|---|---|
| 목적 | 정밀 진단으로 확인된 손실을 회복할 구체적 솔루션(옵티마이저 + ESS·FIP)을 재무 지표와 함께 제시하여, 발전소 오너의 견적 요청·상담 예약 전환을 유도. |
| 범위(In) | 2단계 통합 히어로(Phase별 IRR·통합 추가수익) · 옵티마이저 Mix & Match 배치 맵 · 회복 효율 바 · Phase 1 재무 카드(IRR·회수·투자비·연 추가수익) · 누적 현금흐름 차트 · JEPX 충방전 곡선 · ESS 사양/수익 분해 · 통합 수익 buybar · 내비 · CTA. |
| 범위 외(Out) | 실시간 JEPX 단가 API, 동적 IRR 재계산(슬라이더), 실제 견적 백엔드·결제, PDF 생성, 인버터 텔레메트리 연동, 모바일 반응형 최적화. |
| 가정 | 표시 수치는 진단 데이터 및 NEDO·JEPX 과거 데이터 기반 정적 추정치(하드코딩)이며, 화면이 산출 로직의 source of truth다. 동적 계산 없음 — 값은 DOM에 고정. |
테스트의 기대값(화면 표시값) 근거 — 정적 추정치
[Phase 1 옵티마이저]
스트링 총 32 = Boost 4 + GARD 26 + FIX 2
연 추가수익 = 회복 24,300kWh × ¥18 ≈ +¥438,000
총 투자비 = ¥2,400,000 · 회수 = 5.5년 · IRR(10년) = 16.8%
누적 현금흐름 = 10년(컬럼 10), 음수 4년 → 양수 6년(5.5년 손익분기)
[Phase 2 ESS·FIP]
배터리 100kWh · PCS 50kW · 일 1.2사이클
연 ESS 수익 = 차익 820,000 + 출력제어 240,000 + FIP 140,000 = +¥1,200,000
ESS 투자비 = ¥6,000,000 · IRR = 14.2% (회수 약 6.8년)
[통합]
통합 연간 추가수익 = 438,000 + 1,200,000 = +¥1,638,000
무결성 불변식 — 옵티마이저 셀 합산 4 + 26 + 2 = 32, ESS 수익 합산 820,000 + 240,000 + 140,000 = 1,200,000, 통합 수익 438,000 + 1,200,000 = 1,638,000. 세 항등식이 화면 표시값과 일치해야 한다.
우선순위: MUST SHOULD COULD
| ID | 요구사항 | 우선순위 |
|---|---|---|
| FR-01 | 통합 히어로 3분할 — Phase 1 IRR 16.8%, Phase 2 IRR 14.2%, 통합 연간 추가수익 +¥1,638,000을 3개 패널로 표시한다. | MUST |
| FR-02 | Mix & Match 배치 맵 — 4 PCS × 8 = 32 스트링 셀(.mc). Boost .mc.boost 4, GARD .mc.gard 26, FIX .mc.fix 2 → 합산 32 보장. | MUST |
| FR-03 | 회복 효율 바 — Buck/Boost/Decoupled 회복 범위(+6.4%~+18.2%)와 적용 추정(+8.5%)을 uplift 바로 표시. | COULD |
| FR-04 | Phase 1 재무 카드 — IRR 16.8%, 투자 회수 5.5년, 총 투자비 ¥2,400,000, 연 추가수익 +¥438,000을 metric 그리드로 표시. | MUST |
| FR-05 | 누적 현금흐름 차트 — 10개 컬럼(.cf-col). 음수 막대(.cf-bar.neg) 4개 → 양수 막대(.cf-bar.pos) 6개로 전환(5.5년 손익분기 서사). | MUST |
| FR-06 | JEPX 충방전 곡선 — .jepx svg 시간대 단가 곡선 + 충전(녹색 밴드)·방전(주황 밴드) 윈도우 시각화. | SHOULD |
| FR-07 | ESS 사양 — 배터리 100kWh, PCS 50kW, 일 1.2사이클을 spec 카드로 표시. | MUST |
| FR-08 | ESS 수익 분해 — 차익 +¥820,000 + 출력제어 +¥240,000 + FIP +¥140,000 → 합계 +¥1,200,000. ESS 투자비 ¥6,000,000, IRR 14.2%. | MUST |
| FR-09 | 통합 수익 무결성 — buybar에 +¥1,638,000 표시. 438,000 + 1,200,000 = 1,638,000 항등식이 성립한다. | MUST |
| FR-10 | CTA 동선 — 상단 ‘상담 예약’, buybar ‘견적 요청 · 상담 예약 →’ 클릭 시 index.html(홈)로 이동(프로토타입 동선). | SHOULD |
| FR-11 | 사이드바 내비 — 대시보드 → screen_02_dashboard_v1.html, 정밀 진단 → screen_03_diagnosis_v1.html, 솔루션 제안 active(screen_04_solution_v1.html), 로고 → index.html. 내 발전소/실측 입력/리포트/설정은 비활성(href 없음). | MUST |
| FR-12 | 시너지 안내 — 옵티마이저로 안정화된 발전량이 ESS 충전 가용량을 +12% 높인다는 시너지 카드 표시. | COULD |
| FR-13 | 숫자 포맷 — 금액은 천단위 콤마 + ¥ 접두, 추가수익은 + 부호, IRR은 % 표기. | COULD |
| FR-14 | PDF 인쇄 — 상단 'PDF 제안서 받기'와 buybar '제안서 PDF' 두 버튼에 data-action="print"를 부여하고 onclick="window.print()"로 브라우저 인쇄 다이얼로그를 호출한다. @media print에서 사이드바를 숨겨 인쇄 레이아웃을 정리한다. | SHOULD |
품질 속성
| ID | 요구사항 | 분류 |
|---|---|---|
| NFR-01 | 디자인 일관성 — Byteworx DS v1.0.4 시맨틱 토큰(--bw-*)·Pretendard·컴포넌트 규약 준수(하드코딩 색 최소화). | Design |
| NFR-02 | 수치 무결성 — 셀/수익/통합 항등식(2절)이 표시값과 항상 일치. 데모 데이터 변경 시 본 문서·테스트 함께 갱신. | Integrity |
| NFR-03 | 정적 견고성 — 외부 폰트/스크립트 미로드(오프라인) 시에도 레이아웃·표시값이 깨지지 않는다(런타임 JS 의존 없음). | Robust |
| NFR-04 | 접근성·가독성 — 명도 대비(다크 buybar 대비 녹색 강조) 및 의미 색(긍정=green, 경고=orange) 일관 사용. | A11y |
| NFR-05 | 호환성 — 최신 Chrome/Edge/Safari/Firefox 데스크탑에서 동일 렌더. (모바일 레이아웃은 향후 과제) | Compat |
전제조건 · 절차 · 기대결과 · 연결 요구사항
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-A1 | 화면 상단 히어로 3분할 확인 | Phase 1 IRR 16.8%, Phase 2 IRR 14.2%, 통합 +¥1,638,000 모두 노출. | FR-01 |
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-B1 | 배치 맵 셀 수 카운트 | .mc = 32. | FR-02 |
| TC-B2 | 유형별 셀 카운트 + 합산 검증 | .mc.boost=4, .mc.gard=26, .mc.fix=2 → 4+26+2===32. | FR-02 |
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-C1 | Phase 1 재무 카드 확인 | IRR 16.8%, 회수 5.5년, 총 투자비 ¥2,400,000, 연 추가수익 +¥438,000. | FR-04 |
| TC-C2 | 누적 현금흐름 컬럼/막대 카운트 | .cf-col=10, .cf-bar.neg=4, .cf-bar.pos=6. | FR-05 |
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-D1 | ESS 사양 확인 | 배터리 100kWh, PCS 50kW. | FR-07 |
| TC-D2 | 수익 분해 합산 검증 | 820,000 + 240,000 + 140,000 → 합계 1,200,000 표시. 820000+240000+140000===1200000. | FR-08 |
| TC-D3 | ESS 투자비·IRR 확인 | 투자비 ¥6,000,000, IRR 14.2%. | FR-08 |
| TC-D4 | JEPX 곡선 존재 확인 | .jepx svg 1개 이상 렌더. | FR-06 |
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-E1 | 통합 수익 무결성 검증 | 438000+1200000===1638000, buybar에 +¥1,638,000 표시. | FR-09 |
| TC-E2 | CTA 버튼 동선 확인 | ‘견적 요청 · 상담 예약 →’ / 상단 ‘상담 예약’ 클릭 시 index.html 이동(onclick). | FR-10 |
| TC | 절차 | 기대결과 | FR |
|---|---|---|---|
| TC-G1 | [data-action="print"] 버튼 수 확인 | 2개 존재·표시 — 상단 'PDF 제안서 받기', buybar '제안서 PDF'. | FR-14 |
| TC-G2 | window.print를 stub으로 교체 후 'PDF 제안서 받기' 클릭 | window.__printed === true — window.print() 호출 확인. | FR-14 |
| TC-G3 | 회귀: PDF 버튼 추가 후 buybar 수치 확인 | buybar에 +¥1,638,000 유지. | FR-09 |
| TC | 절차 | 기대결과 | FR/NFR |
|---|---|---|---|
| TC-F1 | 사이드바 내비 href 점검 | 대시보드 → screen_02, 정밀 진단 → screen_03, 솔루션 제안 active. | FR-11 |
| TC-F2 | DS 토큰·폰트 점검(개발자도구) | 색·타이포가 --bw-* 토큰 기반, Pretendard 적용. | NFR-01 |
현재 구현의 한계와 후속 과제
| ID | 내용 |
|---|---|
| LIM-1 | 모든 재무 수치(IRR·회수·투자비·수익)는 정적 하드코딩 추정치다. 동적 IRR 재계산·민감도 슬라이더는 후속 과제. |
| LIM-2 | JEPX 충방전 곡선은 예시 SVG path이며 실시간 스폿 단가 API 미연동. 충/방전 윈도우는 고정 시간대(10–14h / 17–21h) 가정. |
| LIM-3 | 누적 현금흐름·누적 순이익(¥11.4M)은 서사용 추정이며 막대 높이는 시각화 비율(실수치 아님). |
| LIM-4 | PDF 인쇄는 window.print()(브라우저 인쇄 다이얼로그) — 실제 서버사이드 PDF 생성·다운로드 미연동. 인쇄 레이아웃은 사이드바만 숨기는 최소 처리. |
| LIM-5 | 모바일(<1200px)에서 .cols는 1열로 폴백하나 히어로·맵 정밀 반응형은 미최적화. 후속 과제. |
| LIM-6 | 옵티마이저 시너지 +12%·회복 효율 +8.5%는 가정값 — 실제 음영/미스매치 분포에 따라 ±. |
본 명세는 v1 구현 시점 기준이다. 구현(데모 데이터) 변경 시 본 문서와 테스트 기대값을 함께 갱신할 것. 이 HTML이 리뷰용 source이며, 필요 시 여기서 MD/YAML 테스트 스펙을 추출한다.