O
Osolar InsightSPEC
요구사항 명세 · 테스트케이스

솔루션 제안 — IRR · ESS·FIP 2단계 수익 회복 플랜

대상 구현물: screen_04_solution_v1.html — 정밀 진단 결과(연 손실 ¥766,000)를 근거로 Phase 1 옵티마이저(Mix & Match)Phase 2 Post-FIT ESS·FIP 도입 효과를 재무 모델(IRR·회수기간·누적 현금흐름)로 산출해 제시하는 정적 제안서 화면. 본 문서는 실제 구현(DOM·표시값)을 기준으로 한 요구사항과 검증용 테스트케이스를 정의한다.

버전 v1 퍼널 4단계 · 제안(Propose) 千葉 山武 · 192kW Byteworx DS v1.0.4
1

개요 & 범위

무엇을, 어디까지 검증하는가

항목내용
목적정밀 진단으로 확인된 손실을 회복할 구체적 솔루션(옵티마이저 + 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에 고정.
2

데이터 / 재무 모델 정의

테스트의 기대값(화면 표시값) 근거 — 정적 추정치

Phase 1 IRR (10년)
16.8 %
Phase 2 IRR
14.2 %
P1 연 추가수익
438,000 ¥/년
P2 연 추가수익
1,200,000 ¥/년
[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. 세 항등식이 화면 표시값과 일치해야 한다.

3

기능 요구사항 (FR)

우선순위: MUST SHOULD COULD

ID요구사항우선순위
FR-01통합 히어로 3분할 — Phase 1 IRR 16.8%, Phase 2 IRR 14.2%, 통합 연간 추가수익 +¥1,638,000을 3개 패널로 표시한다.MUST
FR-02Mix & 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-04Phase 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-06JEPX 충방전 곡선.jepx svg 시간대 단가 곡선 + 충전(녹색 밴드)·방전(주황 밴드) 윈도우 시각화.SHOULD
FR-07ESS 사양 — 배터리 100kWh, PCS 50kW, 일 1.2사이클을 spec 카드로 표시.MUST
FR-08ESS 수익 분해 — 차익 +¥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-10CTA 동선 — 상단 ‘상담 예약’, 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-14PDF 인쇄 — 상단 'PDF 제안서 받기'와 buybar '제안서 PDF' 두 버튼에 data-action="print"를 부여하고 onclick="window.print()"로 브라우저 인쇄 다이얼로그를 호출한다. @media print에서 사이드바를 숨겨 인쇄 레이아웃을 정리한다.SHOULD
4

비기능 요구사항 (NFR)

품질 속성

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
5

테스트케이스 (TC)

전제조건 · 절차 · 기대결과 · 연결 요구사항

A. 통합 히어로

TC절차기대결과FR
TC-A1화면 상단 히어로 3분할 확인Phase 1 IRR 16.8%, Phase 2 IRR 14.2%, 통합 +¥1,638,000 모두 노출.FR-01

B. 옵티마이저 Mix & Match

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

C. Phase 1 재무 & 현금흐름

TC절차기대결과FR
TC-C1Phase 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

D. Phase 2 ESS·FIP

TC절차기대결과FR
TC-D1ESS 사양 확인배터리 100kWh, PCS 50kW.FR-07
TC-D2수익 분해 합산 검증820,000 + 240,000 + 140,000 → 합계 1,200,000 표시. 820000+240000+140000===1200000.FR-08
TC-D3ESS 투자비·IRR 확인투자비 ¥6,000,000, IRR 14.2%.FR-08
TC-D4JEPX 곡선 존재 확인.jepx svg 1개 이상 렌더.FR-06

E. 통합 수익 & CTA

TC절차기대결과FR
TC-E1통합 수익 무결성 검증438000+1200000===1638000, buybar에 +¥1,638,000 표시.FR-09
TC-E2CTA 버튼 동선 확인‘견적 요청 · 상담 예약 →’ / 상단 ‘상담 예약’ 클릭 시 index.html 이동(onclick).FR-10

G. 인터랙션 (PDF 인쇄)

TC절차기대결과FR
TC-G1[data-action="print"] 버튼 수 확인2개 존재·표시 — 상단 'PDF 제안서 받기', buybar '제안서 PDF'.FR-14
TC-G2window.print를 stub으로 교체 후 'PDF 제안서 받기' 클릭window.__printed === truewindow.print() 호출 확인.FR-14
TC-G3회귀: PDF 버튼 추가 후 buybar 수치 확인buybar에 +¥1,638,000 유지.FR-09

F. 내비 · 디자인

TC절차기대결과FR/NFR
TC-F1사이드바 내비 href 점검대시보드 → screen_02, 정밀 진단 → screen_03, 솔루션 제안 active.FR-11
TC-F2DS 토큰·폰트 점검(개발자도구)색·타이포가 --bw-* 토큰 기반, Pretendard 적용.NFR-01
6

알려진 제약 & 추적 항목 (LIM)

현재 구현의 한계와 후속 과제

ID내용
LIM-1모든 재무 수치(IRR·회수·투자비·수익)는 정적 하드코딩 추정치다. 동적 IRR 재계산·민감도 슬라이더는 후속 과제.
LIM-2JEPX 충방전 곡선은 예시 SVG path이며 실시간 스폿 단가 API 미연동. 충/방전 윈도우는 고정 시간대(10–14h / 17–21h) 가정.
LIM-3누적 현금흐름·누적 순이익(¥11.4M)은 서사용 추정이며 막대 높이는 시각화 비율(실수치 아님).
LIM-4PDF 인쇄는 window.print()(브라우저 인쇄 다이얼로그) — 실제 서버사이드 PDF 생성·다운로드 미연동. 인쇄 레이아웃은 사이드바만 숨기는 최소 처리.
LIM-5모바일(<1200px)에서 .cols는 1열로 폴백하나 히어로·맵 정밀 반응형은 미최적화. 후속 과제.
LIM-6옵티마이저 시너지 +12%·회복 효율 +8.5%는 가정값 — 실제 음영/미스매치 분포에 따라 ±.
⚠️

본 명세는 v1 구현 시점 기준이다. 구현(데모 데이터) 변경 시 본 문서와 테스트 기대값을 함께 갱신할 것. 이 HTML이 리뷰용 source이며, 필요 시 여기서 MD/YAML 테스트 스펙을 추출한다.