PM FIX 문서 **「화면설계서_최종완성본_v13」**을 화면·상태·권한의 기준으로, **「팀원B_양정현_v4 — 시스템·AI·RAG 구조 설계」**를 시스템 경계의 보조 기준으로 구현한 역할 연계형 HTML 프로토타입입니다. 기획서는 아직 확정 전이므로 파일명과 버전을 기획서 v0.1.docx로 유지하며, 이 구현에서 기획서 버전을 임의로 올리지 않았습니다.
고객이 증상과 문진을 한 번 제출하면 같은 문의 ID를 상담원과 방문기사가 이어서 처리하고, 고객 피드백 후 담당자가 최종 완료합니다. 운영직원은 이 전체 흐름을 조회 전용 대시보드에서 확인합니다.
모든 고객·제품·문의·일정·담당자 정보는 시연용 합성 데이터입니다.
| 구분 | 확정 범위 |
|---|---|
| 기본 모델 | WPUJAC104DWH |
| 모델 세대 | D 세대 |
| 관리 유형 | 방문관리 |
| 공식 문서 | WPU-JAC104D/JCC104D 사용설명서 REV.00 |
| 합성 고객·제품 | 각 7건 |
| 고정 시연 문의 | 7종(정상·위험·상담·방문·완료·AI 실패 복구) |
| 공식 근거 DTO | 7건 |
| 독립 사전 문진 | 초기 2건 + 화면에서 생성 가능 |
| 모델 검증 범위 | mvp_primary·expansion_secondary·unsupported·removed_legacy |
| 역할 화면 | 고객·상담원·방문기사·운영직원 |
WPUJAC104DWH / WPU-JAC104D만 기본 MVP AI·RAG 시뮬레이션을 허용합니다. WPUIAC425SNW / WPU-IAC425는 후속 확장으로만 관리하며 고객 선택·등록·문진·AI/RAG 화면에서 숨기고 실행을 차단합니다. WPUIAC506 / WPU-IAC506은 v13의 removed_legacy이므로 운영 레지스트리·시나리오·근거·저장 데이터가 존재하지 않으며 입력 단계에서 MODEL-LEGACY-01로 차단합니다. S세대 입력은 MODEL-GENERATION-01로 차단합니다. IoT 케어, 앱 연결, 원격 관리, 얼음 기능과 AI 스마트 준비는 이 문서의 MVP 검색 계약에 포함하지 않았습니다.
실제 LLM·Vector DB가 없는 정적 프로토타입이므로 AI/RAG 영역은 DETERMINISTIC_PROTOTYPE 모드의 규칙 기반 시뮬레이터입니다. 이 모드는 화면·상태·근거 DTO 연계를 검증하기 위한 것이며 실제 검색 품질이나 AI 성능을 의미하지 않습니다.
아래 내역은 폴더명이나 문서 작성일을 추정한 기록이 아니라 이 저장소의 실제 Git 커밋 날짜와 현재 변경 사항을 기준으로 정리했습니다.
mockup_260716폴더명은 최초 목업 기준일을 보존하지만, 저장소에서 확인되는 게시 이력은 2026년 7월 21일부터 시작합니다.
- 로컬 캐시·로그·비밀정보 제외 규칙과 텍스트·바이너리 추적 정책을 설정했습니다.
- 고객·제품·문의·방문·IoT·지식 분석 합성 데이터와 상담·방문 안전 상태 계약을 구성했습니다.
- 고객과 관계자가 동일한 문의 ID와 브라우저 공유 상태를 이어서 처리하도록 초기 워크플로 엔진을 구현했습니다.
- 고객 제품관리, 증상 문의, 사전 문진, 방문 일정 변경과 상담·방문·운영·지식 분석 통합 포털을 구현했습니다.
- 냉수·온수·제빙 사용량 그래프, AI 스마트 준비 구간과 드래그·터치·키보드 기반 360도 제품 뷰어를 추가했습니다.
- 메뉴 검색, 알림 센터, 팝업 닫기, 접근성·반응형 디자인과 역할 선택 게이트웨이를 구성했습니다.
- 상태 전이, 권한, 방문 완료, 요구사항 데이터 무결성, 실패 복구, HTML·HTTP 스모크 검증을 추가했습니다.
- 요구사항 교차검증·미반영 항목 보완 보고서와 실행·팀 공유 안내를 작성하고 공개 GitHub 저장소에 게시했습니다.
이 날짜의 일정 변경·IoT 사용량·스마트 준비·360도 뷰어 등은 초기 통합 목업 이력으로 보존됩니다. 현재 v13 활성 화면에서는 확정된 MVP 범위와 역할 권한을 우선하며, 활성 HTML이 불러오지 않는 레거시 자산은 실제 업무 화면 계약에 포함하지 않습니다.
- 고객·상담원·방문기사·운영직원 네 역할을 홈에서 독립 진입하도록 분리했습니다.
- 고객
CUST-01~06은 스마트폰 앱, 상담원CONS-01~03과 운영직원ADMIN-01은 PC 웹, 방문기사TECH-01~03은 태블릿 앱 레이아웃으로 재구성했습니다. - 공통 런타임을
config → domain → data → repository → store → UI → role계층으로 리팩터링하고 역할별 앱 코드를 분리했습니다. WPUJAC104DWH를 MVP 기본 모델,WPUIAC425SNW를 후속 확장 모델로 정리하고WPUIAC506과 S세대 입력은 저장 전에 차단했습니다.- 독립 사전 문진, 미지원 제품 상담, AI 원본·상담사 수정·확정 요약, 기사 사전 리포트와 케어 이력 연계를 구현했습니다.
- 화면설계서 v13 기준 13개 화면 ID, 24필드
EvidenceCardDTO, 모델 정확 일치 근거 게이트와NO_EVIDENCE처리를 반영했습니다. - 역할·담당자 권한,
stateVersion,idempotencyKey, 교차 문의 방문 ID, 상담사 확정 요약, 기사 사전 리포트 확정 등 서버 역할의 Store 검증을 강화했습니다. - AI 처리 실패 저장, 최대 2회 재시도, 상담 전환과 위험 문의의 근거 없음 차단을 구현했습니다.
- 방문기사의 현장 결과, 고객 사용 안내, 서명, 필터·카트리지와 다음 케어 일정 반영 여부를 분리 저장하도록 보완했습니다.
- 운영직원 화면을 조회 전용으로 유지하면서 문의·AI·방문·제품지원 상태와 운영 예외를 분리 조회하도록 정리했습니다.
- 화면설계 v13 계약, 상태 전이, 역할 권한, 우회 요청, 상담원 초기 렌더링과 정적 HTTP 구조를 자동 검증하도록 테스트를 확장했습니다.
- 아키텍처, 팀원B v4 정합성, 화면설계 v13 반영표와 현재 README를 실제 활성 소스 기준으로 현행화했습니다.
기획서는 아직 확정되지 않았으므로 기획서 v0.1.docx의 파일명과 버전은 변경하지 않았습니다.
모든 역할은 index.html에서 독립적으로 진입합니다. 역할 화면끼리 직접 전환하지 않으며, 다른 역할을 사용하려면 역할 선택 홈으로 돌아갑니다.
| 역할 | 진입 파일 | 화면 환경 | 화면설계 ID |
|---|---|---|---|
| 고객 | customer.html | 스마트폰 앱형, 최대 430px 기기 프레임 | CUST-01~06 |
| 상담원 | counselor.html | PC 웹 업무 환경 | CONS-01~03 |
| 방문기사 | technician.html | 태블릿 앱형, 768~1180px 최적화 | TECH-01~03 |
| 운영직원 | operator.html | PC 웹 조회 환경 | ADMIN-01 |
기존 통합 관계자 주소인 stakeholder.html은 더 이상 역할 전환 화면을 제공하지 않고 역할 선택 홈으로 안내합니다.
CUST-01: 제품 등록·수정, 지원범위 검증, 케어 일정 출처, 독립 문진 상태, 진행 문의와 다음 행동CUST-02: 3단계 진행 표시, 대표 증상과 기타, 복수 선택, 기존 답변 표시, 고객 원문, 발생 조건, 표시 문구, 임시 저장·취소START_CARE_PRECHECK: 문의 ID 없이QuestionnaireSession만 생성·저장하고, 고객이 선택할 때 새 문의에 연결CUST-03: 이미 받은 답변을 제외한 누락 질문, AI 단계와 실패 안내CUST-04:SAFE_GUIDANCE_READY·DANGER_DETECTED·NO_EVIDENCE를 분리하고 실제 사용 제한 상태를 안내CUST-05: 일반 자가조치 결과 또는 위험 안전조치 확인·상담 요청CUST-06: 상담·방문 결과, 사용 안내 상태, 공식 근거, 타임라인, 해결·미해결·상담 재요청- 제품 범위 예외: 확장 모델은 고객 입력 후보에서 숨기고, 삭제 레거시·S세대는 저장 전에 차단
- 방문 일정: 고객은
CUST-06에서 확정 일정을 조회만 하며 변경 권한은 제공하지 않음 - 고객 알림 선택 시 읽음 처리 후 연결된
CUST-06문의 상세로 이동
- 위험 문의, 상담 필수 문의, 고객 해결 피드백 도착 최종 대기 문의 우선 큐
- 고객 원문·구조화 답변·AI 상태·EvidenceCardDTO·사용 안내·전체 타임라인 조회
- AI 원본 요약과 상담사 수정본을 분리하고
UPDATE_CONSULTATION_SUMMARY·CONFIRM_CONSULTATION_SUMMARY로 수정·기사 인계용 확정본 저장 scope_role,verification_status, 문서·안전·제품 계보·분류 필드를 포함한 v13 EvidenceCardDTO 메타데이터 조회- 제품 지원 범위 요청을 문의 큐와 분리해
상담 대기 → 진행 → 완료처리하고 고객·운영 화면에 결과 전달 - 상담 시작과 결과 기록
- 방문 필요 검토, 기사 배정, 희망일·확정일·전달사항·안전 유의사항 등록
- 고객 미해결
REOPENED문의를RESUME_CONSULTATION → CONSULTATION_REQUIRED → START_CONSULTATION순서로 재개하고 기사REVISIT_REQUIRED추가 방문 일정 재조율 - 상담 경로의 고객 해결 피드백 확인 후 담당 상담원 최종 완료
- 본인에게 배정된 확정·진행 방문과 최종 완료 대기 업무
- 날짜·상태 필터, 위험 문의 우선 정렬
- 고객·구독·문의·제품 식별, 상담 인계와 공식 근거, 현장 재확인
START_VISIT후 방문 결과 등록- 상담사 확정 요약을 우선 표시하고
UPDATE_PREVISIT_REPORT·CONFIRM_PREVISIT_REPORT로 기사 사전 리포트 수정·확정 - 실제 원인, 조치, 부품, 사용 안내, 제한 기능, 판단 근거, 다음 행동, 재방문·후속상담·특이사항
- 고객 서명 확인, 방문 완료 후 케어 이력·최근 관리일·필터 교체일·다음 일정 근거/확인 상태 반영, 방문 경로 담당 기사 최종 완료
- 문의·AI·방문 상태를 분리한 조회 필터와 처리 현황
- 증상·상태·상담 전환·방문 전환·처리 완료 집계
- 케어 일정 미산정, 독립 문진 미응답, 처리 지연,
NO_EVIDENCE, AI 처리 실패, 제품 검증 실패 등 예외 - 제품 검증 실패·삭제 레거시 차단과 AI/RAG 예외 확인
- 위험 감지·추가 방문 알림과 연결 상태 기준 즉시 필터
- 상태 변경 기능이 없는 P1 조회 전용 화면
DRAFT
QUESTIONNAIRE_IN_PROGRESS
AI_GUIDANCE
CONSULTATION_REQUIRED
CONSULTATION_IN_PROGRESS
VISIT_REVIEW_PENDING
VISIT_SCHEDULING
VISIT_SCHEDULED
COMPLETION_PENDING
REVISIT_REQUIRED
REOPENED
RESOLVED
CANCELLED
ASSIGNING → SCHEDULING → CONFIRMED → IN_PROGRESS → COMPLETED
└→ FOLLOW_UP_REQUIRED
- 일반 자가조치 단독 해결은
CUSTOMER_REPORTED_SELF_RESOLVED후 즉시RESOLVED됩니다. DANGER는DANGER_DETECTED와 함께 상담으로 전환하지만, 누수는TOTAL_STOP, 온수 모듈 경고는PARTIAL_STOP처럼 공식 근거에 따라 제한 범위를 나눕니다.- 공식 근거가 없으면 위험으로 추정하지 않고
NO_EVIDENCE·PENDING_CONSULTATION으로 전환합니다. - 안전조치 완료 여부와 상담 요청 시각은 별도 값으로 저장되며, 안전조치 미완료도 상담 요청을 막지 않습니다.
- 상담 완료와 방문 완료는 항상
COMPLETION_PENDING으로 전환됩니다. - 고객이
CUST-06에서 해결됨을 제출해도 상태는COMPLETION_PENDING으로 유지됩니다. - 상담 경로는 담당 상담원, 방문 경로는 담당 방문기사만
FINALIZE_INQUIRY를 수행할 수 있습니다. - 고객이 미해결을 제출하면
REOPENED, 기사가 추가 방문을 선택하면REVISIT_REQUIRED가 되고 상담원이 다음 업무를 이어갑니다.
모든 업무 버튼은 WaterCareStore.getAllowedActions()가 현재 상태·역할·담당자를 기준으로 반환한 allowed_actions에 따라 노출됩니다. 클릭 후에도 Store가 권한과 상태를 다시 검사합니다. 모든 변경 이벤트는 stateVersion을 검사하고 idempotencyKey로 중복 처리를 방지하며, 같은 correlationId가 AI trace·타임라인·알림·감사 로그에 전파됩니다.
활성 화면은 assets/js/core/store.js가 내부 근거 레지스트리를 검증해 조립한 EvidenceCardDTO만 사용합니다.
- 공식 매뉴얼·팀 설계·합성 시연·사용 보류를 시각적으로 구분
- 고객 화면은 내부 식별자를 숨긴 요약 카드 제공
- 상담원·방문기사 화면은
evidenceId, 문서·청크·버전·페이지·검증 상태를 업무용으로 표시 - 매뉴얼 근거의
verificationStatus는text_and_visual_verified,scopeRole은mvp_primary로 고정 - 화면 DTO에는 v13의 24개 확정 필드만 제공하고 내부
applicability,allowedUse, 원문·내부 경로는 노출하지 않음 - 내부 근거 게이트는
allowedUse=mvp_primary,dataClassification=official, 정확 모델·세대·계열·검증 상태를 모두 확인 공식 출처 보기는sourceLandingUrl사용- 검증 완료이면서 URL이 있는 경우에만
설명서 PDF 열기제공 - 공식 근거가 없으면 임의 안전 안내를 생성하지 않고 상담 연결
cd C:\python-src\Final_PROJECT\mockup_260716
start index.html또는 파일 탐색기에서 index.html을 더블클릭합니다.
cd C:\python-src\Final_PROJECT\mockup_260716
python -m http.server 8000브라우저에서 http://localhost:8000으로 접속합니다.
cd C:\python-src\Final_PROJECT\mockup_260716
python -m http.server 8000 --bind 0.0.0.0
ipconfig팀원은 같은 네트워크에서 http://<실행-PC의 IPv4 주소>:8000으로 접속합니다. Windows 방화벽에서 Python의 개인 네트워크 접근 허용이 필요할 수 있습니다.
서버 종료는 실행한 터미널에서 Ctrl+C입니다.
상태는 브라우저 localStorage의 watercare.prototype.screen-design-v13 키로 저장됩니다.
- 같은 브라우저에서 고객·상담원·방문기사·운영 화면을 순서대로 열면 작업 상태가 이어집니다.
- 메인 홈의 시연 데이터 초기화 버튼으로 최초 7개 시나리오 상태로 되돌릴 수 있습니다.
- 스키마 또는 seed revision이 달라지면 자동으로 새 v13 seed 데이터가 적용됩니다.
- 서버·DB·인증·실제 알림 API는 연결되지 않은 프런트엔드 프로토타입입니다.
전체 검증:
cd C:\python-src\Final_PROJECT\mockup_260716
powershell -ExecutionPolicy Bypass -File tests\run-tests.ps1검증 항목:
screen-design-v13.test.mjs: v13 스키마, 24필드 EvidenceCardDTO,allowed_actions, 삭제 레거시 무저장, 콘텐츠 수정·확정 명령, 경로별 완료 확정자,correlationIdcounselor-render.test.mjs: 상담원 초기 렌더링이 로딩 상태를 벗어나 실제 상담 큐를 생성하는지 검증requirements-v11.test.mjs: 기존 계약의 v13 호환 회귀(모델 범위·7개 시나리오·모듈 로드·역할 화면·반응형)state-flow.test.mjs: 독립 사전 문진, 제품 검증 차단, 일반·위험·NO_EVIDENCE, 상담·방문 연계, 케어 이력, 알림, 최종 완료, 재방문, 중복 이벤트, 상태 충돌smoke_test.py: HTML 링크·중복 ID·스크립트 로드·UTF-8·JS 문법·CSS 구조·제외 기능 노출·운영 조회 전용
mockup_260716/
├─ index.html
├─ customer.html
├─ counselor.html
├─ technician.html
├─ operator.html
├─ stakeholder.html
├─ assets/
│ ├─ css/
│ │ ├─ fix-base.css
│ │ ├─ gateway-v6.css
│ │ ├─ customer-mobile.css
│ │ ├─ staff-desktop-v6.css
│ │ └─ technician-tablet.css
│ └─ js/
│ ├─ core/
│ │ ├─ app-config.js
│ │ └─ store.js
│ ├─ data/
│ │ └─ seed-data.js
│ ├─ domain/
│ │ ├─ model-policy.js
│ │ └─ ai-rag-simulator.js
│ ├─ infrastructure/
│ │ └─ browser-state-repository.js
│ ├─ ui/
│ │ └─ common.js
│ └─ roles/
│ ├─ gateway/app.js
│ ├─ customer/app.js
│ ├─ counselor/app.js
│ ├─ technician/app.js
│ └─ operator/app.js
├─ docs/
│ ├─ ARCHITECTURE.md
│ ├─ SCREEN_DESIGN_V13_ALIGNMENT.md
│ └─ TEAM_B_V4_ALIGNMENT.md
└─ tests/
├─ run-tests.ps1
├─ counselor-render.test.mjs
├─ runtime-helper.mjs
├─ screen-design-v13.test.mjs
├─ requirements-v11.test.mjs
├─ state-flow.test.mjs
└─ smoke_test.py
브라우저는 빌드 없이 file://에서도 동작하도록 ES module 대신 명시적인 순서의 IIFE 전역을 사용합니다. 의존 방향은 config → domain → data → repository → store → UI → role입니다. 자세한 경계와 전역 계약은 docs/ARCHITECTURE.md를 참고하세요.
기존 mock-data.js, store.js, customer.js, stakeholder.js 등은 이전 프로토타입 이력 보존용이며 현재 5개 활성 HTML에서는 로드하지 않습니다. workflow-config.js는 v13 용어로 정리한 비활성 호환 설정이며 실제 상태·권한은 assets/js/core/store.js가 담당합니다. 신규 기능 수정은 위 활성 구조만 대상으로 합니다.
- 프런트엔드 프로토타입이므로 실제 고객 인증, 서버 데이터베이스, LLM·Vector DB·RAG API, 알림 발송, 기사 위치, 전자서명 법적 검증은 구현하지 않았습니다.
- 정적·상태 테스트 통과는 실제 검색 정확도, AI 품질, 보안·성능·장애 복구를 보증하지 않습니다.
- 공식 URL은 새 탭으로 연결하지만 외부 사이트 가용성은 해당 서비스 상태에 영향을 받습니다.
- 운영 대시보드는 화면설계서의 P1 개략 범위로, 조회·집계·예외 확인까지만 제공합니다.
- 화면설계서에서 별도 이미지로 관리하도록 명시한 상세 픽셀 와이어프레임은 현재 제공된 정보 구조와 상태 계약을 기준으로 앱·웹 레이아웃으로 구체화했습니다.