{
  "solution": "zioinfo-esn",
  "doc_type": "개발계획서",
  "out": "C:/GUARDiA/workspace/zioinfo-esn/doc/zioinfo-esn_개발계획서_v2.pptx",
  "subtitle": "ESL 통합관리 플랫폼 + UIMS 업무협업 통합 / 지오정보기술 / 2026",
  "design": {"primary":"1F3A5F","accent":"2E86C1","text":"222222","font_ko":"맑은 고딕"},
  "sections": [
    {"title":"1. 개요 / 배경", "bullets":[
      "레거시 ESN 6개 프로젝트(ESN_WEB_ZIOINFO·ESN_WEB_LGInnotek·ESN_DAEMON_EMART 등)를 단일 플랫폼으로 현대화 통합",
      "전자가격표(ESL)·전자선반 통합 관리: 매장·템플릿·기기 바인딩·가격 갱신·펌웨어·HCore 게이트웨이 관제",
      "멀티테넌트 구조(LGInnotek / LGIT / Emart / ZIOINFO)로 다수 고객사 동시 운영",
      "2026-06-21 UIMS(URP 업무협업) 전체 이식: 업무일지·일정·쪽지·통계 + 시스템관리(RBAC) + 2차 인증(2FA) 추가"
    ]},
    {"title":"2. 목표", "bullets":[
      "Spring Boot 1.5/Java 8 레거시 → Spring Boot 3.5 / Java 17 / React 19 단일 JAR 현대화",
      "ESL 운영 전 과정(상품→가격→템플릿→기기 바인딩→갱신 큐→펌웨어) 통합 관제",
      "Ollama 온프레미스 AI로 알람 원인 분석 · POS 데이터 자동 분류 (외부 API 미사용)",
      "UIMS 공통 업무협업 레이어로 운영팀 업무일지·일정·쪽지·업무통계 일원화",
      "JWT + 2FA(이메일 인증코드) 보안 인증 및 권한관리(RBAC) 체계 확립"
    ]},
    {"type":"table", "title":"3. 범위 — 모듈 구성", "headers":["영역","모듈","비고"], "rows":[
      ["ESL 코어","테넌트 / 매장그룹 / 매장","멀티테넌트 4사"],
      ["ESL 코어","상품 / 가격 / 템플릿","ESL 화면 템플릿"],
      ["ESL 코어","태그 바인딩 / 갱신 큐","ESL 기기 ↔ 상품"],
      ["ESL 코어","알람 / HCore / 펌웨어","게이트웨이/허브 관제"],
      ["ESL 코어","POS 변환 / 작업이력 / 대시보드","POS 데이터 분류"],
      ["AI","Ollama 알람분석 / POS 자동분류","폴백 내장"],
      ["UIMS (신규)","업무일지 / 일정 / 쪽지 / 통계","공통 업무협업"],
      ["UIMS (신규)","시스템관리(역할·메뉴·코드·부서·거래처)","RBAC"],
      ["인증 (신규)","로그인 2FA / 회원가입·아이디찾기·비번초기화","보안 강화"]
    ]},
    {"type":"table", "title":"4. 기술 스택", "headers":["레이어","기술"], "rows":[
      ["Backend","Spring Boot 3.5.0 / Java 17 / Maven (finalName esn-1.0.0)"],
      ["ORM / DB","MyBatis + PostgreSQL (esn_db)"],
      ["Frontend","React 19 + Vite + TypeScript + Tailwind"],
      ["AI","Ollama 온프레미스 (llama3.2:1b 텍스트)"],
      ["인증","JWT + 2FA(이메일 인증코드)"],
      ["배포","단일 JAR (frontend → backend static 번들), 백엔드 포트 8015"]
    ]},
    {"title":"5. 아키텍처 개요", "bullets":[
      "단일 JAR: React 빌드 산출물을 backend static에 번들 → 8015 단일 서비스",
      "MyBatis @MapperScan(annotationClass=Mapper.class) · 매퍼 classpath:mapper/**/*.xml",
      "스키마 멱등 부팅 적용: schema.sql → 90_uiws_system.sql → 91_uiws_port.sql (mode:always, continue-on-error)",
      "UIMS 테이블은 전부 tb_uiws_* 프리픽스 → 기존 esn_*(ESL) 충돌 0",
      "Ollama·ITSM(9001) 연계는 폴백 내장으로 미가용 시에도 핵심 기능 동작"
    ], "note":"상세 구성도는 설계서 참조"},
    {"type":"table", "title":"6. 일정 (WBS 요약)", "headers":["단계","주요 산출","상태"], "rows":[
      ["Phase 1","레거시 6개 분석 · 도메인 정의","완료"],
      ["Phase 2","ESL 코어(백엔드 12도메인·프론트 13페이지)","완료"],
      ["Phase 3","단일 JAR · CI/CD 자동배포","완료"],
      ["Phase 4","UIMS 업무모듈 + 시스템관리 + 2FA 이식","완료(2026-06-21)"],
      ["Phase 5","라이브 배포·통합 검증","진행"]
    ]},
    {"type":"table", "title":"7. 역할 분담", "headers":["역할","담당 범위"], "rows":[
      ["오케스트레이터","하네스 조율 · 산출물 관리"],
      ["백엔드","Spring Boot 도메인/매퍼/API"],
      ["프론트엔드","React 화면 · 테마 토큰"],
      ["DB","스키마 멱등화 · 마이그레이션"],
      ["DevOps","단일 JAR · Gitea webhook · 배포"],
      ["QA","경계면 정합 · 회귀 · 보안 검증"]
    ]},
    {"title":"8. 기대효과", "bullets":[
      "레거시 6종 분산 운영 → 단일 현대화 플랫폼으로 운영비·유지보수 부담 절감",
      "멀티테넌트로 고객사별 ESL 운영을 단일 콘솔에서 통합 관제",
      "Ollama 온프레미스 AI로 알람 분석·POS 분류 자동화(외부 의존 0)",
      "UIMS 통합으로 ESL 운영 업무와 업무협업(일지·일정·쪽지·통계)을 한 시스템에서 처리",
      "2FA·RBAC 도입으로 공공/기업 고객 보안 요구 충족"
    ]}
  ]
}
