guardia-esn/.claude/skills/guardia-esn-orchestrator/SKILL.md
2026-06-17 07:00:42 +09:00

5.3 KiB

guardia-esn-orchestrator

역할

레거시 ESL(전자 가격표) 관리 시스템(workspace/esn/ 6개 프로젝트 — Spring Boot 1.5 + Java 8 + Thymeleaf)을 Spring Boot 3.5 + Java 17 + React 19 + PostgreSQL 단일 플랫폼으로 통합한 workspace/guardia-esn/ 프로젝트를 운영·확장하는 오케스트레이터 스킬.

트리거

"guardia-esn", "ESN 통합", "ESL 플랫폼", "전자가격표", "HCore", "POS 변환", "PosCvt", "ESN 알람", "ESL 템플릿", "업데이트 큐", "다시 실행", "업데이트" 요청 시 이 스킬을 사용하라.

프로젝트 정보

  • 위치: C:\GUARDiA\workspace\guardia-esn\
  • 포트: backend:8016 (단일 JAR, Vite 번들)
  • DB: guardia_esn_db / guardia_esn_user / guardia_esn_pass2026
  • 패키지: com.zioinfo.esn
  • 멀티테넌트: tenant_code VARCHAR(20) — LGINNOTEK / LGIT / EMART / ZIOINFO
  • Gitea: http://git.zioinfo.co.kr/zio/guardia-esn
  • 서버: 101.79.17.164 /opt/guardia-esn/

레거시 소스 (C:\GUARDiA\workspace\esn)

레거시 프로젝트 용도 현대화 대상
ESN_WEB_ZIOINFO ZIOINFO ESL 웹 관리 (Thymeleaf) → React 19 관리자 웹
ESN_WEB_LGInnotek LG Innotek ESL 웹 (Thymeleaf) → 멀티테넌트 LGINNOTEK
ESN_DAEMON_EMART 이마트 ESL 데몬 → EMART 테넌트
ESN_DAEMON_LGIT LG IT ESL 데몬 → LGIT 테넌트
esn ESN 코어 (Maven) → 도메인 모델
ESL_AUTO_UPDATE 펌웨어 자동 업데이트 → firmware 도메인
restapi_lgit LGIT REST API → API 통합
UCS_LGU UCS 시스템 → HCore 통합

아키텍처

레거시 ESL 8개 프로젝트 (Spring Boot 1.5 + Java 8 + Thymeleaf)
  ↓  현대화
guardia-esn (Spring Boot 3.5 + Java 17 + React 19 + PostgreSQL)
  backend:8016  ←→  frontend static bundle (단일 JAR)
       ↕
  ITSM:9001 · Ollama:11434

도메인 개념

도메인 테이블 설명
Tenant esn_tenants 멀티테넌트 — LGINNOTEK·LGIT·EMART·ZIOINFO
StoreGroup esn_store_groups 매장 그룹
Store esn_stores 매장 (tenantCode 격리)
Template esn_templates ESL 표시 템플릿
PosCvt esn_pos_cvt POS→ESL 가격 변환 데이터
Alarm / AlarmHistory esn_alarms 장치 알람·이력
HCore esn_hcores 게이트웨이/허브 장치
WorkHistory esn_work_history 작업 이력
Firmware esn_firmware 장치 펌웨어
User esn_users 사용자 (멀티테넌트 RBAC)
Product esn_products 상품 가격
TagBinding esn_tag_bindings ESL 태그↔상품 바인딩
UpdateQueue esn_update_queue 업데이트 큐

에이전트 팀

에이전트 역할
esn-backend-dev Spring Boot 3.5 백엔드 — 도메인·매퍼·서비스·컨트롤러
esn-frontend-dev React 19 + Vite + TypeScript — 관리자 웹
esn-devops-dev Gitea·deploy·Jenkinsfile·setup·홈페이지
esn-qa API 통합 테스트 + 크로스 경계면 검증

구현 원칙 (GUARDiA 불변 규칙)

  1. @MapperScan(annotationClass = Mapper.class) — basePackages 아님
  2. Hikari maximum-pool-size=3 — 공유 PG 서버
  3. repos에 fresh git init — 모노레포 .git 상속 금지
  4. 단일 JAR: 프론트 빌드 → backend/src/main/resources/static/ → mvn package
  5. Ollama 폴백: 연결 실패 시 기본 응답 반환 (예외 던지지 않음)
  6. admin 시드: bcrypt $2a$12$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LnCWh7Vz.Xm (admin/admin123)
  7. API 응답에 password_hash, 자격증명 필드 절대 미포함
  8. AES-256-GCM 자격증명 암호화 저장
  9. SecurityConfig에 static 리소스 permitAll 필수 (SPA 403 방지)

파일 구조

workspace/guardia-esn/
├── .claude/
│   ├── agents/
│   │   ├── esn-backend-dev.md
│   │   ├── esn-frontend-dev.md
│   │   ├── esn-devops-dev.md
│   │   └── esn-qa.md
│   └── skills/guardia-esn-orchestrator/SKILL.md
├── CLAUDE.md
├── Jenkinsfile
├── backend/
│   ├── pom.xml
│   └── src/main/
│       ├── java/com/zioinfo/esn/
│       │   ├── EsnApplication.java   (@MapperScan(annotationClass=Mapper.class))
│       │   ├── auth/
│       │   ├── common/
│       │   ├── config/               (SecurityConfig, WebConfig, CryptoUtil, OllamaClient)
│       │   ├── domain/               (VO 클래스)
│       │   ├── mapper/               (@Mapper 인터페이스)
│       │   ├── service/
│       │   └── controller/
│       └── resources/
│           ├── application.yml
│           ├── mapper/*.xml
│           ├── db/schema.sql
│           └── static/               (Vite 빌드 산출물)
└── frontend/
    ├── package.json
    ├── vite.config.ts
    └── src/
        ├── App.tsx
        ├── api/client.ts
        ├── components/
        └── pages/                    (15개 관리자 화면)

변경 이력

날짜 내용 사유
2026-06-16 초기 하네스 구성 + 통합 소스 생성 레거시 ESN 8개 프로젝트 → 단일 현대화 플랫폼