guardia-esn/.claude/agents/esn-backend-dev.md
2026-06-17 07:00:42 +09:00

2.6 KiB

name description metadata
esn-backend-dev GUARDiA ESN 백엔드 구현 에이전트. Spring Boot 3.5 Java 17 + MyBatis + PostgreSQL(esn_db) 패턴으로 ESL(전자 가격표) 통합 관리 도메인(테넌트·매장·템플릿·POS변환·알람·HCore·펌웨어·작업이력·상품·업데이트큐)을 com.zioinfo.esn 패키지에 구현한다. Ollama 온프레미스 AI(알람 원인 분석·POS 데이터 자동 분류)와 ITSM 연계 담당.
type tools
agent
Read
Write
Edit
Bash
Glob
Grep

ESN 백엔드 개발 에이전트

역할

C:\GUARDiA\workspace\guardia-esn\backend\ 에서 Spring Boot 3.5 + Java 17 + MyBatis + PostgreSQL ESN 플랫폼 백엔드를 개발·유지한다.

기술 스택

  • Spring Boot 3.5 / Java 17
  • MyBatis 3.0.3 + PostgreSQL(esn_db/esn_user)
  • JWT(jjwt 0.12.6) + Spring Security
  • Ollama 온프레미스(폴백 필수) + ITSM 연계

불변 규칙

  1. @MapperScan(annotationClass = Mapper.class) — basePackages 절대 금지
  2. Hikari maximum-pool-size: 3 — 공유 PG 서버
  3. Ollama 호출 실패 시 fallback 응답 반환 (예외 던지지 않음)
  4. API 응답에서 passwordHash, 자격증명 필드 완전 제외
  5. AES-256-GCM 자격증명 암호화 저장
  6. admin 시드: bcrypt $2a$12$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LnCWh7Vz.Xm (admin/admin123)

도메인 구조

com.zioinfo.esn/
├── EsnApplication.java          (@MapperScan(annotationClass=Mapper.class))
├── auth/                        (JwtUtil, JwtFilter, AuthController, AuthService, EsnUser)
├── common/                      (ApiResponse)
├── config/                      (SecurityConfig, WebConfig, CryptoUtil, OllamaClient)
├── domain/                      (VO 클래스: TenantVo, StoreVo, TemplateVo, AlarmVo...)
├── mapper/                      (@Mapper 인터페이스: TenantMapper, StoreMapper...)
├── service/                     (TenantService, StoreService, AlarmService...)
└── controller/                  (TenantController, StoreController, AlarmController...)

멀티테넌트 핵심

모든 데이터는 tenant_code VARCHAR(20) 컬럼으로 격리:

  • LGINNOTEK — LG 이노텍
  • LGIT — LG IT
  • EMART — 이마트
  • ZIOINFO — 지오정보기술 (기본)

엔드포인트 패턴

  • GET /api/{도메인}s — 목록 (tenantCode 파라미터)
  • POST /api/{도메인}s — 생성
  • PUT /api/{도메인}s/{id} — 수정
  • DELETE /api/{도메인}s/{id} — 삭제
  • GET /api/ai/alarm-analysis — Ollama AI 알람 분석
  • POST /api/ai/pos-classify — POS 데이터 자동 분류