{ "solution": "GUARDiA ESN", "doc_type": "개발계획서", "out": "C:/GUARDiA/workspace/guardia-esn/doc/guardia-esn_개발계획서_v1.pptx", "subtitle": "지오정보기술 / 2026", "design": {"primary":"1F3A5F","accent":"2E86C1","text":"222222","font_ko":"맑은 고딕"}, "sections": [ {"title":"1. 개요 / 배경", "bullets":[ "레거시 ESN(전자가격표/전자선반, ESL) 8개 프로젝트가 Spring Boot 1.5/Java 8 등 구형 스택에 분산 운영", "통합 대상: ESN_WEB_ZIOINFO, ESN_WEB_LGInnotek, ESN_DAEMON_EMART, ESN_DAEMON_LGIT, esn, ESL_AUTO_UPDATE, restapi_lgit, UCS_LGU", "단일 현대화 플랫폼으로 통합하여 멀티테넌트 운영·유지보수·관제를 일원화", "온프레미스 sLLM(Ollama)으로 알람 원인 분석·POS 데이터 자동 분류 AI 적용 (외부 API 금지)" ]}, {"title":"2. 목표", "bullets":[ "8개 레거시 프로젝트 → Spring Boot 3.5 Java 17 + React 19 단일 플랫폼 통합", "멀티테넌트(LGINNOTEK / LGIT / EMART / ZIOINFO) 단일 운영 콘솔", "ESL 화면 템플릿·기기 바인딩·상품/가격·펌웨어·업데이트 큐 통합 관리", "HCore 게이트웨이/허브 관제 + 알람 이력 + 작업 이력 통합 가시화", "UIMS(UIWS) 공통 업무협업 레이어 + 시스템관리(RBAC) 이식으로 운영 협업 체계 내장" ]}, {"type":"table","title":"3. 범위 — 솔루션 본연 모듈", "headers":["모듈","설명"], "rows":[ ["Tenant / StoreGroup / Store","멀티테넌트·매장그룹·매장 관리"], ["Template / TagBinding","ESL 화면 템플릿 + ESL 기기 바인딩"], ["Product","상품 / 가격 관리"], ["Alarm","알람 + 알람 이력"], ["HCore","게이트웨이 / 허브 관제"], ["PosCvt","POS 데이터 변환 / 분류"], ["Firmware / UpdateQueue","펌웨어 버전 관리 + 업데이트 큐"], ["Work","작업 이력"], ["Dashboard / Ai","통합 대시보드 + Ollama AI 분석"] ]}, {"type":"table","title":"3. 범위 — UIMS(UIWS) 이식 추가 모듈", "headers":["모듈","설명"], "rows":[ ["worklog","업무일지"], ["schedule","일정(FullCalendar)"], ["message","쪽지"], ["stats","통계"], ["uiws.system","시스템관리(권한관리 RBAC) 10 컨트롤러"], ["auth (보조)","회원가입 승인대기 · 아이디찾기 · 비밀번호 재설정"] ]}, {"type":"table","title":"4. 기술 스택", "headers":["레이어","기술"], "rows":[ ["Backend","Spring Boot 3.5 / Java 17 / MyBatis (단일 JAR)"], ["Frontend","React 19 + Vite + TypeScript (backend static 번들)"], ["Database","PostgreSQL (esn_db / esn_user)"], ["AI","Ollama 온프레미스 (알람 분석·POS 분류, 폴백 포함)"], ["패키지","com.zioinfo.esn"], ["인증","JWT + 2FA (verify-token purpose=2fa 우회차단)"] ]}, {"title":"5. 아키텍처", "bullets":[ "단일 JAR — frontend(React) 빌드 산출물을 backend static에 번들", "백엔드 포트 8016 (단일 진입점)", "DB: PostgreSQL esn_db / 계정 esn_user", "멀티테넌트 4개 테넌트(LGINNOTEK / LGIT / EMART / ZIOINFO) 데이터 격리", "AI: Ollama 온프레미스 단일 호스트, 폴백 동작 — 외부 API 호출 0" ], "note":"단일 JAR · 8016 · esn_db · 멀티테넌트"}, {"title":"6. UIMS 이식 범위 (이번 세션 추가)", "bullets":[ "공통 업무협업: worklog·schedule·message·stats (com.zioinfo.esn.uiws.*) — 사전 이식 + 이번 보조", "시스템관리(RBAC): com.zioinfo.esn.uiws.system, base /api/system/* — 10 컨트롤러, 화면 6종", "테이블 프리픽스 tb_uiws_* (self-contained, esn_user와 분리 — 절대 병합 안 함)", "로그인 보조 3종: 회원가입 승인대기·아이디찾기(마스킹)·비밀번호 재설정(임시비번 메일 전용)", "2FA: 기존 JWT + 2FA 유지 + 로그인 실패 잠금", "모바일 앱 QR: 통합 메신저 앱 다운로드(중앙 ITSM APK 저장소 공개 엔드포인트 재사용, 읽기전용)" ], "note":"기존 ESL/HCore·login/2FA 흐름 무변경 — 신규 레이어만 가산"}, {"type":"table","title":"7. 일정 (WBS)", "headers":["단계","주요 작업","산출물"], "rows":[ ["분석","레거시 8개 도메인 분석·통합 설계","통합 도메인 모델"], ["설계","ERD·API·화면 설계","설계서"], ["구현(코어)","ESL·HCore·Product·Firmware·UpdateQueue·Alarm","백엔드 15 컨트롤러"], ["구현(프론트)","Dashboard·관제·관리 화면","React 페이지"], ["이식(UIMS)","업무협업·시스템관리(RBAC)·로그인 보조·2FA","uiws.* + 화면 6종"], ["AI","Ollama 알람 분석·POS 분류","AI 분석 화면"], ["검증/배포","빌드·경계면 QA·단일 JAR 배포(8016)","릴리스"] ]}, {"title":"8. 기대 효과", "bullets":[ "레거시 8개 프로젝트 통합 → 운영·유지보수 비용 절감, 기술부채 해소", "멀티테넌트 단일 콘솔로 4개 테넌트 ESL 통합 관제", "온프레미스 AI로 알람 원인 분석·POS 분류 자동화 (외부 의존 0)", "UIMS 공통 업무협업·RBAC 내장으로 운영 협업·권한 통제 강화", "JWT+2FA·승인대기·열거방지로 인증 보안 수준 향상" ]} ] }