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