@axboot-mcp/mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +119 -0
- package/MCP_TOOL_PLAN.md +710 -0
- package/MCP_USAGE.md +914 -0
- package/README.md +168 -0
- package/REPOSITORY_CONVENTIONS.md +250 -0
- package/SEARCH_PARAMS_MCP_TOOL_COMPLETE_PLAN.md +646 -0
- package/SEARCH_PARAMS_PLAN.md +2570 -0
- package/STORE_PATTERNS.md +1178 -0
- package/debug-dto.js +72 -0
- package/generate-banner-store.js +62 -0
- package/generation-plan.json +2176 -0
- package/generation-results.json +1817 -0
- package/package.json +45 -0
- package/scripts/batch-generate-all.js +159 -0
- package/scripts/batch-generate-mcp.js +329 -0
- package/scripts/batch-generate-stores-v2.js +272 -0
- package/scripts/batch-generate-stores.js +179 -0
- package/scripts/batch-plan.json +3810 -0
- package/scripts/batch-process.py +90 -0
- package/scripts/batch-regenerate.js +356 -0
- package/scripts/direct-generate.js +227 -0
- package/scripts/execute-batches.js +1911 -0
- package/scripts/generate-all-stores.js +144 -0
- package/scripts/generate-stores-mcp.js +161 -0
- package/scripts/generate-stores-v2.js +450 -0
- package/scripts/generate-stores-v3.js +412 -0
- package/scripts/generate-stores-v4.js +521 -0
- package/scripts/generate-stores.js +382 -0
- package/scripts/repos-to-process.json +1899 -0
- package/src/config/nh-layout-patterns.ts +166 -0
- package/src/docs/HOOK_GENERATION_PLAN.md +2226 -0
- package/src/docs/NH_STORE_PATTERNS.md +297 -0
- package/src/docs/README.md +216 -0
- package/src/docs/index.ts +28 -0
- package/src/docs/loader.ts +568 -0
- package/src/docs/patterns.json +419 -0
- package/src/docs/practical-examples.md +732 -0
- package/src/docs/quick-start.md +257 -0
- package/src/docs/requirements-analysis-guide.md +364 -0
- package/src/docs/rules.json +321 -0
- package/src/docs/store-pattern-analysis.md +664 -0
- package/src/docs/store-patterns-rules.md +1168 -0
- package/src/docs/store-patterns-usage-guide.md +1835 -0
- package/src/docs/troubleshooting.md +544 -0
- package/src/docs/type-selection-guide.md +572 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/AntD-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +1515 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/DataGrid-/354/202/254/354/232/251/353/262/225.md +866 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/FormItem-/354/202/254/354/232/251/353/262/225.md +903 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/FormModal-/354/202/254/354/232/251/353/262/225.md +1155 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/MCP-/353/260/224/354/235/264/353/270/214/354/275/224/353/224/251-/352/260/200/354/235/264/353/223/234.md +1133 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/MSW-Mock-/353/215/260/354/235/264/355/204/260-/354/202/254/354/232/251/353/262/225.md +579 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/Search-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +738 -0
- package/src/docs//354/202/254/354/232/251/353/262/225/Store-/355/214/250/355/204/264-/354/202/254/354/232/251/353/262/225.md +1135 -0
- package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/352/265/254/354/204/261-/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234/354/210/234/354/204/234.md +1805 -0
- package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234-/355/224/204/353/241/254/355/224/204/355/212/270-/352/260/200/354/235/264/353/223/234.md +946 -0
- package/src/docs//354/202/254/354/232/251/353/262/225//355/231/225/354/236/245/355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/354/203/201/354/204/270-/355/224/204/353/241/254/355/224/204/355/212/270/352/260/200/354/235/264/353/223/234.md +2422 -0
- package/src/features/store-features.ts +232 -0
- package/src/handlers/analyze-requirements.ts +403 -0
- package/src/handlers/analyze.ts +1373 -0
- package/src/handlers/generate-from-requirements.ts +250 -0
- package/src/handlers/generate-hook.ts +950 -0
- package/src/handlers/generate-interactive.ts +840 -0
- package/src/handlers/generate-listdatagrid.ts +521 -0
- package/src/handlers/generate-multi-stores.ts +577 -0
- package/src/handlers/generate-requirements-from-layout.ts +160 -0
- package/src/handlers/generate-search-params.ts +717 -0
- package/src/handlers/generate.ts +911 -0
- package/src/handlers/list-templates.ts +104 -0
- package/src/handlers/scan-metadata.ts +485 -0
- package/src/handlers/suggest-layout.ts +326 -0
- package/src/index.ts +959 -0
- package/src/prompts/search-params.md +793 -0
- package/src/templates/index.ts +107 -0
- package/src/templates/unified.ts +462 -0
- package/store-generation-error-patterns.md +225 -0
- package/test/useAgentStore.ts +136 -0
- package/test-server.js +78 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,2422 @@
|
|
|
1
|
+
# 확장 화면 타입별 상세 프롬프트 가이드 (27가지)
|
|
2
|
+
|
|
3
|
+
AXBoot 프로젝트의 확장 화면 타입 27가지에 대한 매우 상세한 개발 프롬프트 템플릿입니다. 각 타입별로 실제 프로젝트 구조와 DTO를 활용한 완성도 높은 개발이 가능하도록 구성했습니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 URL 패턴 및 프로젝트 구조 가이드
|
|
8
|
+
|
|
9
|
+
### URL 구성 규칙
|
|
10
|
+
프로젝트의 URL은 다음과 같은 패턴을 따릅니다:
|
|
11
|
+
|
|
12
|
+
1. **기본 URL 패턴**: `/{serviceGroup}/{domain}.{feature}`
|
|
13
|
+
- serviceGroup: NH (나비엔하우스), OP (온라인파트너), NIP (인터페이스 포털)
|
|
14
|
+
- domain: member, product, order, system, benefit 등
|
|
15
|
+
- feature: list, dashboard, mng, history 등
|
|
16
|
+
|
|
17
|
+
2. **파일 경로 매핑**:
|
|
18
|
+
```
|
|
19
|
+
URL: /NH/member.dashboard
|
|
20
|
+
파일: src/pages/resources/NH/member.dashboard/App.tsx
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
3. **프로그램 등록**:
|
|
24
|
+
- `src/router/@programData.ts`에 PROGRAM_TYPES 등록
|
|
25
|
+
- PAGE_RESOURCES에 type과 name 매핑
|
|
26
|
+
|
|
27
|
+
### 디렉토리 구조
|
|
28
|
+
```
|
|
29
|
+
src/pages/resources/{serviceGroup}/{domain}.{feature}/
|
|
30
|
+
├── App.tsx # 메인 페이지 컴포넌트
|
|
31
|
+
├── ListDataGrid.tsx # 목록 그리드 컴포넌트
|
|
32
|
+
├── FormSet.tsx # 폼 컴포넌트 (수정/등록)
|
|
33
|
+
├── use{Domain}{Feature}Store.ts # Zustand 스토어
|
|
34
|
+
├── modal/ # 모달 컴포넌트들
|
|
35
|
+
└── components/ # 하위 컴포넌트들
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 🔧 DTO 및 API 활용 상세 가이드
|
|
41
|
+
|
|
42
|
+
### 1. Repository Pattern
|
|
43
|
+
모든 API는 Repository 패턴을 따르며, 다음 구조를 가집니다:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
// 1. Interface 정의 (src/services/@interface/interface/{Domain}Interface.ts)
|
|
47
|
+
export abstract class {Domain}Interface {
|
|
48
|
+
abstract post{Domain}List{Feature}(
|
|
49
|
+
params: Post{Domain}List{Feature}Request,
|
|
50
|
+
config?: ApiRequestConfig
|
|
51
|
+
): Promise<Post{Domain}List{Feature}Response>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 2. Repository 구현 (src/services/@interface/repository/{Domain}Repository.ts)
|
|
55
|
+
export class {Domain}Repository extends APIRepository implements {Domain}Interface {
|
|
56
|
+
post{Domain}List{Feature}(params, config) {
|
|
57
|
+
return this.api.post(`/{domain}/list{Feature}`, params, config);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// 3. Service 등록 (src/services/index.ts)
|
|
62
|
+
export const {Domain}Service = new {Domain}Repository(apiWrapper);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. DTO 네이밍 컨벤션
|
|
66
|
+
|
|
67
|
+
#### Request DTO
|
|
68
|
+
```typescript
|
|
69
|
+
// 기본 패턴: Post{Domain}{Action}Request
|
|
70
|
+
interface PostMemberListMemberRequest {
|
|
71
|
+
// 페이징 정보
|
|
72
|
+
pageNumber: number;
|
|
73
|
+
pageSize: number;
|
|
74
|
+
|
|
75
|
+
// 검색 조건
|
|
76
|
+
searchKeyword?: string;
|
|
77
|
+
searchType?: string;
|
|
78
|
+
dateRange?: [string, string];
|
|
79
|
+
status?: string;
|
|
80
|
+
|
|
81
|
+
// 기타 필터
|
|
82
|
+
orderBy?: string;
|
|
83
|
+
orderDirection?: 'ASC' | 'DESC';
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// 저장/수정 패턴: Post{Domain}Save{Entity}Request
|
|
87
|
+
interface PostMemberSaveMemberRequest {
|
|
88
|
+
memberNo?: number; // 수정 시
|
|
89
|
+
memberName: string;
|
|
90
|
+
memberEmail: string;
|
|
91
|
+
memberStatus: string;
|
|
92
|
+
__status__: 'C' | 'U' | 'D'; // Create/Update/Delete
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### Response DTO
|
|
97
|
+
```typescript
|
|
98
|
+
// 목록 조회 패턴: Post{Domain}List{Entity}Response
|
|
99
|
+
interface PostMemberListMemberResponse {
|
|
100
|
+
page: {
|
|
101
|
+
totalElements: number;
|
|
102
|
+
totalPages: number;
|
|
103
|
+
number: number;
|
|
104
|
+
size: number;
|
|
105
|
+
};
|
|
106
|
+
ds: Member[]; // 데이터 배열
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// 상세/저장 패턴: Post{Domain}Get{Entity}Response
|
|
110
|
+
interface PostMemberGetMemberResponse {
|
|
111
|
+
ds: Member; // 단일 객체
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 3. Entity DTO
|
|
116
|
+
```typescript
|
|
117
|
+
// src/services/@interface/dto/{Entity}.ts
|
|
118
|
+
export interface Member {
|
|
119
|
+
memberNo: number;
|
|
120
|
+
memberName: string;
|
|
121
|
+
memberEmail: string;
|
|
122
|
+
memberPhone?: string;
|
|
123
|
+
memberStatus: string;
|
|
124
|
+
createdAt: string;
|
|
125
|
+
updatedAt?: string;
|
|
126
|
+
|
|
127
|
+
// 관계 데이터
|
|
128
|
+
memberGroup?: MemberGroup;
|
|
129
|
+
memberPoints?: number;
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 4. API 호출 패턴
|
|
134
|
+
|
|
135
|
+
#### Store에서의 API 호출
|
|
136
|
+
```typescript
|
|
137
|
+
// Zustand 스토어 패턴
|
|
138
|
+
interface Store {
|
|
139
|
+
// 데이터 상태
|
|
140
|
+
listResponse: PostMemberListMemberResponse;
|
|
141
|
+
listRequestValue: PostMemberListMemberRequest;
|
|
142
|
+
|
|
143
|
+
// 로딩 상태
|
|
144
|
+
listSpinning: boolean;
|
|
145
|
+
formSpinning: boolean;
|
|
146
|
+
|
|
147
|
+
// API 함수
|
|
148
|
+
callListApi: (params?: Partial<PostMemberListMemberRequest>) => Promise<void>;
|
|
149
|
+
callSaveApi: (params: PostMemberSaveMemberRequest) => Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const callListApi = async (params) => {
|
|
153
|
+
set({ listSpinning: true });
|
|
154
|
+
try {
|
|
155
|
+
const response = await MemberService.postMemberListMember({
|
|
156
|
+
...get().listRequestValue,
|
|
157
|
+
...params,
|
|
158
|
+
});
|
|
159
|
+
set({ listResponse: response });
|
|
160
|
+
} finally {
|
|
161
|
+
set({ listSpinning: false });
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 5. 실제 사용 예시
|
|
167
|
+
|
|
168
|
+
#### 회원 목록 조회
|
|
169
|
+
```typescript
|
|
170
|
+
// Request
|
|
171
|
+
const request: PostMemberListMemberRequest = {
|
|
172
|
+
pageNumber: 1,
|
|
173
|
+
pageSize: 50,
|
|
174
|
+
searchKeyword: "김",
|
|
175
|
+
searchType: "memberName",
|
|
176
|
+
memberStatus: "ACTIVE",
|
|
177
|
+
dateRange: ["2024-01-01", "2024-12-31"]
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
// API 호출
|
|
181
|
+
const response = await MemberService.postMemberListMember(request);
|
|
182
|
+
|
|
183
|
+
// Response 활용
|
|
184
|
+
const { page, ds: memberList } = response;
|
|
185
|
+
console.log(`총 ${page.totalElements}명의 회원 중 ${memberList.length}명 조회`);
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### 회원 저장
|
|
189
|
+
```typescript
|
|
190
|
+
// 신규 등록
|
|
191
|
+
const createRequest: PostMemberSaveMemberRequest = {
|
|
192
|
+
memberName: "홍길동",
|
|
193
|
+
memberEmail: "hong@example.com",
|
|
194
|
+
memberStatus: "ACTIVE",
|
|
195
|
+
__status__: "C"
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
// 수정
|
|
199
|
+
const updateRequest: PostMemberSaveMemberRequest = {
|
|
200
|
+
memberNo: 123,
|
|
201
|
+
memberName: "홍길동",
|
|
202
|
+
memberEmail: "hong.updated@example.com",
|
|
203
|
+
memberStatus: "INACTIVE",
|
|
204
|
+
__status__: "U"
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
await MemberService.postMemberSaveMember(createRequest);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 7. 🖼️ 이미지 썸네일 그리드 + 모달형 (Image Grid Modal)
|
|
213
|
+
|
|
214
|
+
### 프롬프트 템플릿
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
{도메인명} 이미지 썸네일 그리드 + 모달 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
218
|
+
|
|
219
|
+
**필수 구현 요소:**
|
|
220
|
+
|
|
221
|
+
1. **API 연동 정보**
|
|
222
|
+
- 서비스: {도메인명}Service, UploadService
|
|
223
|
+
- 목록 조회: post{도메인명}List{기능명}
|
|
224
|
+
- 이미지 등록: post{도메인명}Save{기능명}
|
|
225
|
+
- 이미지 업로드: postUploadImageFile
|
|
226
|
+
- 순서 변경: post{도메인명}UptOrder
|
|
227
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
228
|
+
- Response DTO: Post{도메인명}List{기능명}Response { page, ds: {도메인DTO}[] }
|
|
229
|
+
|
|
230
|
+
2. **탭 기반 카테고리 구성**
|
|
231
|
+
- 탭 데이터: {카테고리명}List (예: bannerLocTp)
|
|
232
|
+
- 활성 탭 상태: active{카테고리명}
|
|
233
|
+
- 탭별 독립적 데이터 로딩
|
|
234
|
+
- 탭 변경 시 목록 새로고침
|
|
235
|
+
|
|
236
|
+
3. **검색 조건 구성**
|
|
237
|
+
- SearchParams 컴포넌트 사용
|
|
238
|
+
- 카테고리 선택: {카테고리 필드명} (SELECT)
|
|
239
|
+
- 채널 선택: {채널 필드명} (RADIO)
|
|
240
|
+
- 상태 필터: {상태 필드명} (SELECT)
|
|
241
|
+
- 날짜 범위: {날짜 필드명} (DATE_RANGE)
|
|
242
|
+
|
|
243
|
+
4. **썸네일 그리드 구성**
|
|
244
|
+
- 기본 정보 컬럼: 제목, 설명, 상태
|
|
245
|
+
- 이미지 컬럼: PC/모바일 썸네일 표시
|
|
246
|
+
- 노출기간 컬럼: 시작일~종료일 표시
|
|
247
|
+
- ThumbPreview 컴포넌트: 80x60 크기 썸네일
|
|
248
|
+
- 이미지 미리보기: 클릭 시 원본 이미지 모달
|
|
249
|
+
- 더블클릭: 수정 모달 오픈
|
|
250
|
+
|
|
251
|
+
5. **이미지 등록/수정 모달**
|
|
252
|
+
- 모달 크기: large (1000px)
|
|
253
|
+
- 기본 정보 섹션: 제목, 설명, 노출기간
|
|
254
|
+
- 이미지 업로드 섹션: PC/모바일 이미지 분리
|
|
255
|
+
- 파일 선택: accept="image/*", 최대 10MB
|
|
256
|
+
- 미리보기: 업로드 즉시 썸네일 표시
|
|
257
|
+
- 크롭 기능: 비율 조정 (16:9, 1:1 등)
|
|
258
|
+
- 유효성 검증: 필수 이미지, 파일 크기, 형식
|
|
259
|
+
|
|
260
|
+
6. **순서 관리 모달**
|
|
261
|
+
- 드래그 앤 드롭: react-beautiful-dnd
|
|
262
|
+
- 썸네일 리스트: 작은 썸네일 + 제목
|
|
263
|
+
- 순서 번호 표시: 1, 2, 3...
|
|
264
|
+
- 저장 버튼: 변경된 순서 일괄 저장
|
|
265
|
+
- 취소 버튼: 원래 순서로 복원
|
|
266
|
+
|
|
267
|
+
7. **파일 업로드 처리**
|
|
268
|
+
- 이미지 업로드: FormData로 multipart 전송
|
|
269
|
+
- 진행률 표시: 업로드 프로그레스바
|
|
270
|
+
- 에러 처리: 파일 크기, 형식 체크
|
|
271
|
+
- 썸네일 생성: 서버에서 자동 생성
|
|
272
|
+
- CDN 연동: 업로드 후 CDN URL 반환
|
|
273
|
+
|
|
274
|
+
**DTO 활용 정보:**
|
|
275
|
+
- 기본 DTO: {도메인명} interface
|
|
276
|
+
- 이미지 정보: { pcImageFlInfo, moImageFlInfo }
|
|
277
|
+
- 파일 정보: { fileId, fileName, fileSize, prevewUrlCtnts }
|
|
278
|
+
- 순서 정보: sortOrder, displayOrder
|
|
279
|
+
|
|
280
|
+
**화면 경로:** /{도메인경로}/image-grid
|
|
281
|
+
**참고 화면:** 배너 관리, 상품 이미지 관리
|
|
282
|
+
|
|
283
|
+
**요청사항:**
|
|
284
|
+
- 반응형 썸네일 그리드 (4-6-8 컬럼)
|
|
285
|
+
- 이미지 지연 로딩 (IntersectionObserver)
|
|
286
|
+
- 대용량 이미지 최적화 (WebP 변환)
|
|
287
|
+
- 접근성 고려 (alt 텍스트, 키보드 내비게이션)
|
|
288
|
+
- 에러 상황 우아한 처리 (이미지 로드 실패 시 대체 이미지)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 실제 사용 예시
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
배너 관리 이미지 썸네일 그리드 + 모달 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
295
|
+
|
|
296
|
+
**필수 구현 요소:**
|
|
297
|
+
|
|
298
|
+
1. **API 연동 정보**
|
|
299
|
+
- 서비스: BannerSerevice, UploadService
|
|
300
|
+
- 목록 조회: postBannerListBanner
|
|
301
|
+
- 배너 등록: postBannerSaveBanner
|
|
302
|
+
- 이미지 업로드: postUploadBannerImage
|
|
303
|
+
- 순서 변경: postBannerUptDisplayOrder
|
|
304
|
+
- Request DTO: PostBannerListBannerRequest extends BannerSearch
|
|
305
|
+
- Response DTO: PostBannerListBannerResponse { page: DataGridPageResponse, ds: Banner[] }
|
|
306
|
+
|
|
307
|
+
2. **탭 기반 카테고리 구성**
|
|
308
|
+
- 탭 데이터: bannerLocTpList (배너 위치 타입)
|
|
309
|
+
- 활성 탭 상태: activeBannerLocTp
|
|
310
|
+
- 탭별 독립적 데이터 로딩
|
|
311
|
+
- 탭 변경 시 목록 새로고침
|
|
312
|
+
|
|
313
|
+
3. **검색 조건 구성**
|
|
314
|
+
- 카테고리 선택: ctgrNo (상품 카테고리)
|
|
315
|
+
- 채널 선택: mdiaClcd (미디어 구분코드) - RADIO
|
|
316
|
+
- 상태 필터: useYn (사용여부) - SELECT
|
|
317
|
+
- 노출기간: expsrBgnDtm ~ expsrEndDtm (DATE_RANGE)
|
|
318
|
+
|
|
319
|
+
4. **썸네일 그리드 구성**
|
|
320
|
+
- 배너명 컬럼: bannerNm (200px)
|
|
321
|
+
- 이미지 컬럼: PC(pcImageFlInfo)/모바일(moImageFlInfo) 썸네일
|
|
322
|
+
- 노출기간 컬럼: expsrBgnDtm ~ expsrEndDtm 표시
|
|
323
|
+
- ThumbPreview: 80x60 크기, border-radius: 4px
|
|
324
|
+
- 순서 컬럼: displayOrder 표시
|
|
325
|
+
|
|
326
|
+
5. **배너 등록/수정 모달**
|
|
327
|
+
- 기본 정보: bannerNm, bannerDesc, linkUrl
|
|
328
|
+
- 노출 설정: expsrBgnDtm, expsrEndDtm, useYn
|
|
329
|
+
- PC 이미지: 권장 크기 1920x800, 최대 5MB
|
|
330
|
+
- 모바일 이미지: 권장 크기 750x400, 최대 5MB
|
|
331
|
+
- 링크 설정: linkUrl, linkTrgtYn (새창여부)
|
|
332
|
+
|
|
333
|
+
6. **순서 관리 모달**
|
|
334
|
+
- 현재 탭의 배너들만 표시
|
|
335
|
+
- 썸네일 + 배너명 표시
|
|
336
|
+
- displayOrder 필드로 순서 관리
|
|
337
|
+
- 드래그 앤 드롭으로 순서 변경
|
|
338
|
+
|
|
339
|
+
**DTO 활용 정보:**
|
|
340
|
+
- 기본 DTO: Banner interface
|
|
341
|
+
- 이미지 정보: { pcImageFlInfo: AtchflInfo, moImageFlInfo: AtchflInfo }
|
|
342
|
+
- 파일 정보: AtchflInfo { fileId, fileName, fileSize, prevewUrlCtnts }
|
|
343
|
+
- 탭 정보: BannerLocTp { bannerLocTpcd, bannerLocTpnm }
|
|
344
|
+
|
|
345
|
+
**화면 경로:** /display/banner/image-grid
|
|
346
|
+
**참고 화면:** 기존 배너 관리
|
|
347
|
+
|
|
348
|
+
**요청사항:**
|
|
349
|
+
- 반응형 썸네일 그리드 (4-6-8 컬럼)
|
|
350
|
+
- 이미지 지연 로딩 (IntersectionObserver)
|
|
351
|
+
- WebP 이미지 최적화
|
|
352
|
+
- 드래그 앤 드롭 순서 변경
|
|
353
|
+
- 배너 미리보기 기능
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 8. 📝 일반 그리드 목록 + 모달형 (Grid Modal)
|
|
359
|
+
|
|
360
|
+
### 프롬프트 템플릿
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
{도메인명} 일반 그리드 목록 + 모달 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
364
|
+
|
|
365
|
+
**필수 구현 요소:**
|
|
366
|
+
|
|
367
|
+
1. **API 연동 정보**
|
|
368
|
+
- 서비스: {도메인명}Service
|
|
369
|
+
- 목록 조회: post{도메인명}List{기능명}
|
|
370
|
+
- 상세 조회: post{도메인명}Dtl{기능명}
|
|
371
|
+
- 등록/수정: post{도메인명}Save{기능명}
|
|
372
|
+
- 삭제: post{도메인명}Del{기능명}
|
|
373
|
+
- 엑셀 다운: post{도메인명}ListExcel{기능명}
|
|
374
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
375
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
376
|
+
|
|
377
|
+
2. **검색 조건 구성**
|
|
378
|
+
- SearchParams 컴포넌트 활용
|
|
379
|
+
- 텍스트 검색: {검색 필드명} (INPUT)
|
|
380
|
+
- 상태 필터: {상태 필드명} (SELECT)
|
|
381
|
+
- 카테고리 필터: {카테고리 필드명} (SELECT)
|
|
382
|
+
- 날짜 범위: {날짜 필드명} (DATE_RANGE)
|
|
383
|
+
- 조회 버튼: 검색 실행
|
|
384
|
+
- 초기화 버튼: 검색 조건 리셋
|
|
385
|
+
|
|
386
|
+
3. **데이터 그리드 구성**
|
|
387
|
+
- ListDataGrid 컴포넌트 사용
|
|
388
|
+
- 체크박스 선택: 다중 선택 지원
|
|
389
|
+
- 정렬 기능: 주요 컬럼별 정렬
|
|
390
|
+
- 페이지네이션: 기본 20개씩
|
|
391
|
+
- 컬럼 정의: {구체적인 컬럼 리스트}
|
|
392
|
+
- 더블클릭: 수정 모달 오픈
|
|
393
|
+
- 행 선택: 단일 선택으로 상세보기
|
|
394
|
+
|
|
395
|
+
4. **액션 버튼 구성**
|
|
396
|
+
- 등록 버튼: 새 항목 등록 모달
|
|
397
|
+
- 수정 버튼: 선택 항목 수정 모달
|
|
398
|
+
- 삭제 버튼: 선택 항목 삭제 (확인 다이얼로그)
|
|
399
|
+
- 엑셀 다운로드: 검색 결과 엑셀 다운
|
|
400
|
+
- 일괄 처리: 체크된 항목들 일괄 작업
|
|
401
|
+
|
|
402
|
+
5. **등록/수정 모달 구성**
|
|
403
|
+
- 모달 크기: {small/medium/large}
|
|
404
|
+
- 폼 레이아웃: {단일/2컬럼/탭형}
|
|
405
|
+
- 필수 입력 필드: {필수 필드 리스트}
|
|
406
|
+
- 선택 입력 필드: {선택 필드 리스트}
|
|
407
|
+
- 유효성 검증: 실시간 검증 + 저장 시 검증
|
|
408
|
+
- 저장 버튼: 데이터 저장 후 목록 새로고침
|
|
409
|
+
- 취소 버튼: 변경사항 확인 후 닫기
|
|
410
|
+
|
|
411
|
+
6. **데이터 흐름 관리**
|
|
412
|
+
- Store 패턴: use{도메인명}Store
|
|
413
|
+
- 목록 데이터: listData, listSpinning
|
|
414
|
+
- 모달 상태: {기능명}ModalProps
|
|
415
|
+
- 선택 상태: selectedRowKeys, selectedRows
|
|
416
|
+
- API 호출: callListApi, callSaveApi, callDeleteApi
|
|
417
|
+
|
|
418
|
+
7. **에러 처리 및 피드백**
|
|
419
|
+
- 로딩 상태: Spin 컴포넌트로 로딩 표시
|
|
420
|
+
- 성공 메시지: message.success()
|
|
421
|
+
- 에러 메시지: errorHandling() 함수 활용
|
|
422
|
+
- 유효성 검증: Form.Item rules 활용
|
|
423
|
+
- 확인 다이얼로그: Modal.confirm() 사용
|
|
424
|
+
|
|
425
|
+
**DTO 활용 정보:**
|
|
426
|
+
- 기본 DTO: {도메인명} interface
|
|
427
|
+
- 검색 DTO: {도메인명}Search interface
|
|
428
|
+
- 목록 응답: { page: DataGridPageResponse, ds: {도메인명}[] }
|
|
429
|
+
- 저장 요청: {도메인명} (전체 필드 포함)
|
|
430
|
+
- 삭제 요청: { {키필드명}: number[] }
|
|
431
|
+
|
|
432
|
+
**화면 경로:** /{도메인경로}/grid-modal
|
|
433
|
+
**권한 관리:** programFn으로 버튼 권한 제어
|
|
434
|
+
|
|
435
|
+
**요청사항:**
|
|
436
|
+
- 반응형 그리드 레이아웃
|
|
437
|
+
- 키보드 단축키 지원 (Ctrl+N: 신규, Delete: 삭제)
|
|
438
|
+
- 무한 스크롤 또는 가상 스크롤 (대용량 데이터)
|
|
439
|
+
- 컬럼 너비 조정 가능
|
|
440
|
+
- 필터링 및 정렬 상태 URL 동기화
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### 실제 사용 예시
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
FAQ 관리 일반 그리드 목록 + 모달 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
447
|
+
|
|
448
|
+
**필수 구현 요소:**
|
|
449
|
+
|
|
450
|
+
1. **API 연동 정보**
|
|
451
|
+
- 서비스: FaqService
|
|
452
|
+
- 목록 조회: postFaqListFaq
|
|
453
|
+
- 상세 조회: postFaqDtlFaq
|
|
454
|
+
- 등록/수정: postFaqSaveFaq
|
|
455
|
+
- 삭제: postFaqDelFaq
|
|
456
|
+
- 엑셀 다운: postFaqListFaqExcel
|
|
457
|
+
- Request DTO: PostFaqListFaqRequest extends FaqSearch
|
|
458
|
+
- Response DTO: PostFaqListFaqResponse { page, ds: Faq[] }
|
|
459
|
+
|
|
460
|
+
2. **검색 조건 구성**
|
|
461
|
+
- 키워드 검색: searchKeyword (제목+내용 통합 검색)
|
|
462
|
+
- 카테고리: faqCtgrCd (FAQ 카테고리 코드)
|
|
463
|
+
- 상태: useYn (사용여부)
|
|
464
|
+
- 등록일: creatDtm (DATE_RANGE)
|
|
465
|
+
- 조회 수: viewCnt 범위 검색
|
|
466
|
+
|
|
467
|
+
3. **데이터 그리드 구성**
|
|
468
|
+
- 컬럼: 번호, 카테고리, 제목, 조회수, 등록일, 상태
|
|
469
|
+
- 제목 컬럼: 클릭 시 내용 미리보기 툴팁
|
|
470
|
+
- 조회수 컬럼: 숫자 포맷팅 (1,000)
|
|
471
|
+
- 상태 컬럼: Badge 컴포넌트 (사용중/중지)
|
|
472
|
+
- 정렬: 등록일, 조회수, 제목 정렬 가능
|
|
473
|
+
|
|
474
|
+
4. **FAQ 등록/수정 모달**
|
|
475
|
+
- 모달 크기: large (900px)
|
|
476
|
+
- 기본 정보: faqTitle, faqCtgrCd, useYn
|
|
477
|
+
- 내용 영역: faqContent (Rich Text Editor)
|
|
478
|
+
- 태그: faqTags (다중 태그 입력)
|
|
479
|
+
- 첨부파일: atchFileList (파일 업로드)
|
|
480
|
+
- 미리보기: 저장 전 미리보기 기능
|
|
481
|
+
|
|
482
|
+
5. **특수 기능**
|
|
483
|
+
- 순서 관리: displayOrder로 표시 순서 조정
|
|
484
|
+
- 복사 기능: 기존 FAQ 복사하여 새 FAQ 생성
|
|
485
|
+
- 연관 FAQ: 관련 FAQ 연결 기능
|
|
486
|
+
- 통계: 카테고리별, 기간별 조회 통계
|
|
487
|
+
|
|
488
|
+
**DTO 활용 정보:**
|
|
489
|
+
- 기본 DTO: Faq { faqNo, faqTitle, faqContent, faqCtgrCd, viewCnt, useYn }
|
|
490
|
+
- 검색 DTO: FaqSearch { searchKeyword, faqCtgrCd, useYn, creatDtmRange }
|
|
491
|
+
- 카테고리: FaqCategory { faqCtgrCd, faqCtgrNm, sortOrder }
|
|
492
|
+
- 첨부파일: AtchflInfo[]
|
|
493
|
+
|
|
494
|
+
**화면 경로:** /cs/faq/grid-modal
|
|
495
|
+
**권한 관리:** CS 관리 권한 (읽기/쓰기/삭제)
|
|
496
|
+
|
|
497
|
+
**요청사항:**
|
|
498
|
+
- 반응형 그리드 레이아웃
|
|
499
|
+
- Rich Text Editor 연동 (Quill.js)
|
|
500
|
+
- 파일 첨부 기능
|
|
501
|
+
- FAQ 미리보기 모달
|
|
502
|
+
- 검색 하이라이팅
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## 9. ☑️ 체크박스 그리드 + 인라인 에디터형 (Checkbox Inline Editor)
|
|
508
|
+
|
|
509
|
+
### 프롬프트 템플릿
|
|
510
|
+
|
|
511
|
+
```
|
|
512
|
+
{도메인명} 체크박스 그리드 + 인라인 에디터 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
513
|
+
|
|
514
|
+
**필수 구현 요소:**
|
|
515
|
+
|
|
516
|
+
1. **API 연동 정보**
|
|
517
|
+
- 서비스: {도메인명}Service
|
|
518
|
+
- 목록 조회: post{도메인명}List{기능명}
|
|
519
|
+
- 인라인 수정: post{도메인명}UptInline{기능명}
|
|
520
|
+
- 벌크 수정: post{도메인명}UptBulk{기능명}
|
|
521
|
+
- 벌크 삭제: post{도메인명}DelBulk{기능명}
|
|
522
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
523
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
524
|
+
|
|
525
|
+
2. **체크박스 그리드 구성**
|
|
526
|
+
- ListDataGrid 컴포넌트 사용
|
|
527
|
+
- 전체 선택 체크박스: 헤더에 전체 선택/해제
|
|
528
|
+
- 개별 선택 체크박스: 각 행별 선택
|
|
529
|
+
- 선택 상태 표시: 선택된 행 하이라이트
|
|
530
|
+
- 선택 개수 표시: "n개 선택됨" 상태 표시
|
|
531
|
+
- 페이지 간 선택 유지: 페이지 이동해도 선택 상태 유지
|
|
532
|
+
|
|
533
|
+
3. **인라인 에디터 구성**
|
|
534
|
+
- 편집 가능 컬럼: {편집 대상 컬럼 리스트}
|
|
535
|
+
- 편집 모드 진입: 더블클릭 또는 F2 키
|
|
536
|
+
- 편집 컨트롤:
|
|
537
|
+
* 텍스트: Input 컴포넌트
|
|
538
|
+
* 숫자: InputNumber 컴포넌트
|
|
539
|
+
* 선택: Select 컴포넌트
|
|
540
|
+
* 날짜: DatePicker 컴포넌트
|
|
541
|
+
* 스위치: Switch 컴포넌트
|
|
542
|
+
- 편집 상태 표시: 테두리 하이라이트, 아이콘 표시
|
|
543
|
+
|
|
544
|
+
4. **편집 기능 상세**
|
|
545
|
+
- 실시간 유효성 검증: 입력 중 즉시 검증
|
|
546
|
+
- 저장 트리거: Enter키, Tab키, 포커스 아웃
|
|
547
|
+
- 취소 기능: ESC키 또는 취소 아이콘
|
|
548
|
+
- 변경 감지: 수정된 셀 시각적 표시
|
|
549
|
+
- 키보드 내비게이션: Tab/Shift+Tab으로 셀 이동
|
|
550
|
+
- 편집 로그: 변경 내역 추적
|
|
551
|
+
|
|
552
|
+
5. **벌크 작업 기능**
|
|
553
|
+
- 선택 항목 일괄 수정: 공통 값 적용
|
|
554
|
+
- 선택 항목 일괄 삭제: 확인 후 삭제
|
|
555
|
+
- 선택 항목 상태 변경: 사용/중지 토글
|
|
556
|
+
- 선택 항목 내보내기: 엑셀 다운로드
|
|
557
|
+
- 진행률 표시: 대량 작업 시 프로그레스바
|
|
558
|
+
|
|
559
|
+
6. **변경사항 관리**
|
|
560
|
+
- 임시 저장: 로컬 상태로 변경사항 보관
|
|
561
|
+
- 자동 저장: 설정 가능한 자동 저장 간격
|
|
562
|
+
- 되돌리기: Ctrl+Z로 변경사항 취소
|
|
563
|
+
- 저장 확인: 미저장 변경사항 있을 때 페이지 이탈 방지
|
|
564
|
+
- 충돌 방지: 낙관적 잠금으로 동시 편집 방지
|
|
565
|
+
|
|
566
|
+
7. **사용자 경험 향상**
|
|
567
|
+
- 편집 가능 셀 표시: 호버 시 편집 가능 표시
|
|
568
|
+
- 단축키 지원: Ctrl+A(전체선택), Ctrl+S(저장)
|
|
569
|
+
- 상태 표시: 저장 중, 저장 완료, 에러 상태
|
|
570
|
+
- 되돌리기 히스토리: 최근 10개 변경사항 히스토리
|
|
571
|
+
- 성능 최적화: 가상 스크롤로 대용량 데이터 처리
|
|
572
|
+
|
|
573
|
+
**DTO 활용 정보:**
|
|
574
|
+
- 기본 DTO: {도메인명} interface
|
|
575
|
+
- 인라인 수정: { {키필드명}, {수정필드명}, {수정값} }
|
|
576
|
+
- 벌크 수정: { {키필드명}[], {수정필드명}, {적용값} }
|
|
577
|
+
- 변경 로그: { {키필드명}, fieldName, oldValue, newValue, timestamp }
|
|
578
|
+
|
|
579
|
+
**화면 경로:** /{도메인경로}/checkbox-inline
|
|
580
|
+
**권한 관리:** 읽기/인라인수정/벌크수정/삭제 권한 분리
|
|
581
|
+
|
|
582
|
+
**요청사항:**
|
|
583
|
+
- 대용량 데이터 처리 (1000개 이상)
|
|
584
|
+
- 실시간 유효성 검증
|
|
585
|
+
- 키보드 친화적 UI
|
|
586
|
+
- 접근성 준수 (스크린 리더 지원)
|
|
587
|
+
- 모바일 대응 (터치 편집)
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### 실제 사용 예시
|
|
591
|
+
|
|
592
|
+
```
|
|
593
|
+
상품 가격 관리 체크박스 그리드 + 인라인 에디터 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
594
|
+
|
|
595
|
+
**필수 구현 요소:**
|
|
596
|
+
|
|
597
|
+
1. **API 연동 정보**
|
|
598
|
+
- 서비스: ProductService
|
|
599
|
+
- 목록 조회: postProductListPrice
|
|
600
|
+
- 인라인 수정: postProductUptInlinePrice
|
|
601
|
+
- 벌크 수정: postProductUptBulkPrice
|
|
602
|
+
- 벌크 상태변경: postProductUptBulkSaleStatus
|
|
603
|
+
- Request DTO: PostProductListPriceRequest extends ProductSearch
|
|
604
|
+
- Response DTO: PostProductListPriceResponse { page, ds: Product[] }
|
|
605
|
+
|
|
606
|
+
2. **체크박스 그리드 구성**
|
|
607
|
+
- 컬럼: 체크박스, 상품코드, 상품명, 판매가, 할인가, 할인율, 판매상태
|
|
608
|
+
- 읽기전용: 상품코드, 상품명
|
|
609
|
+
- 편집가능: salePrice, discountPrice, discountRate, saleStatus
|
|
610
|
+
- 전체 선택: 현재 페이지 전체 상품 선택
|
|
611
|
+
- 조건부 선택: 특정 브랜드, 카테고리별 선택
|
|
612
|
+
|
|
613
|
+
3. **인라인 에디터 상세**
|
|
614
|
+
- 판매가(salePrice): InputNumber, 최소값 0, 천원 단위
|
|
615
|
+
- 할인가(discountPrice): InputNumber, 판매가보다 작아야 함
|
|
616
|
+
- 할인율(discountRate): InputNumber, 0-100%, 자동 계산
|
|
617
|
+
- 판매상태(saleStatus): Select, [판매중/일시중지/품절]
|
|
618
|
+
- 실시간 계산: 할인가 입력시 할인율 자동 계산
|
|
619
|
+
|
|
620
|
+
4. **유효성 검증 규칙**
|
|
621
|
+
- 판매가: 필수, 0 이상, 최대 1억원
|
|
622
|
+
- 할인가: 판매가 이하, 음수 불가
|
|
623
|
+
- 할인율: 0-100%, 소수점 둘째자리까지
|
|
624
|
+
- 상호 연동: 할인가/할인율 중 하나 변경시 다른 하나 자동 계산
|
|
625
|
+
|
|
626
|
+
5. **벌크 작업 기능**
|
|
627
|
+
- 일괄 할인율 적용: 선택 상품에 동일 할인율 적용
|
|
628
|
+
- 일괄 가격 인상: 선택 상품에 % 또는 금액 인상
|
|
629
|
+
- 일괄 상태 변경: 판매중지, 품절 처리
|
|
630
|
+
- 일괄 삭제: 선택 상품 삭제 (확인 필요)
|
|
631
|
+
|
|
632
|
+
6. **특수 기능**
|
|
633
|
+
- 가격 히스토리: 가격 변경 이력 추적
|
|
634
|
+
- 경쟁사 가격: 외부 API 연동으로 경쟁사 가격 표시
|
|
635
|
+
- 가격 알림: 설정된 임계값 도달시 알림
|
|
636
|
+
- 엑셀 업로드: 대량 가격 변경을 위한 엑셀 업로드
|
|
637
|
+
|
|
638
|
+
**DTO 활용 정보:**
|
|
639
|
+
- 기본 DTO: Product { productId, productCode, productName, salePrice, discountPrice, discountRate, saleStatus }
|
|
640
|
+
- 인라인 수정: { productId, fieldName, fieldValue, version }
|
|
641
|
+
- 벌크 수정: { productIds: number[], updateData: Partial<Product> }
|
|
642
|
+
- 가격 히스토리: PriceHistory { productId, oldPrice, newPrice, changedBy, changedAt }
|
|
643
|
+
|
|
644
|
+
**화면 경로:** /product/price/checkbox-inline
|
|
645
|
+
**권한 관리:** 상품관리 권한 + 가격수정 권한
|
|
646
|
+
|
|
647
|
+
**요청사항:**
|
|
648
|
+
- 대용량 데이터 처리 (10,000개 상품)
|
|
649
|
+
- 실시간 가격 계산
|
|
650
|
+
- 가격 변경 이력 관리
|
|
651
|
+
- 엑셀 업로드/다운로드
|
|
652
|
+
- 모바일 터치 편집 지원
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
---
|
|
656
|
+
|
|
657
|
+
## 10. 📄 타이틀 셀병합 그리드 + 모달 + 에디터형 (Title Merged Grid Modal Editor)
|
|
658
|
+
|
|
659
|
+
### 프롬프트 템플릿
|
|
660
|
+
|
|
661
|
+
```
|
|
662
|
+
{도메인명} 타이틀 셀병합 그리드 + 모달 + 에디터 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
663
|
+
|
|
664
|
+
**필수 구현 요소:**
|
|
665
|
+
|
|
666
|
+
1. **API 연동 정보**
|
|
667
|
+
- 서비스: {도메인명}Service
|
|
668
|
+
- 그룹 목록 조회: post{도메인명}ListGroup{기능명}
|
|
669
|
+
- 상세 목록 조회: post{도메인명}ListDetail{기능명}
|
|
670
|
+
- 그룹 저장: post{도메인명}SaveGroup{기능명}
|
|
671
|
+
- 상세 저장: post{도메인명}SaveDetail{기능명}
|
|
672
|
+
- Request DTO: Post{도메인명}ListGroup{기능명}Request
|
|
673
|
+
- Response DTO: Post{도메인명}ListGroup{기능명}Response
|
|
674
|
+
|
|
675
|
+
2. **셀 병합 그리드 구성**
|
|
676
|
+
- 그룹 타이틀 셀: rowSpan으로 세로 병합
|
|
677
|
+
- 그룹별 상세 데이터: 하위 행들로 표시
|
|
678
|
+
- 병합 규칙: {그룹키 필드명}별로 병합
|
|
679
|
+
- 그룹 헤더: 볼드 처리, 배경색 다르게
|
|
680
|
+
- 그룹 접기/펼치기: 확장/축소 기능
|
|
681
|
+
- 그룹별 합계: 숫자 컬럼 합계 표시
|
|
682
|
+
|
|
683
|
+
3. **그리드 컬럼 구성**
|
|
684
|
+
- 그룹 컬럼: {그룹명} (병합, 편집 불가)
|
|
685
|
+
- 상세 컬럼들: {상세 컬럼 리스트}
|
|
686
|
+
- 액션 컬럼: 수정/삭제 버튼
|
|
687
|
+
- 체크박스: 그룹 단위 선택 가능
|
|
688
|
+
- 정렬: 그룹 내에서만 정렬
|
|
689
|
+
- 필터: 그룹별 필터링 지원
|
|
690
|
+
|
|
691
|
+
4. **모달 에디터 구성**
|
|
692
|
+
- 그룹 편집 모달: 그룹 정보 수정
|
|
693
|
+
- 상세 편집 모달: 개별 항목 수정
|
|
694
|
+
- 일괄 편집 모달: 그룹 내 여러 항목 동시 수정
|
|
695
|
+
- 모달 크기: {크기} (그룹/상세에 따라 다름)
|
|
696
|
+
- 탭 구성: 기본정보/상세정보/설정 탭
|
|
697
|
+
- 리치 에디터: {에디터 사용 필드}
|
|
698
|
+
|
|
699
|
+
5. **에디터 기능 상세**
|
|
700
|
+
- Rich Text Editor: Quill.js 또는 TinyMCE
|
|
701
|
+
- 이미지 업로드: 에디터 내 이미지 삽입
|
|
702
|
+
- 링크 삽입: URL 유효성 검증
|
|
703
|
+
- 표 삽입: 테이블 생성/편집
|
|
704
|
+
- 코드 블록: 코드 하이라이팅
|
|
705
|
+
- 미리보기: 실시간 미리보기
|
|
706
|
+
- 자동 저장: 30초마다 임시 저장
|
|
707
|
+
|
|
708
|
+
6. **그룹 관리 기능**
|
|
709
|
+
- 그룹 추가: 새 그룹 생성
|
|
710
|
+
- 그룹 삭제: 하위 항목 포함 삭제 확인
|
|
711
|
+
- 그룹 순서: 드래그 앤 드롭으로 순서 변경
|
|
712
|
+
- 그룹 복사: 그룹 전체 복사
|
|
713
|
+
- 그룹 병합: 여러 그룹을 하나로 병합
|
|
714
|
+
- 그룹 분할: 하나의 그룹을 여러 그룹으로 분할
|
|
715
|
+
|
|
716
|
+
7. **상세 항목 관리**
|
|
717
|
+
- 항목 추가: 그룹 내 새 항목 추가
|
|
718
|
+
- 항목 이동: 다른 그룹으로 이동
|
|
719
|
+
- 항목 복사: 같은/다른 그룹으로 복사
|
|
720
|
+
- 항목 순서: 그룹 내 순서 변경
|
|
721
|
+
- 일괄 작업: 선택 항목들 일괄 처리
|
|
722
|
+
|
|
723
|
+
8. **UI/UX 최적화**
|
|
724
|
+
- 가상 스크롤: 대량 데이터 최적화
|
|
725
|
+
- 지연 로딩: 그룹 펼칠 때 상세 데이터 로딩
|
|
726
|
+
- 검색 하이라이팅: 검색어 강조 표시
|
|
727
|
+
- 키보드 단축키: 자주 사용하는 기능
|
|
728
|
+
- 툴팁: 셀 데이터가 길 때 전체 내용 표시
|
|
729
|
+
|
|
730
|
+
**DTO 활용 정보:**
|
|
731
|
+
- 그룹 DTO: {그룹도메인명} interface
|
|
732
|
+
- 상세 DTO: {상세도메인명} interface
|
|
733
|
+
- 병합 데이터: { groupData: {그룹DTO}[], detailData: {상세DTO}[] }
|
|
734
|
+
- 에디터 내용: { content: string, htmlContent: string, attachments: FileInfo[] }
|
|
735
|
+
|
|
736
|
+
**화면 경로:** /{도메인경로}/merged-grid-modal
|
|
737
|
+
**권한 관리:** 그룹 관리/상세 관리 권한 분리
|
|
738
|
+
|
|
739
|
+
**요청사항:**
|
|
740
|
+
- 셀 병합 렌더링 최적화
|
|
741
|
+
- Rich Text Editor 성능 최적화
|
|
742
|
+
- 대용량 데이터 지원 (1000+ 그룹)
|
|
743
|
+
- 접근성 고려 (스크린 리더 지원)
|
|
744
|
+
- 모바일 대응 (터치 인터페이스)
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
### 실제 사용 예시
|
|
748
|
+
|
|
749
|
+
```
|
|
750
|
+
상품 상세 정보 관리 타이틀 셀병합 그리드 + 모달 + 에디터 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
751
|
+
|
|
752
|
+
**필수 구현 요소:**
|
|
753
|
+
|
|
754
|
+
1. **API 연동 정보**
|
|
755
|
+
- 서비스: ProductService, ProductSpecService
|
|
756
|
+
- 그룹 목록: postProductListSpecGroup
|
|
757
|
+
- 상세 목록: postProductSpecListSpecDetail
|
|
758
|
+
- 그룹 저장: postProductSpecSaveGroup
|
|
759
|
+
- 상세 저장: postProductSpecSaveDetail
|
|
760
|
+
- Request DTO: PostProductListSpecGroupRequest extends ProductSearch
|
|
761
|
+
- Response DTO: PostProductListSpecGroupResponse { ds: ProductSpecGroup[] }
|
|
762
|
+
|
|
763
|
+
2. **셀 병합 그리드 구성**
|
|
764
|
+
- 스펙 그룹명: specGroupName (rowSpan 병합)
|
|
765
|
+
- 스펙 항목명: specItemName
|
|
766
|
+
- 스펙 값: specValue
|
|
767
|
+
- 단위: specUnit
|
|
768
|
+
- 표시순서: displayOrder
|
|
769
|
+
- 사용여부: useYn
|
|
770
|
+
- 그룹별 색상: 그룹마다 다른 배경색
|
|
771
|
+
|
|
772
|
+
3. **모달 에디터 구성**
|
|
773
|
+
- 그룹 편집: specGroupName, groupDescription, displayOrder
|
|
774
|
+
- 상세 편집: specItemName, specValue, specUnit, detailDescription
|
|
775
|
+
- 상세 설명 에디터: Rich Text Editor (상품 스펙 상세 설명)
|
|
776
|
+
- 이미지 업로드: 스펙 관련 이미지 첨부
|
|
777
|
+
- 테이블 에디터: 복잡한 스펙 표 작성
|
|
778
|
+
|
|
779
|
+
4. **에디터 상세 기능**
|
|
780
|
+
- Quill.js Rich Text Editor
|
|
781
|
+
- 이미지 업로드: 드래그 앤 드롭 지원
|
|
782
|
+
- 표 삽입: 스펙 비교표 생성
|
|
783
|
+
- 수식 입력: MathJax로 수학 공식
|
|
784
|
+
- 코드 블록: 기술 스펙 코드
|
|
785
|
+
- 자동 저장: 변경 감지시 자동 저장
|
|
786
|
+
|
|
787
|
+
5. **특수 기능**
|
|
788
|
+
- 스펙 템플릿: 카테고리별 기본 스펙 템플릿
|
|
789
|
+
- 스펙 복사: 유사 상품에서 스펙 복사
|
|
790
|
+
- 스펙 비교: 여러 상품 스펙 비교 테이블
|
|
791
|
+
- 스펙 검색: 전체 스펙에서 키워드 검색
|
|
792
|
+
- 스펙 히스토리: 스펙 변경 이력 관리
|
|
793
|
+
|
|
794
|
+
**DTO 활용 정보:**
|
|
795
|
+
- 그룹 DTO: ProductSpecGroup { groupId, specGroupName, groupDescription, displayOrder, productId }
|
|
796
|
+
- 상세 DTO: ProductSpecDetail { detailId, groupId, specItemName, specValue, specUnit, detailDescription }
|
|
797
|
+
- 에디터 DTO: SpecEditorContent { content, htmlContent, images: FileInfo[] }
|
|
798
|
+
- 템플릿 DTO: SpecTemplate { templateId, categoryId, templateName, specGroups: ProductSpecGroup[] }
|
|
799
|
+
|
|
800
|
+
**화면 경로:** /product/spec/merged-grid-modal
|
|
801
|
+
**권한 관리:** 상품 관리 권한 + 스펙 편집 권한
|
|
802
|
+
|
|
803
|
+
**요청사항:**
|
|
804
|
+
- 복잡한 스펙 표 렌더링
|
|
805
|
+
- Rich Text Editor 이미지 최적화
|
|
806
|
+
- 스펙 템플릿 시스템
|
|
807
|
+
- 스펙 변경 이력 추적
|
|
808
|
+
- 모바일에서도 편집 가능
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
---
|
|
812
|
+
|
|
813
|
+
## 11. ↔️ 좌우 그리드 목록형 (Dual Grid Layout)
|
|
814
|
+
|
|
815
|
+
### 프롬프트 템플릿
|
|
816
|
+
|
|
817
|
+
```
|
|
818
|
+
{도메인명} 좌우 그리드 목록 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
819
|
+
|
|
820
|
+
**필수 구현 요소:**
|
|
821
|
+
|
|
822
|
+
1. **API 연동 정보**
|
|
823
|
+
- 서비스: {도메인명}Service
|
|
824
|
+
- 좌측 목록: post{도메인명}List{좌측기능명}
|
|
825
|
+
- 우측 목록: post{도메인명}List{우측기능명}
|
|
826
|
+
- 연관 조회: post{도메인명}ListRelated{기능명}
|
|
827
|
+
- 데이터 이동: post{도메인명}Move{기능명}
|
|
828
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
829
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
830
|
+
|
|
831
|
+
2. **레이아웃 구성**
|
|
832
|
+
- Split Layout: 좌우 분할 레이아웃
|
|
833
|
+
- 크기 조절: ColResizer로 좌우 크기 조절 가능
|
|
834
|
+
- 최소 너비: 좌측 300px, 우측 400px
|
|
835
|
+
- 기본 비율: 40:60 또는 50:50
|
|
836
|
+
- 전체화면: 한쪽 그리드 전체화면 모드
|
|
837
|
+
- 반응형: 모바일에서는 탭으로 전환
|
|
838
|
+
|
|
839
|
+
3. **좌측 그리드 구성**
|
|
840
|
+
- 제목: {좌측 그리드 제목}
|
|
841
|
+
- 데이터: {좌측 데이터 타입}
|
|
842
|
+
- 주요 컬럼: {좌측 컬럼 리스트}
|
|
843
|
+
- 선택 모드: 단일 선택 (라디오)
|
|
844
|
+
- 검색: 간단한 키워드 검색
|
|
845
|
+
- 정렬: {주요 정렬 컬럼}
|
|
846
|
+
- 클릭 이벤트: 우측 데이터 자동 로딩
|
|
847
|
+
|
|
848
|
+
4. **우측 그리드 구성**
|
|
849
|
+
- 제목: {우측 그리드 제목}
|
|
850
|
+
- 데이터: 좌측 선택 항목과 연관된 데이터
|
|
851
|
+
- 주요 컬럼: {우측 컬럼 리스트}
|
|
852
|
+
- 선택 모드: 다중 선택 (체크박스)
|
|
853
|
+
- 필터링: 상세 필터 조건
|
|
854
|
+
- 액션: 등록/수정/삭제 버튼
|
|
855
|
+
- 의존성: 좌측 선택 없으면 비활성화
|
|
856
|
+
|
|
857
|
+
5. **데이터 연동**
|
|
858
|
+
- 마스터-디테일: 좌측(마스터) → 우측(디테일)
|
|
859
|
+
- 자동 로딩: 좌측 선택 변경시 우측 자동 새로고침
|
|
860
|
+
- 로딩 상태: 우측 로딩 중 Spin 표시
|
|
861
|
+
- 빈 상태: 선택 없을 때 EmptyMsg 표시
|
|
862
|
+
- 에러 처리: 연관 데이터 로딩 실패 처리
|
|
863
|
+
|
|
864
|
+
6. **데이터 이동/연결 기능**
|
|
865
|
+
- 드래그 앤 드롭: 좌측 → 우측 또는 우측 → 좌측
|
|
866
|
+
- 이동 버튼: 선택 항목 이동 버튼
|
|
867
|
+
- 연결 생성: 새로운 연관 관계 생성
|
|
868
|
+
- 연결 해제: 기존 연관 관계 제거
|
|
869
|
+
- 일괄 처리: 여러 항목 동시 이동/연결
|
|
870
|
+
|
|
871
|
+
7. **검색 및 필터**
|
|
872
|
+
- 좌측 검색: {좌측 검색 조건}
|
|
873
|
+
- 우측 검색: {우측 검색 조건}
|
|
874
|
+
- 연관 필터: 연관 정도별 필터링
|
|
875
|
+
- 동기화 옵션: 좌우 검색 조건 동기화
|
|
876
|
+
- 즐겨찾기: 자주 사용하는 조합 저장
|
|
877
|
+
|
|
878
|
+
8. **상태 관리**
|
|
879
|
+
- 좌측 선택 상태: selectedLeftItem
|
|
880
|
+
- 우측 선택 상태: selectedRightItems
|
|
881
|
+
- 레이아웃 상태: leftWidth, rightWidth
|
|
882
|
+
- 검색 상태: leftSearchParams, rightSearchParams
|
|
883
|
+
- 로딩 상태: leftLoading, rightLoading
|
|
884
|
+
|
|
885
|
+
**DTO 활용 정보:**
|
|
886
|
+
- 좌측 DTO: {좌측도메인명} interface
|
|
887
|
+
- 우측 DTO: {우측도메인명} interface
|
|
888
|
+
- 연관 DTO: {연관관계도메인명} interface
|
|
889
|
+
- 이동 요청: { from{도메인명}Ids: number[], to{도메인명}Id: number }
|
|
890
|
+
|
|
891
|
+
**화면 경로:** /{도메인경로}/dual-grid
|
|
892
|
+
**권한 관리:** 좌측 읽기/우측 읽기/연관 관리 권한
|
|
893
|
+
|
|
894
|
+
**요청사항:**
|
|
895
|
+
- 원활한 좌우 데이터 연동
|
|
896
|
+
- 드래그 앤 드롭 인터랙션
|
|
897
|
+
- 레이아웃 상태 유지 (새로고침 후에도)
|
|
898
|
+
- 키보드 내비게이션 (Tab, 방향키)
|
|
899
|
+
- 성능 최적화 (가상 스크롤)
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
### 실제 사용 예시
|
|
903
|
+
|
|
904
|
+
```
|
|
905
|
+
사용자 권한 관리 좌우 그리드 목록 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
906
|
+
|
|
907
|
+
**필수 구현 요소:**
|
|
908
|
+
|
|
909
|
+
1. **API 연동 정보**
|
|
910
|
+
- 서비스: SystemUserService, SystemRoleService
|
|
911
|
+
- 좌측 목록: postSystemUserListUser (사용자 목록)
|
|
912
|
+
- 우측 목록: postSystemRoleListUserRole (사용자별 권한 목록)
|
|
913
|
+
- 권한 부여: postSystemUserGrantRole
|
|
914
|
+
- 권한 해제: postSystemUserRevokeRole
|
|
915
|
+
- Request DTO: PostSystemUserListUserRequest extends UserSearch
|
|
916
|
+
- Response DTO: PostSystemUserListUserResponse { page, ds: SystemUser[] }
|
|
917
|
+
|
|
918
|
+
2. **레이아웃 구성**
|
|
919
|
+
- 좌측 40%, 우측 60% 기본 분할
|
|
920
|
+
- ColResizer로 크기 조절
|
|
921
|
+
- 최소 너비: 좌측 350px, 우측 450px
|
|
922
|
+
- 모바일: 탭 전환 (사용자/권한)
|
|
923
|
+
|
|
924
|
+
3. **좌측 그리드 (사용자 목록)**
|
|
925
|
+
- 컬럼: 사용자ID, 사용자명, 부서, 상태, 최종로그인
|
|
926
|
+
- 검색: 사용자ID, 사용자명, 부서별 검색
|
|
927
|
+
- 정렬: 사용자명, 최종로그인일 정렬
|
|
928
|
+
- 상태 필터: 활성/비활성 사용자
|
|
929
|
+
- 단일 선택: 라디오 버튼
|
|
930
|
+
|
|
931
|
+
4. **우측 그리드 (권한 목록)**
|
|
932
|
+
- 컬럼: 권한명, 권한유형, 부여일, 만료일, 상태
|
|
933
|
+
- 권한 유형: 시스템권한/메뉴권한/데이터권한
|
|
934
|
+
- 체크박스: 다중 선택으로 일괄 관리
|
|
935
|
+
- 만료 알림: 만료 임박 권한 하이라이트
|
|
936
|
+
- 상속 표시: 그룹에서 상속받은 권한 표시
|
|
937
|
+
|
|
938
|
+
5. **권한 관리 기능**
|
|
939
|
+
- 권한 부여: 사용 가능한 권한 목록에서 선택
|
|
940
|
+
- 권한 해제: 선택된 권한 해제
|
|
941
|
+
- 임시 권한: 기간 한정 권한 부여
|
|
942
|
+
- 권한 복사: 다른 사용자 권한 복사
|
|
943
|
+
- 권한 템플릿: 역할별 권한 템플릿 적용
|
|
944
|
+
|
|
945
|
+
6. **특수 기능**
|
|
946
|
+
- 권한 트리: 계층적 권한 구조 표시
|
|
947
|
+
- 권한 상속: 상위 권한 자동 상속
|
|
948
|
+
- 권한 충돌: 상충되는 권한 탐지
|
|
949
|
+
- 권한 히스토리: 권한 변경 이력 추적
|
|
950
|
+
- 대량 권한 부여: 엑셀로 대량 권한 관리
|
|
951
|
+
|
|
952
|
+
**DTO 활용 정보:**
|
|
953
|
+
- 사용자 DTO: SystemUser { userId, userName, userLoginId, departmentName, userStatus }
|
|
954
|
+
- 권한 DTO: SystemRole { roleId, roleName, roleType, grantDate, expireDate, isInherited }
|
|
955
|
+
- 권한 부여: UserRoleGrant { userId, roleIds: number[], grantPeriod, grantReason }
|
|
956
|
+
- 권한 이력: UserRoleHistory { userId, roleId, action, grantedBy, grantedAt }
|
|
957
|
+
|
|
958
|
+
**화면 경로:** /system/user/dual-grid
|
|
959
|
+
**권한 관리:** 시스템 관리자 권한 + 사용자 권한 관리
|
|
960
|
+
|
|
961
|
+
**요청사항:**
|
|
962
|
+
- 실시간 권한 상태 반영
|
|
963
|
+
- 권한 충돌 방지 로직
|
|
964
|
+
- 대용량 사용자 지원 (10,000+)
|
|
965
|
+
- 권한 변경 이력 추적
|
|
966
|
+
- 모바일 권한 관리 UI
|
|
967
|
+
```
|
|
968
|
+
|
|
969
|
+
---
|
|
970
|
+
|
|
971
|
+
## 12. 📊 StatDataGrid 사용형 (Statistical Grid)
|
|
972
|
+
|
|
973
|
+
### 프롬프트 템플릿
|
|
974
|
+
|
|
975
|
+
```
|
|
976
|
+
{도메인명} 통계 데이터 그리드 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
977
|
+
|
|
978
|
+
**필수 구현 요소:**
|
|
979
|
+
|
|
980
|
+
1. **API 연동 정보**
|
|
981
|
+
- 서비스: {도메인명}Service
|
|
982
|
+
- 통계 조회: post{도메인명}Stats{기능명}
|
|
983
|
+
- 상세 조회: post{도메인명}Detail{기능명}
|
|
984
|
+
- 엑셀 다운: post{도메인명}StatsExcel{기능명}
|
|
985
|
+
- Request DTO: Post{도메인명}Stats{기능명}Request
|
|
986
|
+
- Response DTO: Post{도메인명}Stats{기능명}Response
|
|
987
|
+
|
|
988
|
+
2. **StatDataGrid 설정**
|
|
989
|
+
- 컴포넌트: StatDataGrid 사용
|
|
990
|
+
- 통계 타입: {SUM/AVG/COUNT/MAX/MIN}
|
|
991
|
+
- 그룹핑 필드: {그룹핑 기준 필드}
|
|
992
|
+
- 집계 필드: {집계 대상 필드들}
|
|
993
|
+
- 소계/총계: 자동 계산 및 표시
|
|
994
|
+
- 퍼센트: 비율 계산 및 표시
|
|
995
|
+
|
|
996
|
+
3. **그리드 컬럼 구성**
|
|
997
|
+
- 그룹 컬럼: {그룹핑 컬럼명}
|
|
998
|
+
- 통계 컬럼들: {통계 데이터 컬럼들}
|
|
999
|
+
- 포맷팅:
|
|
1000
|
+
* 숫자: 천단위 구분자 (1,000)
|
|
1001
|
+
* 통화: ₩ 표시
|
|
1002
|
+
* 퍼센트: % 표시
|
|
1003
|
+
* 소수점: 둘째자리까지
|
|
1004
|
+
- 정렬: 통계값 기준 정렬
|
|
1005
|
+
- 색상 코딩: 값 범위별 배경색
|
|
1006
|
+
|
|
1007
|
+
4. **필터 및 검색**
|
|
1008
|
+
- 기간 선택: {기간 필드명} (필수)
|
|
1009
|
+
- 그룹 필터: {그룹 선택 옵션}
|
|
1010
|
+
- 범위 필터: 통계값 범위 필터
|
|
1011
|
+
- 상위/하위 N: Top N, Bottom N 필터
|
|
1012
|
+
- 임계값: 설정 값 이상/이하 필터
|
|
1013
|
+
- 비교 기간: 전년 동기 대비
|
|
1014
|
+
|
|
1015
|
+
5. **차트 연동**
|
|
1016
|
+
- 차트 라이브러리: Recharts 또는 Chart.js
|
|
1017
|
+
- 차트 타입: {Bar/Line/Pie/Area}
|
|
1018
|
+
- 데이터 연동: 그리드 데이터와 실시간 동기화
|
|
1019
|
+
- 차트 토글: 차트 보기/숨기기
|
|
1020
|
+
- 차트 설정: 축, 범례, 색상 커스터마이징
|
|
1021
|
+
- 차트 내보내기: PNG, PDF 내보내기
|
|
1022
|
+
|
|
1023
|
+
6. **드릴다운 기능**
|
|
1024
|
+
- 클릭 이벤트: 통계 셀 클릭시 상세 데이터
|
|
1025
|
+
- 상세 모달: 집계 대상 상세 목록 표시
|
|
1026
|
+
- 브레드크럼: 드릴다운 경로 표시
|
|
1027
|
+
- 뒤로가기: 상위 레벨로 돌아가기
|
|
1028
|
+
- 즐겨찾기: 자주 보는 드릴다운 경로 저장
|
|
1029
|
+
|
|
1030
|
+
7. **실시간 업데이트**
|
|
1031
|
+
- 자동 새로고침: 설정 간격으로 자동 업데이트
|
|
1032
|
+
- 실시간 알림: 임계값 초과시 알림
|
|
1033
|
+
- 변화량 표시: 전 기간 대비 증감률
|
|
1034
|
+
- 트렌드 표시: 상승/하락/보합 아이콘
|
|
1035
|
+
- 실시간 차트: 실시간 데이터 차트 업데이트
|
|
1036
|
+
|
|
1037
|
+
8. **대시보드 위젯**
|
|
1038
|
+
- 위젯화: 대시보드에 배치 가능한 위젯
|
|
1039
|
+
- 크기 조절: 위젯 크기 조절 가능
|
|
1040
|
+
- 설정 저장: 사용자별 위젯 설정 저장
|
|
1041
|
+
- 공유: 위젯 설정 다른 사용자와 공유
|
|
1042
|
+
- 알림 설정: 위젯별 알림 임계값 설정
|
|
1043
|
+
|
|
1044
|
+
**DTO 활용 정보:**
|
|
1045
|
+
- 통계 요청: { groupBy: string[], aggregateFields: string[], period: DateRange }
|
|
1046
|
+
- 통계 응답: { stats: StatData[], summary: SummaryData, chart: ChartData }
|
|
1047
|
+
- 상세 조회: { groupValue: string, period: DateRange, page: PageInfo }
|
|
1048
|
+
- 드릴다운: { path: string[], filters: FilterInfo[] }
|
|
1049
|
+
|
|
1050
|
+
**화면 경로:** /{도메인경로}/stats-grid
|
|
1051
|
+
**권한 관리:** 통계 조회 권한 + 상세 조회 권한
|
|
1052
|
+
|
|
1053
|
+
**요청사항:**
|
|
1054
|
+
- 대용량 통계 데이터 처리
|
|
1055
|
+
- 실시간 차트 업데이트
|
|
1056
|
+
- 커스터마이징 가능한 통계 뷰
|
|
1057
|
+
- 모바일 통계 대시보드
|
|
1058
|
+
- 통계 데이터 캐싱 최적화
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
### 실제 사용 예시
|
|
1062
|
+
|
|
1063
|
+
```
|
|
1064
|
+
매출 통계 분석 StatDataGrid 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1065
|
+
|
|
1066
|
+
**필수 구현 요소:**
|
|
1067
|
+
|
|
1068
|
+
1. **API 연동 정보**
|
|
1069
|
+
- 서비스: OrderService, ProductService
|
|
1070
|
+
- 매출 통계: postOrderStatsSales
|
|
1071
|
+
- 상품별 통계: postOrderStatsProduct
|
|
1072
|
+
- 고객별 통계: postOrderStatsCustomer
|
|
1073
|
+
- 상세 주문: postOrderDetailByStats
|
|
1074
|
+
- Request DTO: PostOrderStatsSalesRequest { period, groupBy, aggregateBy }
|
|
1075
|
+
- Response DTO: PostOrderStatsSalesResponse { stats: SalesStats[], chart: ChartData }
|
|
1076
|
+
|
|
1077
|
+
2. **StatDataGrid 설정**
|
|
1078
|
+
- 그룹핑: 일별/월별/상품별/고객별/지역별
|
|
1079
|
+
- 집계 필드: 매출액(orderAmount), 주문수(orderCount), 평균주문액(avgAmount)
|
|
1080
|
+
- 소계: 카테고리별, 브랜드별 소계
|
|
1081
|
+
- 총계: 전체 매출액, 주문수 총계
|
|
1082
|
+
- 비율: 전체 대비 퍼센트
|
|
1083
|
+
|
|
1084
|
+
3. **그리드 컬럼 구성**
|
|
1085
|
+
- 기간/카테고리: 그룹핑 기준
|
|
1086
|
+
- 매출액: ₩ 표시, 천단위 구분
|
|
1087
|
+
- 주문수: 개 단위, 천단위 구분
|
|
1088
|
+
- 평균주문액: ₩ 표시
|
|
1089
|
+
- 전년 대비: 증감률 %, 색상 코딩
|
|
1090
|
+
- 목표 달성률: 진행률 바
|
|
1091
|
+
|
|
1092
|
+
4. **고급 필터**
|
|
1093
|
+
- 기간: 일/주/월/분기/년 선택
|
|
1094
|
+
- 상품 카테고리: 다중 선택
|
|
1095
|
+
- 고객 등급: VIP/일반/신규
|
|
1096
|
+
- 주문 채널: 온라인/오프라인/모바일
|
|
1097
|
+
- 지역: 시/도별 선택
|
|
1098
|
+
- 매출 범위: 최소/최대 매출액
|
|
1099
|
+
|
|
1100
|
+
5. **차트 연동**
|
|
1101
|
+
- 매출 트렌드: 라인 차트 (시계열)
|
|
1102
|
+
- 카테고리별: 파이 차트
|
|
1103
|
+
- 지역별: 막대 차트
|
|
1104
|
+
- 실시간 업데이트: 5분마다 자동 새로고침
|
|
1105
|
+
- 차트 상호작용: 클릭시 해당 데이터 필터링
|
|
1106
|
+
|
|
1107
|
+
6. **드릴다운 상세**
|
|
1108
|
+
- 일별 매출: 시간별 상세 분석
|
|
1109
|
+
- 상품별 매출: 개별 주문 내역
|
|
1110
|
+
- 고객별 매출: 고객 주문 히스토리
|
|
1111
|
+
- 지역별 매출: 상세 지역별 분석
|
|
1112
|
+
- 브레드크럼: 현재 분석 경로 표시
|
|
1113
|
+
|
|
1114
|
+
7. **대시보드 위젯**
|
|
1115
|
+
- 오늘 매출: 실시간 매출 현황
|
|
1116
|
+
- 월 매출 목표: 목표 대비 달성률
|
|
1117
|
+
- 베스트 상품: 매출 상위 10개 상품
|
|
1118
|
+
- 신규 고객: 신규 고객 유입 현황
|
|
1119
|
+
- 지역별 매출: 지도 시각화
|
|
1120
|
+
|
|
1121
|
+
**DTO 활용 정보:**
|
|
1122
|
+
- 매출 통계: SalesStats { date, category, orderAmount, orderCount, avgAmount, growth }
|
|
1123
|
+
- 차트 데이터: ChartData { labels: string[], datasets: ChartDataset[] }
|
|
1124
|
+
- 드릴다운: SalesDetail { orderId, customerId, productName, orderAmount, orderDate }
|
|
1125
|
+
- 위젯 설정: WidgetConfig { type, size, position, filters, refreshInterval }
|
|
1126
|
+
|
|
1127
|
+
**화면 경로:** /sales/stats/stats-grid
|
|
1128
|
+
**권한 관리:** 매출 분석 권한 + 상세 조회 권한
|
|
1129
|
+
|
|
1130
|
+
**요청사항:**
|
|
1131
|
+
- 실시간 매출 모니터링
|
|
1132
|
+
- 대용량 매출 데이터 처리 (년간 100만+ 주문)
|
|
1133
|
+
- 모바일 매출 대시보드
|
|
1134
|
+
- 매출 예측 기능 (머신러닝)
|
|
1135
|
+
- 매출 알림 시스템 (목표 달성/미달성)
|
|
1136
|
+
```
|
|
1137
|
+
|
|
1138
|
+
---
|
|
1139
|
+
|
|
1140
|
+
## 13. 🔐 좌그리드 + 우상세폼 + 하단상세형 (Grid Form Detail)
|
|
1141
|
+
|
|
1142
|
+
### 프롬프트 템플릿
|
|
1143
|
+
|
|
1144
|
+
```
|
|
1145
|
+
{도메인명} 좌그리드 + 우상세폼 + 하단상세 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1146
|
+
|
|
1147
|
+
**필수 구현 요소:**
|
|
1148
|
+
|
|
1149
|
+
1. **API 연동 정보**
|
|
1150
|
+
- 서비스: {도메인명}Service
|
|
1151
|
+
- 마스터 목록: post{도메인명}List{마스터기능명}
|
|
1152
|
+
- 마스터 상세: post{도메인명}Dtl{마스터기능명}
|
|
1153
|
+
- 마스터 저장: post{도메인명}Save{마스터기능명}
|
|
1154
|
+
- 하위 목록: post{도메인명}List{하위기능명}
|
|
1155
|
+
- 하위 저장: post{도메인명}Save{하위기능명}
|
|
1156
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
1157
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
1158
|
+
|
|
1159
|
+
2. **3분할 레이아웃 구성**
|
|
1160
|
+
- 좌측 그리드: 30% 너비, 마스터 데이터 목록
|
|
1161
|
+
- 우상단 폼: 35% 너비, 선택된 마스터 상세 정보
|
|
1162
|
+
- 우하단 상세: 35% 너비, 선택된 마스터의 하위 데이터
|
|
1163
|
+
- 크기 조절: ResizeObserver로 각 영역 크기 조절
|
|
1164
|
+
- 최소 크기: 각 영역 최소 250px
|
|
1165
|
+
- 접기/펼치기: 각 영역 숨기기/보이기 토글
|
|
1166
|
+
|
|
1167
|
+
3. **좌측 마스터 그리드**
|
|
1168
|
+
- 컴포넌트: ListDataGrid
|
|
1169
|
+
- 선택 모드: 단일 선택 (라디오)
|
|
1170
|
+
- 주요 컬럼: {마스터 주요 컬럼들}
|
|
1171
|
+
- 검색: 간단한 키워드 검색
|
|
1172
|
+
- 정렬: {기본 정렬 컬럼}
|
|
1173
|
+
- 신규 버튼: 새 마스터 데이터 생성
|
|
1174
|
+
- 삭제 버튼: 선택된 마스터 삭제
|
|
1175
|
+
|
|
1176
|
+
4. **우상단 상세 폼**
|
|
1177
|
+
- 컴포넌트: Form 컴포넌트
|
|
1178
|
+
- 편집 모드: 읽기/수정 모드 토글
|
|
1179
|
+
- 필드 구성: {상세 폼 필드들}
|
|
1180
|
+
- 유효성 검증: 실시간 validation
|
|
1181
|
+
- 저장 버튼: 변경사항 저장
|
|
1182
|
+
- 취소 버튼: 변경사항 취소
|
|
1183
|
+
- 의존성: 좌측 선택 없으면 비활성화
|
|
1184
|
+
|
|
1185
|
+
5. **우하단 하위 상세**
|
|
1186
|
+
- 컴포넌트: DataGrid 또는 상세 표시 영역
|
|
1187
|
+
- 데이터: 선택된 마스터의 관련 데이터
|
|
1188
|
+
- 표시 타입: {그리드/리스트/카드/차트}
|
|
1189
|
+
- 액션: 하위 데이터 추가/수정/삭제
|
|
1190
|
+
- 새로고침: 마스터 변경시 자동 새로고침
|
|
1191
|
+
- 빈 상태: 관련 데이터 없을 때 안내 메시지
|
|
1192
|
+
|
|
1193
|
+
6. **데이터 플로우**
|
|
1194
|
+
- 좌측 선택 → 우상단 폼 데이터 로딩
|
|
1195
|
+
- 좌측 선택 → 우하단 관련 데이터 로딩
|
|
1196
|
+
- 폼 저장 → 좌측 그리드 새로고침
|
|
1197
|
+
- 하위 데이터 변경 → 하단 영역 새로고침
|
|
1198
|
+
- 동시 로딩: 상세/하위 데이터 병렬 로딩
|
|
1199
|
+
|
|
1200
|
+
7. **상태 관리**
|
|
1201
|
+
- 선택 상태: selectedMasterItem
|
|
1202
|
+
- 편집 상태: isEditing, hasChanges
|
|
1203
|
+
- 로딩 상태: masterLoading, detailLoading, subDetailLoading
|
|
1204
|
+
- 레이아웃 상태: leftWidth, rightTopHeight, rightBottomHeight
|
|
1205
|
+
- 폼 상태: formValues, originalValues
|
|
1206
|
+
|
|
1207
|
+
8. **사용자 경험**
|
|
1208
|
+
- 키보드 내비게이션: Tab으로 영역 간 이동
|
|
1209
|
+
- 단축키: Ctrl+S(저장), Ctrl+N(신규), Delete(삭제)
|
|
1210
|
+
- 변경 감지: 미저장 변경사항 경고
|
|
1211
|
+
- 로딩 피드백: 각 영역별 로딩 상태 표시
|
|
1212
|
+
- 에러 처리: 네트워크 오류시 재시도 옵션
|
|
1213
|
+
|
|
1214
|
+
**DTO 활용 정보:**
|
|
1215
|
+
- 마스터 DTO: {마스터도메인명} interface
|
|
1216
|
+
- 하위 DTO: {하위도메인명} interface
|
|
1217
|
+
- 관계 정보: {마스터키필드명} 으로 연결
|
|
1218
|
+
- 폼 데이터: Partial<{마스터도메인명}> (수정시)
|
|
1219
|
+
|
|
1220
|
+
**화면 경로:** /{도메인경로}/grid-form-detail
|
|
1221
|
+
**권한 관리:** 마스터 읽기/쓰기 + 하위 읽기/쓰기 권한
|
|
1222
|
+
|
|
1223
|
+
**요청사항:**
|
|
1224
|
+
- 반응형 3분할 레이아웃
|
|
1225
|
+
- 실시간 데이터 동기화
|
|
1226
|
+
- 레이아웃 상태 저장/복원
|
|
1227
|
+
- 키보드 친화적 UI
|
|
1228
|
+
- 성능 최적화 (지연 로딩)
|
|
1229
|
+
```
|
|
1230
|
+
|
|
1231
|
+
### 실제 사용 예시
|
|
1232
|
+
|
|
1233
|
+
```
|
|
1234
|
+
고객 관리 좌그리드 + 우상세폼 + 하단상세 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1235
|
+
|
|
1236
|
+
**필수 구현 요소:**
|
|
1237
|
+
|
|
1238
|
+
1. **API 연동 정보**
|
|
1239
|
+
- 서비스: MemberService, OrderService
|
|
1240
|
+
- 고객 목록: postMemberListMember
|
|
1241
|
+
- 고객 상세: postMemberDtlInfoMember
|
|
1242
|
+
- 고객 저장: postMemberUptMember
|
|
1243
|
+
- 고객 주문: postOrderListByMember
|
|
1244
|
+
- 고객 포인트: postPntAccmlListByMember
|
|
1245
|
+
|
|
1246
|
+
2. **좌측 고객 그리드**
|
|
1247
|
+
- 컬럼: 고객번호, 고객명, 등급, 가입일, 최종주문일
|
|
1248
|
+
- 검색: 고객명, 휴대폰번호, 이메일
|
|
1249
|
+
- 필터: 고객등급, 상태별
|
|
1250
|
+
- 정렬: 가입일, 최종주문일 내림차순
|
|
1251
|
+
|
|
1252
|
+
3. **우상단 고객 상세 폼**
|
|
1253
|
+
- 기본정보: 고객명, 이메일, 휴대폰, 생년월일
|
|
1254
|
+
- 주소정보: 기본주소, 상세주소
|
|
1255
|
+
- 설정정보: 마케팅수신동의, SMS수신동의
|
|
1256
|
+
- 통계정보: 총주문수, 총주문금액, 포인트잔액
|
|
1257
|
+
|
|
1258
|
+
4. **우하단 관련 정보**
|
|
1259
|
+
- 탭 구성: 주문내역/포인트내역/문의내역
|
|
1260
|
+
- 주문내역: 최근 주문 10건 표시
|
|
1261
|
+
- 포인트내역: 적립/사용 내역
|
|
1262
|
+
- 문의내역: 고객 문의 및 답변
|
|
1263
|
+
|
|
1264
|
+
**DTO 활용 정보:**
|
|
1265
|
+
- 고객 DTO: Member { usrNo, usrNm, usrEmailAddr, usrHpNo, ... }
|
|
1266
|
+
- 주문 DTO: Order { orderNo, orderDtm, orderAmt, ... }
|
|
1267
|
+
- 포인트 DTO: PntAccml { pntAccmlNo, pntAmt, accmlDtm, ... }
|
|
1268
|
+
|
|
1269
|
+
**화면 경로:** /member/customer/grid-form-detail
|
|
1270
|
+
**권한 관리:** 고객정보 조회/수정 + 주문정보 조회 권한
|
|
1271
|
+
```
|
|
1272
|
+
|
|
1273
|
+
---
|
|
1274
|
+
|
|
1275
|
+
## 14. 👤 좌그리드 + 우상세폼형 (Grid Form)
|
|
1276
|
+
|
|
1277
|
+
### 프롬프트 템플릿
|
|
1278
|
+
|
|
1279
|
+
```
|
|
1280
|
+
{도메인명} 좌그리드 + 우상세폼 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1281
|
+
|
|
1282
|
+
**필수 구현 요소:**
|
|
1283
|
+
|
|
1284
|
+
1. **API 연동 정보**
|
|
1285
|
+
- 서비스: {도메인명}Service
|
|
1286
|
+
- 목록 조회: post{도메인명}List{기능명}
|
|
1287
|
+
- 상세 조회: post{도메인명}Dtl{기능명}
|
|
1288
|
+
- 저장: post{도메인명}Save{기능명}
|
|
1289
|
+
- 삭제: post{도메인명}Del{기능명}
|
|
1290
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
1291
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
1292
|
+
|
|
1293
|
+
2. **좌우 분할 레이아웃**
|
|
1294
|
+
- 좌측 그리드: 40% 너비, 목록 데이터
|
|
1295
|
+
- 우측 폼: 60% 너비, 상세/편집 폼
|
|
1296
|
+
- ColResizer: 좌우 크기 조절 가능
|
|
1297
|
+
- 최소 너비: 좌측 300px, 우측 400px
|
|
1298
|
+
- 반응형: 모바일에서 상하 분할 또는 탭
|
|
1299
|
+
|
|
1300
|
+
3. **좌측 데이터 그리드**
|
|
1301
|
+
- 컴포넌트: ListDataGrid
|
|
1302
|
+
- 주요 컬럼: {목록 표시 컬럼들}
|
|
1303
|
+
- 선택 모드: 단일 선택 (라디오)
|
|
1304
|
+
- 검색 기능: {검색 대상 필드들}
|
|
1305
|
+
- 정렬 기능: {정렬 가능한 컬럼들}
|
|
1306
|
+
- 페이지네이션: 기본 페이징
|
|
1307
|
+
- 액션 버튼: 신규 등록, 삭제
|
|
1308
|
+
|
|
1309
|
+
4. **우측 상세 폼**
|
|
1310
|
+
- 컴포넌트: Form 컴포넌트
|
|
1311
|
+
- 모드 관리: 신규/수정/읽기 모드
|
|
1312
|
+
- 폼 레이아웃: {단일컬럼/2컬럼/탭형}
|
|
1313
|
+
- 필드 구성:
|
|
1314
|
+
* 기본 정보: {기본 필드들}
|
|
1315
|
+
* 상세 정보: {상세 필드들}
|
|
1316
|
+
* 설정 정보: {설정 필드들}
|
|
1317
|
+
- 유효성 검증: 실시간 + 제출시 검증
|
|
1318
|
+
|
|
1319
|
+
5. **폼 상태 관리**
|
|
1320
|
+
- 편집 모드: isEditing (true/false)
|
|
1321
|
+
- 신규 모드: isCreating (true/false)
|
|
1322
|
+
- 변경 감지: hasChanges (true/false)
|
|
1323
|
+
- 로딩 상태: isLoading, isSaving
|
|
1324
|
+
- 폼 데이터: formData, originalData
|
|
1325
|
+
- 검증 상태: validationErrors
|
|
1326
|
+
|
|
1327
|
+
6. **데이터 플로우**
|
|
1328
|
+
- 좌측 선택 → 우측 폼 데이터 로딩
|
|
1329
|
+
- 신규 버튼 → 우측 폼 초기화
|
|
1330
|
+
- 폼 저장 → 좌측 목록 새로고침
|
|
1331
|
+
- 삭제 → 좌측 목록 새로고침, 우측 폼 초기화
|
|
1332
|
+
- 취소 → 원본 데이터로 복원
|
|
1333
|
+
|
|
1334
|
+
7. **사용자 인터랙션**
|
|
1335
|
+
- 더블클릭: 목록 항목 더블클릭으로 편집 모드
|
|
1336
|
+
- 키보드 단축키:
|
|
1337
|
+
* Ctrl+N: 신규 등록
|
|
1338
|
+
* Ctrl+S: 저장
|
|
1339
|
+
* Ctrl+E: 편집 모드 전환
|
|
1340
|
+
* ESC: 편집 취소
|
|
1341
|
+
- 변경 경고: 미저장 상태에서 다른 항목 선택시 경고
|
|
1342
|
+
|
|
1343
|
+
8. **고급 기능**
|
|
1344
|
+
- 폼 템플릿: 자주 사용하는 데이터 템플릿
|
|
1345
|
+
- 복사 기능: 기존 데이터 복사하여 신규 생성
|
|
1346
|
+
- 히스토리: 변경 이력 추적
|
|
1347
|
+
- 자동 저장: 설정 간격으로 임시 저장
|
|
1348
|
+
- 폼 유효성: 실시간 필드별 검증
|
|
1349
|
+
|
|
1350
|
+
**DTO 활용 정보:**
|
|
1351
|
+
- 기본 DTO: {도메인명} interface
|
|
1352
|
+
- 목록 응답: { page: DataGridPageResponse, ds: {도메인명}[] }
|
|
1353
|
+
- 상세 응답: { rs: {도메인명} }
|
|
1354
|
+
- 저장 요청: {도메인명} (전체 필드)
|
|
1355
|
+
|
|
1356
|
+
**화면 경로:** /{도메인경로}/grid-form
|
|
1357
|
+
**권한 관리:** 조회/등록/수정/삭제 권한 세분화
|
|
1358
|
+
|
|
1359
|
+
**요청사항:**
|
|
1360
|
+
- 매끄러운 좌우 데이터 연동
|
|
1361
|
+
- 폼 상태 관리 최적화
|
|
1362
|
+
- 키보드 친화적 인터페이스
|
|
1363
|
+
- 반응형 레이아웃 지원
|
|
1364
|
+
- 성능 최적화 (메모이제이션)
|
|
1365
|
+
```
|
|
1366
|
+
|
|
1367
|
+
### 실제 사용 예시
|
|
1368
|
+
|
|
1369
|
+
```
|
|
1370
|
+
공지사항 관리 좌그리드 + 우상세폼 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1371
|
+
|
|
1372
|
+
**필수 구현 요소:**
|
|
1373
|
+
|
|
1374
|
+
1. **API 연동 정보**
|
|
1375
|
+
- 서비스: BbsPostService
|
|
1376
|
+
- 목록 조회: postBbsPostListNotice
|
|
1377
|
+
- 상세 조회: postBbsPostDtlNotice
|
|
1378
|
+
- 저장: postBbsPostSaveNotice
|
|
1379
|
+
- 삭제: postBbsPostDelNotice
|
|
1380
|
+
|
|
1381
|
+
2. **좌측 공지사항 그리드**
|
|
1382
|
+
- 컬럼: 번호, 제목, 작성자, 작성일, 조회수, 상태
|
|
1383
|
+
- 검색: 제목, 내용, 작성자
|
|
1384
|
+
- 필터: 공지타입, 상태별
|
|
1385
|
+
- 정렬: 작성일, 조회수 정렬
|
|
1386
|
+
- 중요공지: 상단 고정 표시
|
|
1387
|
+
|
|
1388
|
+
3. **우측 공지사항 폼**
|
|
1389
|
+
- 기본정보: 제목, 공지타입, 중요도
|
|
1390
|
+
- 내용: Rich Text Editor (Quill.js)
|
|
1391
|
+
- 설정: 노출시작일, 노출종료일, 상태
|
|
1392
|
+
- 첨부파일: 파일 업로드 (최대 5개)
|
|
1393
|
+
- 미리보기: 실제 게시될 모습 미리보기
|
|
1394
|
+
|
|
1395
|
+
4. **Rich Text Editor 설정**
|
|
1396
|
+
- 툴바: 기본 서식, 이미지, 링크, 표
|
|
1397
|
+
- 이미지 업로드: 드래그앤드롭 지원
|
|
1398
|
+
- 자동 저장: 5분마다 임시 저장
|
|
1399
|
+
- 워드카운트: 글자수 실시간 표시
|
|
1400
|
+
|
|
1401
|
+
**DTO 활용 정보:**
|
|
1402
|
+
- 공지사항 DTO: BbsPost { bbsPostNo, bbsPostTitle, bbsPostContent, ... }
|
|
1403
|
+
- 첨부파일 DTO: AtchflInfo { fileId, fileName, fileSize, ... }
|
|
1404
|
+
- 임시저장 DTO: TempSave { tempId, content, savedAt }
|
|
1405
|
+
|
|
1406
|
+
**화면 경로:** /system/notice/grid-form
|
|
1407
|
+
**권한 관리:** 공지사항 조회/작성/수정/삭제 권한
|
|
1408
|
+
```
|
|
1409
|
+
|
|
1410
|
+
---
|
|
1411
|
+
|
|
1412
|
+
## 15. 📝 좌드래그박스 + 우상세폼 + 하단트리형 (Drag Box Form Tree)
|
|
1413
|
+
|
|
1414
|
+
### 프롬프트 템플릿
|
|
1415
|
+
|
|
1416
|
+
```
|
|
1417
|
+
{도메인명} 좌드래그박스 + 우상세폼 + 하단트리 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1418
|
+
|
|
1419
|
+
**필수 구현 요소:**
|
|
1420
|
+
|
|
1421
|
+
1. **API 연동 정보**
|
|
1422
|
+
- 서비스: {도메인명}Service
|
|
1423
|
+
- 드래그 항목 목록: post{도메인명}ListDragItems
|
|
1424
|
+
- 상세 정보: post{도메인명}DtlItem
|
|
1425
|
+
- 트리 데이터: post{도메인명}ListTree
|
|
1426
|
+
- 드래그 처리: post{도메인명}ProcessDrag
|
|
1427
|
+
- 트리 업데이트: post{도메인명}UpdateTree
|
|
1428
|
+
- Request DTO: Post{도메인명}List{기능명}Request
|
|
1429
|
+
- Response DTO: Post{도메인명}List{기능명}Response
|
|
1430
|
+
|
|
1431
|
+
2. **3영역 레이아웃 구성**
|
|
1432
|
+
- 좌측 드래그박스: 30% 너비, 드래그 가능한 항목들
|
|
1433
|
+
- 우상단 상세폼: 35% 너비, 선택 항목 상세 정보
|
|
1434
|
+
- 우하단 트리: 35% 너비, 계층 구조 트리
|
|
1435
|
+
- 크기 조절: ResizeObserver로 유동적 크기 조절
|
|
1436
|
+
- 최소 크기: 각 영역 최소 200px
|
|
1437
|
+
|
|
1438
|
+
3. **좌측 드래그박스 구성**
|
|
1439
|
+
- 라이브러리: react-beautiful-dnd
|
|
1440
|
+
- 항목 표시: 카드형 또는 리스트형
|
|
1441
|
+
- 드래그 핸들: 명확한 드래그 영역 표시
|
|
1442
|
+
- 검색/필터: 드래그 항목 필터링
|
|
1443
|
+
- 카테고리: 항목별 카테고리 분류
|
|
1444
|
+
- 드래그 피드백: 드래그 중 시각적 피드백
|
|
1445
|
+
|
|
1446
|
+
4. **드래그 앤 드롭 기능**
|
|
1447
|
+
- 드래그 소스: 좌측 박스의 항목들
|
|
1448
|
+
- 드롭 타겟: 우하단 트리의 노드들
|
|
1449
|
+
- 드래그 제약: 허용/불허용 드롭존 설정
|
|
1450
|
+
- 드래그 미리보기: 드래그 중 미리보기 표시
|
|
1451
|
+
- 드롭 효과: 복사/이동/링크 효과
|
|
1452
|
+
- 자동 스크롤: 드래그 중 자동 스크롤
|
|
1453
|
+
|
|
1454
|
+
5. **우상단 상세폼**
|
|
1455
|
+
- 선택 방식: 좌측 클릭 또는 트리 노드 선택
|
|
1456
|
+
- 폼 구성: {상세 정보 필드들}
|
|
1457
|
+
- 편집 기능: 인라인 편집 또는 모달 편집
|
|
1458
|
+
- 관계 정보: 다른 항목과의 연관 관계
|
|
1459
|
+
- 미리보기: 실제 적용될 모습 미리보기
|
|
1460
|
+
|
|
1461
|
+
6. **우하단 트리 구성**
|
|
1462
|
+
- 트리 컴포넌트: antd Tree 또는 커스텀
|
|
1463
|
+
- 노드 타입: 폴더/파일/카테고리 등
|
|
1464
|
+
- 드롭 허용: 특정 노드만 드롭 허용
|
|
1465
|
+
- 트리 액션: 추가/삭제/이름변경
|
|
1466
|
+
- 확장/축소: 노드별 확장 상태 관리
|
|
1467
|
+
- 컨텍스트 메뉴: 우클릭 메뉴
|
|
1468
|
+
|
|
1469
|
+
7. **상태 관리**
|
|
1470
|
+
- 드래그 상태: isDragging, draggedItem
|
|
1471
|
+
- 선택 상태: selectedItem, selectedTreeNode
|
|
1472
|
+
- 트리 상태: treeData, expandedKeys
|
|
1473
|
+
- 폼 상태: formData, isEditing
|
|
1474
|
+
- 로딩 상태: dragItemsLoading, treeLoading
|
|
1475
|
+
|
|
1476
|
+
8. **고급 기능**
|
|
1477
|
+
- 일괄 드래그: 다중 선택하여 일괄 드래그
|
|
1478
|
+
- 드래그 히스토리: 드래그 작업 기록
|
|
1479
|
+
- 되돌리기: Ctrl+Z로 마지막 드래그 취소
|
|
1480
|
+
- 자동 정렬: 트리 노드 자동 정렬
|
|
1481
|
+
- 검색: 트리 내 노드 검색
|
|
1482
|
+
|
|
1483
|
+
**DTO 활용 정보:**
|
|
1484
|
+
- 드래그 항목 DTO: DragItem { id, name, type, category, data }
|
|
1485
|
+
- 트리 노드 DTO: TreeNode { id, parentId, name, type, children }
|
|
1486
|
+
- 드래그 결과 DTO: DragResult { sourceId, targetId, position, action }
|
|
1487
|
+
- 관계 DTO: ItemRelation { sourceId, targetId, relationType }
|
|
1488
|
+
|
|
1489
|
+
**화면 경로:** /{도메인경로}/drag-form-tree
|
|
1490
|
+
**권한 관리:** 드래그 권한 + 트리 관리 권한 + 상세 편집 권한
|
|
1491
|
+
|
|
1492
|
+
**요청사항:**
|
|
1493
|
+
- 매끄러운 드래그 앤 드롭 UX
|
|
1494
|
+
- 복잡한 트리 구조 지원
|
|
1495
|
+
- 실시간 상태 동기화
|
|
1496
|
+
- 키보드 접근성 지원
|
|
1497
|
+
- 터치 디바이스 대응
|
|
1498
|
+
```
|
|
1499
|
+
|
|
1500
|
+
### 실제 사용 예시
|
|
1501
|
+
|
|
1502
|
+
```
|
|
1503
|
+
메뉴 구성 관리 좌드래그박스 + 우상세폼 + 하단트리 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1504
|
+
|
|
1505
|
+
**필수 구현 요소:**
|
|
1506
|
+
|
|
1507
|
+
1. **API 연동 정보**
|
|
1508
|
+
- 서비스: SystemMenuService, SystemProgramService
|
|
1509
|
+
- 사용가능 프로그램: postSystemProgramListAvailable
|
|
1510
|
+
- 메뉴 트리: postSystemMenuListTree
|
|
1511
|
+
- 메뉴 상세: postSystemMenuDtlMenu
|
|
1512
|
+
- 메뉴 구성 저장: postSystemMenuSaveStructure
|
|
1513
|
+
- 드래그 처리: postSystemMenuMoveProgram
|
|
1514
|
+
|
|
1515
|
+
2. **좌측 프로그램 드래그박스**
|
|
1516
|
+
- 사용가능한 프로그램 목록 표시
|
|
1517
|
+
- 카테고리별 그룹핑 (시스템/업무/보고서)
|
|
1518
|
+
- 검색: 프로그램명, 설명으로 검색
|
|
1519
|
+
- 카드형 표시: 프로그램 아이콘 + 이름
|
|
1520
|
+
- 드래그 가능: 모든 프로그램 드래그 가능
|
|
1521
|
+
|
|
1522
|
+
3. **우상단 메뉴 상세폼**
|
|
1523
|
+
- 메뉴 기본정보: 메뉴명, 설명, 아이콘
|
|
1524
|
+
- 표시 설정: 표시여부, 순서, 권한
|
|
1525
|
+
- 링크 설정: URL, 새창여부, 파라미터
|
|
1526
|
+
- 프로그램 연결: 연결된 프로그램 정보
|
|
1527
|
+
- 저장/취소: 메뉴 정보 저장
|
|
1528
|
+
|
|
1529
|
+
4. **우하단 메뉴 트리**
|
|
1530
|
+
- 현재 메뉴 구조를 트리로 표시
|
|
1531
|
+
- 드롭 허용: 폴더 노드에만 드롭 허용
|
|
1532
|
+
- 메뉴 타입: 폴더/링크/프로그램 구분
|
|
1533
|
+
- 컨텍스트 메뉴: 추가/수정/삭제/이동
|
|
1534
|
+
- 순서 변경: 같은 레벨 내 순서 변경
|
|
1535
|
+
|
|
1536
|
+
5. **드래그 앤 드롭 규칙**
|
|
1537
|
+
- 프로그램 → 메뉴폴더: 새 메뉴 생성
|
|
1538
|
+
- 메뉴 → 다른폴더: 메뉴 이동
|
|
1539
|
+
- 제약사항: 순환참조 방지, 최대 깊이 제한
|
|
1540
|
+
- 시각적 피드백: 드롭 가능/불가능 영역 표시
|
|
1541
|
+
|
|
1542
|
+
**DTO 활용 정보:**
|
|
1543
|
+
- 프로그램 DTO: SystemProgram { programId, programName, programDesc, iconPath }
|
|
1544
|
+
- 메뉴 DTO: SystemMenu { menuId, parentId, menuName, programId, sortOrder }
|
|
1545
|
+
- 트리 노드: MenuTreeNode { id, parentId, name, type, children, isDroppable }
|
|
1546
|
+
- 드래그 결과: MenuDragResult { programId, targetMenuId, position }
|
|
1547
|
+
|
|
1548
|
+
**화면 경로:** /system/menu/drag-form-tree
|
|
1549
|
+
**권한 관리:** 시스템 관리자 권한 + 메뉴 관리 권한
|
|
1550
|
+
```
|
|
1551
|
+
|
|
1552
|
+
---
|
|
1553
|
+
|
|
1554
|
+
## 16. ➕ 모달 행추가삭제형 (Modal Row Management)
|
|
1555
|
+
|
|
1556
|
+
### 프롬프트 템플릿
|
|
1557
|
+
|
|
1558
|
+
```
|
|
1559
|
+
{도메인명} 모달 행추가삭제 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1560
|
+
|
|
1561
|
+
**필수 구현 요소:**
|
|
1562
|
+
|
|
1563
|
+
1. **API 연동 정보**
|
|
1564
|
+
- 서비스: {도메인명}Service
|
|
1565
|
+
- 목록 조회: post{도메인명}List{기능명}
|
|
1566
|
+
- 상세 조회: post{도메인명}Dtl{기능명}
|
|
1567
|
+
- 일괄 저장: post{도메인명}SaveBatch{기능명}
|
|
1568
|
+
- 행 추가: post{도메인명}AddRow{기능명}
|
|
1569
|
+
- 행 삭제: post{도메인명}DelRow{기능명}
|
|
1570
|
+
- Request DTO: Post{도메인명}{기능명}Request
|
|
1571
|
+
- Response DTO: Post{도메인명}{기늩명}Response
|
|
1572
|
+
|
|
1573
|
+
2. **모달 구성**
|
|
1574
|
+
- 모달 크기: large 또는 fullscreen (1200px+)
|
|
1575
|
+
- 레이아웃: 상단 기본정보 + 하단 데이터 그리드
|
|
1576
|
+
- 스크롤: 모달 내부 스크롤 지원
|
|
1577
|
+
- 닫기 방지: 미저장 변경사항 있을 때 경고
|
|
1578
|
+
- 키보드: ESC(취소), Ctrl+S(저장), Ctrl+N(새행)
|
|
1579
|
+
|
|
1580
|
+
3. **상단 기본정보 섹션**
|
|
1581
|
+
- 마스터 데이터: {기본 정보 필드들}
|
|
1582
|
+
- 폼 컴포넌트: Ant Design Form
|
|
1583
|
+
- 레이아웃: 2열 또는 3열 그리드
|
|
1584
|
+
- 유효성 검증: 실시간 및 제출시 검증
|
|
1585
|
+
- 의존성: 마스터 데이터 변경시 하단 데이터 영향
|
|
1586
|
+
|
|
1587
|
+
4. **하단 데이터 그리드**
|
|
1588
|
+
- 컴포넌트: DataGrid 또는 Table
|
|
1589
|
+
- 인라인 편집: 각 셀에서 직접 편집 가능
|
|
1590
|
+
- 행 선택: 체크박스로 다중 선택
|
|
1591
|
+
- 드래그 앤 드롭: 행 순서 변경 (선택적)
|
|
1592
|
+
- 상태 표시: 새로추가/수정/삭제 예정 표시
|
|
1593
|
+
- 에러 표시: 유효성 검증 오류 행 하이라이트
|
|
1594
|
+
|
|
1595
|
+
5. **행 관리 기능**
|
|
1596
|
+
- 행 추가: 빈 행 추가 (템플릿 지원)
|
|
1597
|
+
- 행 복사: 선택된 행 복사하여 새 행 생성
|
|
1598
|
+
- 행 삭제: 선택된 행들 삭제 (확인 후)
|
|
1599
|
+
- 행 이동: 드래그로 행 순서 변경
|
|
1600
|
+
- 전체 선택: 전체 행 선택/해제
|
|
1601
|
+
- 선택 역전: 선택 상태 반전
|
|
1602
|
+
|
|
1603
|
+
6. **인라인 편집 기능**
|
|
1604
|
+
- 편집 컴포넌트: Input, Select, DatePicker, InputNumber
|
|
1605
|
+
- 편집 모드: 더블클릭, F2키, 직접 타이핑
|
|
1606
|
+
- 저장 트리거: Enter, Tab, 포커스 아웃
|
|
1607
|
+
- 취소: ESC키 또는 취소 아이콘
|
|
1608
|
+
- 내비게이션: Tab/Shift+Tab으로 셀 이동
|
|
1609
|
+
- 자동완성: 설정 가능한 필드에 자동완성
|
|
1610
|
+
|
|
1611
|
+
7. **일괄 저장 기능**
|
|
1612
|
+
- 변경 감지: 수정된 행들 자동 감지
|
|
1613
|
+
- 유효성 검증: 전체 데이터 일괄 검증
|
|
1614
|
+
- 트랜잭션: 전체 성공 또는 전체 실패
|
|
1615
|
+
- 진행률: 대량 데이터 저장시 진행률 표시
|
|
1616
|
+
- 에러 처리: 오류 행 표시 및 세부 메시지
|
|
1617
|
+
- 성공 후: 목록 새로고침 및 모달 닫기
|
|
1618
|
+
|
|
1619
|
+
8. **사용자 경험 최적화**
|
|
1620
|
+
- 로딩 상태: 단계별 로딩 인디케이터
|
|
1621
|
+
- 대량 데이터: 가상 스크롤로 성능 최적화
|
|
1622
|
+
- 자동 저장: 선택적 자동 저장 기능
|
|
1623
|
+
- 실행취소: Ctrl+Z로 마지막 작업 취소
|
|
1624
|
+
- 상태 표시: 각 행의 변경 상태 시각적 표시
|
|
1625
|
+
|
|
1626
|
+
**DTO 활용 정보:**
|
|
1627
|
+
- 마스터 DTO: {마스터도메인명} interface
|
|
1628
|
+
- 상세 DTO: {상세도메인명} interface
|
|
1629
|
+
- 일괄 저장: { master: 마스터DTO, details: 상세DTO[], deletedIds: number[] }
|
|
1630
|
+
- 유효성 에러: { rowIndex: number, fieldName: string, errorMessage: string }
|
|
1631
|
+
|
|
1632
|
+
**화면 경로:** /{도메인경로}/modal-row-management
|
|
1633
|
+
**권한 관리:** 데이터 일괄 관리 권한
|
|
1634
|
+
|
|
1635
|
+
**요청사항:**
|
|
1636
|
+
- 대량 데이터 처리 성능 최적화
|
|
1637
|
+
- 인라인 편집 UX 최적화
|
|
1638
|
+
- 복잡한 유효성 검증 로직
|
|
1639
|
+
- 키보드 내비게이션 지원
|
|
1640
|
+
- 모바일 대응 (터치 인터페이스)
|
|
1641
|
+
```
|
|
1642
|
+
|
|
1643
|
+
### 실제 사용 예시
|
|
1644
|
+
|
|
1645
|
+
```
|
|
1646
|
+
주문 상세 관리 모달 행추가삭제 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1647
|
+
|
|
1648
|
+
**필수 구현 요소:**
|
|
1649
|
+
|
|
1650
|
+
1. **API 연동 정보**
|
|
1651
|
+
- 서비스: OrderService, ProductService
|
|
1652
|
+
- 주문 상세: postOrderDtlOrder
|
|
1653
|
+
- 상품 목록: postProductListForOrder
|
|
1654
|
+
- 일괄 저장: postOrderSaveBatch
|
|
1655
|
+
- 주문항목 추가: postOrderAddItem
|
|
1656
|
+
- 주문항목 삭제: postOrderDelItem
|
|
1657
|
+
|
|
1658
|
+
2. **상단 주문 기본정보**
|
|
1659
|
+
- 주문번호, 주문일시, 고객정보
|
|
1660
|
+
- 배송지 정보, 결제정보
|
|
1661
|
+
- 주문상태, 배송비, 할인금액
|
|
1662
|
+
- 총 주문금액 자동 계산
|
|
1663
|
+
|
|
1664
|
+
3. **하단 주문항목 그리드**
|
|
1665
|
+
- 상품코드, 상품제목, 옵션, 수량, 단가, 금액
|
|
1666
|
+
- 인라인 편집: 수량, 단가, 옵션 직접 수정
|
|
1667
|
+
- 상품 검색: 상품코드 입력시 자동 검색
|
|
1668
|
+
- 금액 자동 계산: 수량 × 단가 = 금액
|
|
1669
|
+
|
|
1670
|
+
4. **행 관리 기능**
|
|
1671
|
+
- 상품 추가: 상품 검색 모달에서 선택
|
|
1672
|
+
- 행 복사: 기존 주문항목 복사
|
|
1673
|
+
- 대량 추가: 엑셀 파일로 대량 상품 추가
|
|
1674
|
+
- 반품 처리: 일부 수량 반품 및 전체 반품
|
|
1675
|
+
|
|
1676
|
+
5. **유효성 검증**
|
|
1677
|
+
- 필수 항목: 상품, 수량 필수 입력
|
|
1678
|
+
- 재고 체크: 주문 수량 > 재고 수량 경고
|
|
1679
|
+
- 중복 체크: 동일 상품+옵션 중복 방지
|
|
1680
|
+
- 금액 범위: 최소/최대 주문금액 체크
|
|
1681
|
+
|
|
1682
|
+
**DTO 활용 정보:**
|
|
1683
|
+
- 주문 DTO: Order { orderNo, orderDtm, customerId, totalAmount, ... }
|
|
1684
|
+
- 주문항목 DTO: OrderItem { orderItemNo, productId, qty, unitPrice, amount, ... }
|
|
1685
|
+
- 일괄저장: { order: Order, orderItems: OrderItem[], deletedItemIds: number[] }
|
|
1686
|
+
|
|
1687
|
+
**화면 경로:** /order/detail/modal-row-management
|
|
1688
|
+
**권한 관리:** 주문 상세 조회/수정 권한
|
|
1689
|
+
```
|
|
1690
|
+
|
|
1691
|
+
---
|
|
1692
|
+
|
|
1693
|
+
## 17. 🖼️ 모달 이미지업로드형 (Modal Image Upload)
|
|
1694
|
+
|
|
1695
|
+
### 프롬프트 템플릿
|
|
1696
|
+
|
|
1697
|
+
```
|
|
1698
|
+
{도메인명} 모달 이미지업로드 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1699
|
+
|
|
1700
|
+
**필수 구현 요소:**
|
|
1701
|
+
|
|
1702
|
+
1. **API 연동 정보**
|
|
1703
|
+
- 서비스: {도메인명}Service, UploadService
|
|
1704
|
+
- 이미지 업로드: postUploadImageMultiple
|
|
1705
|
+
- 이미지 삭제: deleteUploadImage
|
|
1706
|
+
- 이미지 리사이즈: postUploadImageResize
|
|
1707
|
+
- 이미지 크롭: postUploadImageCrop
|
|
1708
|
+
- 메타데이터 저장: post{도메인명}SaveImageMeta
|
|
1709
|
+
- Request DTO: PostUploadImageRequest
|
|
1710
|
+
- Response DTO: PostUploadImageResponse { fileId, url, thumbnailUrl }
|
|
1711
|
+
|
|
1712
|
+
2. **모달 구성**
|
|
1713
|
+
- 모달 크기: large (1000px) 또는 fullscreen
|
|
1714
|
+
- 레이아웃: 상단 업로드 영역 + 하단 이미지 관리 영역
|
|
1715
|
+
- 드래그 앤 드롭: 전체 모달 영역에 드롭 지원
|
|
1716
|
+
- 키보드: ESC(닫기), Delete(선택 이미지 삭제)
|
|
1717
|
+
- 모달 속성: 마스크 없이 드래그 가능
|
|
1718
|
+
|
|
1719
|
+
3. **이미지 업로드 영역**
|
|
1720
|
+
- 드래그 앤 드롭 조역: 큰 점선 사각형 영역
|
|
1721
|
+
- 파일 선택 버튼: 브라우저 파일 다이얼로그
|
|
1722
|
+
- 다중 선택: multiple 속성으로 여러 파일 동시 선택
|
|
1723
|
+
- 파일 타입: accept="image/*" 또는 구체적 확장자
|
|
1724
|
+
- 크기 제한: 개별 파일 최대 크기 (10MB 등)
|
|
1725
|
+
- 개수 제한: 최대 업로드 가능 개수
|
|
1726
|
+
|
|
1727
|
+
4. **업로드 진행 표시**
|
|
1728
|
+
- 파일별 진행률: 개별 파일 업로드 진행률
|
|
1729
|
+
- 전체 진행률: 전체 업로드 진행 상황
|
|
1730
|
+
- 상태 표시: 대기/업로드중/완료/실패
|
|
1731
|
+
- 취소 버튼: 업로드 중 취소 가능
|
|
1732
|
+
- 에러 처리: 실패 시 재시도 옵션
|
|
1733
|
+
- 속도 표시: 업로드 속도 및 남은 시간
|
|
1734
|
+
|
|
1735
|
+
5. **이미지 미리보기 리스트**
|
|
1736
|
+
- 썸네일 그리드: 가로 4-6개 열로 이미지 표시
|
|
1737
|
+
- 이미지 사이즈: 인기 속성에 맞게 자동 비율 조정
|
|
1738
|
+
- 호버 효과: 마우스 올릴 때 오버레이 또는 확대
|
|
1739
|
+
- 선택 상태: 체크박스 또는 테두리로 선택 표시
|
|
1740
|
+
- 제어 버튼: 미리보기/수정/삭제/다운로드
|
|
1741
|
+
- 드래그 정렬: 드래그로 이미지 순서 변경
|
|
1742
|
+
|
|
1743
|
+
6. **이미지 편집 기능**
|
|
1744
|
+
- 크롭 코미: 비율 지정 크롭 (예: 16:9, 1:1)
|
|
1745
|
+
- 리사이즈: 지정된 크기로 자동 리사이즈
|
|
1746
|
+
- 회전: 90도 단위 회전
|
|
1747
|
+
- 색상 보정: 밝기, 대비, 채도 조정
|
|
1748
|
+
- 필터: 흩백, 세피아, 빈티지 등
|
|
1749
|
+
- 워터마크: 로고 또는 텍스트 워터마크
|
|
1750
|
+
|
|
1751
|
+
7. **메타데이터 관리**
|
|
1752
|
+
- 파일 정보: 파일명, 크기, 형식, 해상도
|
|
1753
|
+
- ALT 텍스트: 접근성을 위한 대체 텍스트
|
|
1754
|
+
- 태그: 이미지 분류를 위한 태그
|
|
1755
|
+
- 설명: 이미지 상세 설명
|
|
1756
|
+
- 저작권: 저작권 정보 및 라이선스
|
|
1757
|
+
- 버전 관리: 동일 이미지의 여러 버전
|
|
1758
|
+
|
|
1759
|
+
8. **화질 및 성능 최적화**
|
|
1760
|
+
- 이미지 압축: WebP, AVIF 등 최신 형식 지원
|
|
1761
|
+
- 레이지 로딩: 대용량 이미지 점진적 로딩
|
|
1762
|
+
- CDN 연동: 빠른 이미지 서빙
|
|
1763
|
+
- 써네일 생성: 여러 크기 썸네일 자동 생성
|
|
1764
|
+
- 메모리 관리: 대용량 이미지 처리시 메모리 최적화
|
|
1765
|
+
|
|
1766
|
+
**DTO 활용 정보:**
|
|
1767
|
+
- 이미지 업로드: UploadImageRequest { files: File[], category: string, resize: ResizeOption }
|
|
1768
|
+
- 업로드 응답: UploadImageResponse { images: ImageInfo[] }
|
|
1769
|
+
- 이미지 정보: ImageInfo { fileId, url, thumbnailUrl, width, height, size }
|
|
1770
|
+
- 메타데이터: ImageMeta { altText, tags, description, copyright }
|
|
1771
|
+
|
|
1772
|
+
**화면 경로:** /{도메인경로}/modal-image-upload
|
|
1773
|
+
**권한 관리:** 이미지 업로드 권한 + 편집 권한
|
|
1774
|
+
|
|
1775
|
+
**요청사항:**
|
|
1776
|
+
- 대용량 이미지 처리 성능 최적화
|
|
1777
|
+
- 다양한 이미지 형식 지원
|
|
1778
|
+
- 실시간 이미지 편집 기능
|
|
1779
|
+
- 모바일 카메라 연동
|
|
1780
|
+
- 접근성 지원 (alt 텍스트, 키보드)
|
|
1781
|
+
```
|
|
1782
|
+
|
|
1783
|
+
### 실제 사용 예시
|
|
1784
|
+
|
|
1785
|
+
```
|
|
1786
|
+
상품 이미지 관리 모달 이미지업로드 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1787
|
+
|
|
1788
|
+
**필수 구현 요소:**
|
|
1789
|
+
|
|
1790
|
+
1. **API 연동 정보**
|
|
1791
|
+
- 서비스: ProductService, UploadService
|
|
1792
|
+
- 상품 이미지 업로드: postUploadProductImage
|
|
1793
|
+
- 이미지 순서 변경: postProductUpdateImageOrder
|
|
1794
|
+
- 이미지 메타데이터: postProductSaveImageMeta
|
|
1795
|
+
- 메인 이미지 설정: postProductSetMainImage
|
|
1796
|
+
|
|
1797
|
+
2. **이미지 업로드 영역**
|
|
1798
|
+
- 지원 형식: JPG, PNG, WebP (최대 10MB)
|
|
1799
|
+
- 최대 개수: 20개 이미지
|
|
1800
|
+
- 권장 크기: 메인 1920x1920, 상세 800x800
|
|
1801
|
+
- 자동 리사이즈: 여러 크기 썸네일 생성
|
|
1802
|
+
|
|
1803
|
+
3. **이미지 편집 기능**
|
|
1804
|
+
- 크롭: 1:1, 16:9, 4:3 비율 선택 가능
|
|
1805
|
+
- 색상 보정: 밝기, 대비, 채도 조정
|
|
1806
|
+
- 워터마크: 브랜드 로고 자동 삽입
|
|
1807
|
+
- 회전: 90도 단위 회전 가능
|
|
1808
|
+
|
|
1809
|
+
4. **상품 이미지 관리**
|
|
1810
|
+
- 메인 이미지: 첫 번째 이미지 자동 설정
|
|
1811
|
+
- 순서 관리: 드래그로 이미지 순서 변경
|
|
1812
|
+
- ALT 텍스트: SEO를 위한 대체 텍스트 입력
|
|
1813
|
+
- 이미지 태그: 색상, 스타일, 용도 등
|
|
1814
|
+
|
|
1815
|
+
**DTO 활용 정보:**
|
|
1816
|
+
- 상품이미지: ProductImage { productImageId, productId, imageUrl, isMain, sortOrder }
|
|
1817
|
+
- 업로드 요청: { productId, files: File[], category: 'main'|'detail'|'option' }
|
|
1818
|
+
- 이미지 메타: { altText, tags: string[], description }
|
|
1819
|
+
|
|
1820
|
+
**화면 경로:** /product/image/modal-upload
|
|
1821
|
+
**권한 관리:** 상품 관리 권한 + 이미지 편집 권한
|
|
1822
|
+
```
|
|
1823
|
+
|
|
1824
|
+
---
|
|
1825
|
+
|
|
1826
|
+
## 18. 📋 모달 내용테이블형 (Modal Content Table)
|
|
1827
|
+
|
|
1828
|
+
### 프롬프트 템플릿
|
|
1829
|
+
|
|
1830
|
+
```
|
|
1831
|
+
{도메인명} 모달 내용테이블 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1832
|
+
|
|
1833
|
+
**필수 구현 요소:**
|
|
1834
|
+
|
|
1835
|
+
1. **API 연동 정보**
|
|
1836
|
+
- 서비스: {도메인명}Service
|
|
1837
|
+
- 테이블 데이터: post{도메인명}ListTable{기능명}
|
|
1838
|
+
- 데이터 내보내기: post{도메인명}ExportTable{기능명}
|
|
1839
|
+
- 데이터 가져오기: post{도메인명}ImportTable{기능명}
|
|
1840
|
+
- 테이블 업데이트: post{도메인명}UpdateTable{기능명}
|
|
1841
|
+
- 열 추가/삭제: post{도메인명}UpdateColumns{기능명}
|
|
1842
|
+
- Request DTO: Post{도메인명}ListTable{기능명}Request
|
|
1843
|
+
- Response DTO: Post{도메인명}ListTable{기능명}Response
|
|
1844
|
+
|
|
1845
|
+
2. **모달 구성**
|
|
1846
|
+
- 모달 크기: fullscreen 또는 90% 크기
|
|
1847
|
+
- 레이아웃: 상단 도구모음 + 중앙 테이블 + 하단 액션
|
|
1848
|
+
- 스크롤: 모달 내부 수직/수평 스크롤
|
|
1849
|
+
- 크기 조절: 리사이즈 가능한 모달
|
|
1850
|
+
- 키보드: ESC(닫기), Ctrl+S(저장), Ctrl+A(전체선택)
|
|
1851
|
+
|
|
1852
|
+
3. **상단 도구모음**
|
|
1853
|
+
- 테이블 옵션: 새로고침, 내보내기, 가져오기
|
|
1854
|
+
- 열 관리: 열 추가, 열 삭제, 열 순서 변경
|
|
1855
|
+
- 필터: 데이터 필터링 옵션
|
|
1856
|
+
- 정렬: 여러 열 동시 정렬
|
|
1857
|
+
- 검색: 테이블 내 데이터 검색
|
|
1858
|
+
- 설정: 테이블 보기 옵션 설정
|
|
1859
|
+
|
|
1860
|
+
4. **동적 테이블 구성**
|
|
1861
|
+
- 열 정의: JSON 또는 설정으로 동적 열 생성
|
|
1862
|
+
- 데이터 타입: text, number, date, boolean, select, image
|
|
1863
|
+
- 열 너비: 고정 또는 비율로 열 너비 설정
|
|
1864
|
+
- 열 순서: 드래그로 열 순서 변경 가능
|
|
1865
|
+
- 고정 열: 좌측 고정 또는 우측 고정 열
|
|
1866
|
+
- 가상 열: 계산된 값을 표시하는 가상 열
|
|
1867
|
+
|
|
1868
|
+
5. **인라인 편집 기능**
|
|
1869
|
+
- 더블클릭 편집: 셀 더블클릭으로 편집 모드
|
|
1870
|
+
- 데이터 타입별 에디터:
|
|
1871
|
+
* 텍스트: Input 컴포넌트
|
|
1872
|
+
* 숫자: InputNumber 컴포넌트
|
|
1873
|
+
* 날짜: DatePicker 컴포넌트
|
|
1874
|
+
* 선택: Select 컴포넌트
|
|
1875
|
+
* 불린: Switch 컴포넌트
|
|
1876
|
+
- 유효성 검증: 실시간 셀 단위 검증
|
|
1877
|
+
- 자동 저장: Enter 또는 포커스 아웃시 자동 저장
|
|
1878
|
+
|
|
1879
|
+
6. **대량 데이터 처리**
|
|
1880
|
+
- 가상 스크롤: 대량 데이터 성능 최적화
|
|
1881
|
+
- 지연 로딩: 스크롤시 추가 데이터 로딩
|
|
1882
|
+
- 청크 로딩: 데이터 청크 단위 처리
|
|
1883
|
+
- 서버 사이드 정렬: 대량 데이터 정렬 내맵
|
|
1884
|
+
- 메모리 관리: 렌더 셀 메모리 해제
|
|
1885
|
+
- 성능 모니터링: 렌더링 성능 추적
|
|
1886
|
+
|
|
1887
|
+
7. **데이터 내보내기/가져오기**
|
|
1888
|
+
- 내보내기 형식: Excel, CSV, JSON, PDF
|
|
1889
|
+
- 선택 데이터: 선택된 행/열만 내보내기
|
|
1890
|
+
- 필터 데이터: 현재 필터된 데이터만
|
|
1891
|
+
- 가져오기: Excel/CSV 파일 업로드
|
|
1892
|
+
- 데이터 검증: 가져온 데이터 유효성 검증
|
|
1893
|
+
- 오류 보고: 가져오기 오류 상세 보고
|
|
1894
|
+
|
|
1895
|
+
8. **고급 기능**
|
|
1896
|
+
- 동적 요약: 예시: 숫자 열의 합계, 평균
|
|
1897
|
+
- 조건부 서식: 조건에 따른 셀 스타일 변경
|
|
1898
|
+
- 열 그룹핑: 연관된 열들 그룹화
|
|
1899
|
+
- 데이터 유효성: 사용자 정의 유효성 규칙
|
|
1900
|
+
- 포뮬러: 셀 값 계산 포뮬러
|
|
1901
|
+
- 데이터 링크: 다른 테이블과 데이터 연동
|
|
1902
|
+
|
|
1903
|
+
**DTO 활용 정보:**
|
|
1904
|
+
- 테이블 설정: TableConfig { columns: ColumnDef[], data: any[][], meta: TableMeta }
|
|
1905
|
+
- 열 정의: ColumnDef { key, title, dataType, width, editable, validation }
|
|
1906
|
+
- 셀 데이터: CellData { value: any, formattedValue: string, style: CellStyle }
|
|
1907
|
+
- 내보내기: ExportConfig { format, selectedRows, selectedColumns, filters }
|
|
1908
|
+
|
|
1909
|
+
**화면 경로:** /{도메인경로}/modal-content-table
|
|
1910
|
+
**권한 관리:** 데이터 조회 권한 + 테이블 편집 권한
|
|
1911
|
+
|
|
1912
|
+
**요청사항:**
|
|
1913
|
+
- 대량 데이터 처리 성능 최적화
|
|
1914
|
+
- 다양한 데이터 타입 지원
|
|
1915
|
+
- 실시간 데이터 동기화
|
|
1916
|
+
- 접근성 지원 (스크린 리더, 키보드)
|
|
1917
|
+
- 다양한 내보내기 형식
|
|
1918
|
+
```
|
|
1919
|
+
|
|
1920
|
+
### 실제 사용 예시
|
|
1921
|
+
|
|
1922
|
+
```
|
|
1923
|
+
재고 현황 데이터 모달 내용테이블 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1924
|
+
|
|
1925
|
+
**필수 구현 요소:**
|
|
1926
|
+
|
|
1927
|
+
1. **API 연동 정보**
|
|
1928
|
+
- 서비스: InventoryService, ProductService
|
|
1929
|
+
- 재고 데이터: postInventoryListStock
|
|
1930
|
+
- 재고 조정: postInventoryAdjustStock
|
|
1931
|
+
- 재고 내보내기: postInventoryExportStock
|
|
1932
|
+
- 재고 가져오기: postInventoryImportStock
|
|
1933
|
+
|
|
1934
|
+
2. **동적 테이블 구성**
|
|
1935
|
+
- 고정 열: 상품코드, 상품제목, 카테고리
|
|
1936
|
+
- 재고 열: 현재재고, 예약재고, 가용재고
|
|
1937
|
+
- 위치별 열: 창고별 재고 수량 (동적 생성)
|
|
1938
|
+
- 계산 열: 재고금액, 회전율, ABC분석
|
|
1939
|
+
|
|
1940
|
+
3. **인라인 편집**
|
|
1941
|
+
- 재고수량: 직접 수정 가능 (재고조정)
|
|
1942
|
+
- 안전재고: 최소 재고 수량 설정
|
|
1943
|
+
- 위치이동: 드래그로 재고 위치 이동
|
|
1944
|
+
- 상태변경: 정상/결품/폐기 상태 변경
|
|
1945
|
+
|
|
1946
|
+
4. **데이터 시각화**
|
|
1947
|
+
- 재고 수준: 색상 코딩 (빨간: 부족, 녹색: 적정, 파랑: 과다)
|
|
1948
|
+
- 진행률 바: 안전재고 대비 현재재고 비율
|
|
1949
|
+
- 알림 아이콘: 재고 부족 경고 표시
|
|
1950
|
+
- 트렌드 그래프: 최근 30일 재고 변동
|
|
1951
|
+
|
|
1952
|
+
**DTO 활용 정보:**
|
|
1953
|
+
- 재고 DTO: InventoryStock { productId, warehouseId, currentStock, reservedStock, safetyStock }
|
|
1954
|
+
- 테이블 설정: InventoryTableConfig { warehouses: Warehouse[], columns: DynamicColumn[] }
|
|
1955
|
+
- 재고조정: StockAdjustment { productId, warehouseId, adjustQty, reason }
|
|
1956
|
+
|
|
1957
|
+
**화면 경로:** /inventory/stock/modal-table
|
|
1958
|
+
**권한 관리:** 재고 조회 권한 + 재고조정 권한
|
|
1959
|
+
```
|
|
1960
|
+
|
|
1961
|
+
---
|
|
1962
|
+
|
|
1963
|
+
## 19. ✉️ 모달 추가삭제 기능형 (Modal Add Delete Function)
|
|
1964
|
+
|
|
1965
|
+
### 프롬프트 템플릿
|
|
1966
|
+
|
|
1967
|
+
```
|
|
1968
|
+
{도메인명} 모달 추가삭제 기능 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
1969
|
+
|
|
1970
|
+
**필수 구현 요소:**
|
|
1971
|
+
|
|
1972
|
+
1. **API 연동 정보**
|
|
1973
|
+
- 서비스: {도메인명}Service
|
|
1974
|
+
- 사용가능 목록: post{도메인명}ListAvailable{기능명}
|
|
1975
|
+
- 선택된 목록: post{도메인명}ListSelected{기능명}
|
|
1976
|
+
- 일괄 추가: post{도메인명}AddBatch{기능명}
|
|
1977
|
+
- 일괄 삭제: post{도메인명}DelBatch{기능명}
|
|
1978
|
+
- 검색: post{도메인명}Search{기능명}
|
|
1979
|
+
- Request DTO: Post{도메인명}{기능명}Request
|
|
1980
|
+
- Response DTO: Post{도메인명}{기능명}Response
|
|
1981
|
+
|
|
1982
|
+
2. **모달 구성**
|
|
1983
|
+
- 모달 크기: large (1000px) 또는 extraLarge (1200px)
|
|
1984
|
+
- 레이아웃: 좌우 분할 + 중앙 전송 버튼
|
|
1985
|
+
- 좌측: 사용가능 항목 목록 (40%)
|
|
1986
|
+
- 우측: 선택된 항목 목록 (40%)
|
|
1987
|
+
- 중앙: 전송 버튼 영역 (20%)
|
|
1988
|
+
- 키보드: Tab(좌우 이동), 스페이스(선택/해제)
|
|
1989
|
+
|
|
1990
|
+
3. **좌측 사용가능 목록**
|
|
1991
|
+
- 컴포넌트: ListDataGrid 또는 DataGrid
|
|
1992
|
+
- 선택 모드: 다중 선택 (체크박스)
|
|
1993
|
+
- 검색 기능: 상단 검색박스
|
|
1994
|
+
- 필터: 카테고리, 상태별 필터
|
|
1995
|
+
- 정렬: 이름, 등록일 등 정렬
|
|
1996
|
+
- 페이지네이션: 기본 페이징 또는 무한 스크롤
|
|
1997
|
+
- 전체 선택: 전체 선택/해제 버튼
|
|
1998
|
+
|
|
1999
|
+
4. **중앙 전송 버튼 영역**
|
|
2000
|
+
- 오른쪽 화살표 (▶): 선택 항목 오른쪽으로 이동
|
|
2001
|
+
- 왼쪽 화살표 (◀): 선택 항목 왼쪽으로 이동
|
|
2002
|
+
- 전체 오른쪽 (▶▶): 모든 항목 오른쪽으로
|
|
2003
|
+
- 전체 왼쪽 (◀◀): 모든 항목 왼쪽으로
|
|
2004
|
+
- 버튼 상태: 선택 상태에 따른 활성화/비활성화
|
|
2005
|
+
- 단축키: 화살표 키로 이동 가능
|
|
2006
|
+
|
|
2007
|
+
5. **우측 선택된 목록**
|
|
2008
|
+
- 컴포넌트: ListDataGrid 또는 DataGrid
|
|
2009
|
+
- 선택 모드: 다중 선택 (체크박스)
|
|
2010
|
+
- 순서 변경: 드래그 앤 드롭으로 순서 변경
|
|
2011
|
+
- 배치 정보: 추가된 순서 또는 배치 번호
|
|
2012
|
+
- 빠른 삭제: Delete키 또는 X버튼으로 즉시 삭제
|
|
2013
|
+
- 상태 표시: 신규추가/기존 항목 구분
|
|
2014
|
+
|
|
2015
|
+
6. **고급 기능**
|
|
2016
|
+
- 조건부 추가: 특정 조건을 만족하는 항목만 추가
|
|
2017
|
+
- 전송 옵션: 복사/이동/링크 모드
|
|
2018
|
+
- 드래그 앤 드롭: 좌우 간 드래그로 전송
|
|
2019
|
+
- 자동 완성: 입력중 자동 완성 기능
|
|
2020
|
+
- 이전 설정: 사용자별 이전 선택 내역 저장
|
|
2021
|
+
- 빠른 선택: 단축키로 빠른 선택/전송
|
|
2022
|
+
|
|
2023
|
+
7. **데이터 검증**
|
|
2024
|
+
- 중복 체크: 이미 선택된 항목 중복 방지
|
|
2025
|
+
- 의존성 체크: 전제조건 항목 선택 체크
|
|
2026
|
+
- 최대/최소 제한: 선택 가능 항목 수 제한
|
|
2027
|
+
- 구성 규칙: 비즈니스 규칙에 따른 유효성 검증
|
|
2028
|
+
- 충돌 감지: 선택 항목 간 충돌 감지
|
|
2029
|
+
|
|
2030
|
+
8. **사용자 경험**
|
|
2031
|
+
- 실시간 검색: 입력에 따른 즉시 필터링
|
|
2032
|
+
- 로딩 인디케이터: 데이터 로딩 상태 표시
|
|
2033
|
+
- 선택 카운터: 좌우 항목 수 표시
|
|
2034
|
+
- 단축키 가이드: 도움말 또는 툴팁
|
|
2035
|
+
- 진행률: 대량 데이터 처리시 진행률
|
|
2036
|
+
- 성공 피드백: 전송 완료 시 사용자 피드백
|
|
2037
|
+
|
|
2038
|
+
**DTO 활용 정보:**
|
|
2039
|
+
- 사용가능 항목: AvailableItem { id, name, category, status, metadata }
|
|
2040
|
+
- 선택 항목: SelectedItem { id, order, addedAt, source }
|
|
2041
|
+
- 전송 요청: TransferRequest { addIds: number[], removeIds: number[], mode: 'copy'|'move' }
|
|
2042
|
+
- 전송 결과: TransferResult { success: boolean, added: number, removed: number, errors: Error[] }
|
|
2043
|
+
|
|
2044
|
+
**화면 경로:** /{도메인경로}/modal-add-delete
|
|
2045
|
+
**권한 관리:** 데이터 선택 권한 + 일괄 처리 권한
|
|
2046
|
+
|
|
2047
|
+
**요청사항:**
|
|
2048
|
+
- 대량 데이터 선택 성능 최적화
|
|
2049
|
+
- 직관적인 드래그 앤 드롭 UI
|
|
2050
|
+
- 다양한 선택 모드 지원
|
|
2051
|
+
- 키보드 내비게이션 최적화
|
|
2052
|
+
- 모바일 대응 (터치 인터페이스)
|
|
2053
|
+
```
|
|
2054
|
+
|
|
2055
|
+
### 실제 사용 예시
|
|
2056
|
+
|
|
2057
|
+
```
|
|
2058
|
+
사용자 그룹 권한 관리 모달 추가삭제 기능 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
2059
|
+
|
|
2060
|
+
**필수 구현 요소:**
|
|
2061
|
+
|
|
2062
|
+
1. **API 연동 정보**
|
|
2063
|
+
- 서비스: SystemUserService, SystemRoleService
|
|
2064
|
+
- 사용가능 사용자: postSystemUserListAvailableUsers
|
|
2065
|
+
- 그룹 권한: postSystemRoleListGroupRoles
|
|
2066
|
+
- 그룹 사용자: postSystemUserListGroupUsers
|
|
2067
|
+
- 그룹 사용자 추가: postSystemUserAddToGroup
|
|
2068
|
+
- 그룹 사용자 제거: postSystemUserRemoveFromGroup
|
|
2069
|
+
|
|
2070
|
+
2. **좌측 사용가능 사용자**
|
|
2071
|
+
- 컬럼: 사용자ID, 사용자명, 부서, 직책, 상태
|
|
2072
|
+
- 검색: 사용자명, 사용자ID, 부서별 검색
|
|
2073
|
+
- 필터: 부서, 직책, 상태별 필터
|
|
2074
|
+
- 정렬: 사용자명, 부서 정렬
|
|
2075
|
+
- 전체 선택: 현재 필터된 모든 사용자
|
|
2076
|
+
|
|
2077
|
+
3. **우측 그룹 사용자**
|
|
2078
|
+
- 컬럼: 사용자ID, 사용자명, 추가일, 추가자
|
|
2079
|
+
- 순서 변경: 드래그로 그룹 내 사용자 순서
|
|
2080
|
+
- 배치 삭제: 선택된 사용자들 일괄 제거
|
|
2081
|
+
- 권한 표시: 각 사용자의 현재 권한 레벨
|
|
2082
|
+
|
|
2083
|
+
4. **고급 기능**
|
|
2084
|
+
- 권한 상속: 상위 그룹 권한 자동 상속
|
|
2085
|
+
- 권한 충돌: 충돌하는 권한 감지 및 경고
|
|
2086
|
+
- 임시 권한: 기간 한정 그룹 참여
|
|
2087
|
+
- 대량 추가: CSV 파일로 대량 사용자 추가
|
|
2088
|
+
|
|
2089
|
+
**DTO 활용 정보:**
|
|
2090
|
+
- 사용자 DTO: SystemUser { userId, userName, userLoginId, departmentName, jobTitle }
|
|
2091
|
+
- 그룹 DTO: UserGroup { groupId, groupName, description, parentGroupId }
|
|
2092
|
+
- 그룹 멤버: GroupMember { userId, groupId, addedAt, addedBy, isTemporary, expireDate }
|
|
2093
|
+
|
|
2094
|
+
**화면 경로:** /system/user-group/modal-add-delete
|
|
2095
|
+
**권한 관리:** 사용자 그룹 관리 권한
|
|
2096
|
+
```
|
|
2097
|
+
|
|
2098
|
+
---
|
|
2099
|
+
|
|
2100
|
+
## 20. 🏢 체크박스 모달 드래그 서브항목형 (Checkbox Modal Drag Sub)
|
|
2101
|
+
|
|
2102
|
+
### 프롬프트 템플릿
|
|
2103
|
+
|
|
2104
|
+
```
|
|
2105
|
+
{도메인명} 체크박스 모달 드래그 서브항목 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
2106
|
+
|
|
2107
|
+
**필수 구현 요소:**
|
|
2108
|
+
|
|
2109
|
+
1. **API 연동 정보**
|
|
2110
|
+
- 서비스: {도메인명}Service
|
|
2111
|
+
- 메인 목록: post{도메인명}List{메인기능명}
|
|
2112
|
+
- 서브 목록: post{도메인명}ListSub{서브기능명}
|
|
2113
|
+
- 드래그 처리: post{도메인명}MoveSub{기능명}
|
|
2114
|
+
- 일괄 처리: post{도메인명}ProcessBatch{기능명}
|
|
2115
|
+
- 관계 설정: post{도메인명}SetRelation{기능명}
|
|
2116
|
+
- Request DTO: Post{도메인명}{기능명}Request
|
|
2117
|
+
- Response DTO: Post{도메인명}{기능명}Response
|
|
2118
|
+
|
|
2119
|
+
2. **모달 구성**
|
|
2120
|
+
- 모달 크기: extraLarge (1400px) 또는 fullscreen
|
|
2121
|
+
- 레이아웃: 상단 메인 선택 + 하단 서브 드래그 영역
|
|
2122
|
+
- 상단: 체크박스 그리드 (30%)
|
|
2123
|
+
- 하단: 드래그 가능한 서브항목 관리 (70%)
|
|
2124
|
+
- 분할선: 상하 크기 조절 가능한 스플리터
|
|
2125
|
+
|
|
2126
|
+
3. **상단 메인 체크박스 그리드**
|
|
2127
|
+
- 컴포넌트: DataGrid 또는 Table
|
|
2128
|
+
- 선택 모드: 다중 선택 (체크박스)
|
|
2129
|
+
- 마스터 선택: 메인 항목 선택시 하단 서브항목 변경
|
|
2130
|
+
- 전체 선택: 전체 메인 항목 선택/해제
|
|
2131
|
+
- 필터링: 카테고리별, 상태별 필터
|
|
2132
|
+
- 검색: 키워드 검색
|
|
2133
|
+
- 상태 표시: 각 메인 항목의 서브항목 개수 표시
|
|
2134
|
+
|
|
2135
|
+
4. **하단 서브항목 드래그 영역**
|
|
2136
|
+
- 드래그 라이브러리: react-beautiful-dnd
|
|
2137
|
+
- 레이아웃: 카드형 또는 리스트형
|
|
2138
|
+
- 그룹화: 카테고리별 또는 상태별 그룹
|
|
2139
|
+
- 드래그 가능: 서브항목 순서 변경
|
|
2140
|
+
- 드롭 존: 여러 그룹 간 이동 가능
|
|
2141
|
+
- 시각적 피드백: 드래그 중 미리보기
|
|
2142
|
+
- 제약 조건: 특정 조건에서만 드래그 허용
|
|
2143
|
+
|
|
2144
|
+
5. **드래그 앤 드롭 기능**
|
|
2145
|
+
- 순서 변경: 같은 그룹 내 순서 변경
|
|
2146
|
+
- 그룹 이동: 다른 그룹으로 이동
|
|
2147
|
+
- 일괄 드래그: 다중 선택된 항목 일괄 이동
|
|
2148
|
+
- 제약 사항: 비즈니스 규칙에 따른 드래그 제한
|
|
2149
|
+
- 되돌리기: Ctrl+Z로 마지막 드래그 취소
|
|
2150
|
+
- 자동 스크롤: 드래그 중 자동 스크롤
|
|
2151
|
+
|
|
2152
|
+
6. **서브항목 관리**
|
|
2153
|
+
- 추가: 새 서브항목 추가
|
|
2154
|
+
- 편집: 인라인 또는 모달 편집
|
|
2155
|
+
- 삭제: 선택된 서브항목 삭제
|
|
2156
|
+
- 복사: 다른 메인 항목으로 복사
|
|
2157
|
+
- 일괄 작업: 체크박스로 선택 후 일괄 처리
|
|
2158
|
+
- 상태 변경: 활성/비활성 상태 토글
|
|
2159
|
+
|
|
2160
|
+
7. **관계 설정 및 검증**
|
|
2161
|
+
- 부모-자식 관계: 메인-서브 관계 설정
|
|
2162
|
+
- 의존성 체크: 서브항목 간 의존성 검증
|
|
2163
|
+
- 순환 참조: 순환 참조 방지
|
|
2164
|
+
- 제약 조건: 최대/최소 서브항목 수 제한
|
|
2165
|
+
- 유효성 검증: 관계 무결성 검증
|
|
2166
|
+
- 경고 표시: 제약 위반시 경고 메시지
|
|
2167
|
+
|
|
2168
|
+
8. **고급 기능**
|
|
2169
|
+
- 템플릿: 서브항목 구성 템플릿
|
|
2170
|
+
- 즐겨찾기: 자주 사용하는 구성 저장
|
|
2171
|
+
- 히스토리: 변경 이력 추적 및 복원
|
|
2172
|
+
- 미리보기: 최종 구성 미리보기
|
|
2173
|
+
- 내보내기: 구성 정보 Excel/JSON 내보내기
|
|
2174
|
+
- 가져오기: 외부 구성 정보 가져오기
|
|
2175
|
+
|
|
2176
|
+
**DTO 활용 정보:**
|
|
2177
|
+
- 메인 항목: MainItem { id, name, category, status, subItemCount }
|
|
2178
|
+
- 서브 항목: SubItem { id, mainId, name, order, groupId, dependencies }
|
|
2179
|
+
- 드래그 결과: DragResult { sourceId, targetId, newOrder, newGroupId }
|
|
2180
|
+
- 관계 설정: RelationConfig { mainId, subItems: SubItem[], rules: Rule[] }
|
|
2181
|
+
|
|
2182
|
+
**화면 경로:** /{도메인경로}/modal-checkbox-drag-sub
|
|
2183
|
+
**권한 관리:** 구조 관리 권한 + 드래그 권한
|
|
2184
|
+
|
|
2185
|
+
**요청사항:**
|
|
2186
|
+
- 매끄러운 드래그 앤 드롭 UX
|
|
2187
|
+
- 복잡한 관계 설정 지원
|
|
2188
|
+
- 대량 데이터 성능 최적화
|
|
2189
|
+
- 실시간 유효성 검증
|
|
2190
|
+
- 키보드 접근성 지원
|
|
2191
|
+
```
|
|
2192
|
+
|
|
2193
|
+
### 실제 사용 예시
|
|
2194
|
+
|
|
2195
|
+
```
|
|
2196
|
+
조직도 관리 체크박스 모달 드래그 서브항목 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
2197
|
+
|
|
2198
|
+
**필수 구현 요소:**
|
|
2199
|
+
|
|
2200
|
+
1. **API 연동 정보**
|
|
2201
|
+
- 서비스: OrganizationService, DepartmentService
|
|
2202
|
+
- 부서 목록: postDepartmentListDepartment
|
|
2203
|
+
- 직원 목록: postEmployeeListByDepartment
|
|
2204
|
+
- 직원 이동: postEmployeeMoveEmployee
|
|
2205
|
+
- 조직 구조: postOrganizationUpdateStructure
|
|
2206
|
+
|
|
2207
|
+
2. **상단 부서 체크박스 그리드**
|
|
2208
|
+
- 컬럼: 부서코드, 부서명, 상위부서, 직원수, 상태
|
|
2209
|
+
- 체크박스: 다중 부서 선택 가능
|
|
2210
|
+
- 계층 표시: 들여쓰기로 부서 계층 표시
|
|
2211
|
+
- 직원수 표시: 각 부서별 현재 직원 수
|
|
2212
|
+
|
|
2213
|
+
3. **하단 직원 드래그 영역**
|
|
2214
|
+
- 직원 카드: 사진, 이름, 직책, 연락처
|
|
2215
|
+
- 그룹별 정렬: 직책별, 입사일별 그룹화
|
|
2216
|
+
- 드래그 가능: 직원을 다른 부서로 이동
|
|
2217
|
+
- 제약 조건: 관리자급은 특정 부서로만 이동 가능
|
|
2218
|
+
|
|
2219
|
+
4. **조직도 관리 기능**
|
|
2220
|
+
- 부서장 지정: 드래그로 부서장 설정
|
|
2221
|
+
- 직책 변경: 드래그로 직책 레벨 변경
|
|
2222
|
+
- 팀 구성: 프로젝트 팀 임시 구성
|
|
2223
|
+
- 승인 플로우: 조직 변경시 승인 절차
|
|
2224
|
+
|
|
2225
|
+
**DTO 활용 정보:**
|
|
2226
|
+
- 부서 DTO: Department { deptId, deptName, parentDeptId, employeeCount }
|
|
2227
|
+
- 직원 DTO: Employee { empId, empName, deptId, jobTitle, profileImage }
|
|
2228
|
+
- 이동 요청: EmployeeMove { empId, fromDeptId, toDeptId, newJobTitle }
|
|
2229
|
+
|
|
2230
|
+
**화면 경로:** /organization/structure/modal-drag
|
|
2231
|
+
**권한 관리:** 조직 관리 권한 + 인사 권한
|
|
2232
|
+
```
|
|
2233
|
+
|
|
2234
|
+
---
|
|
2235
|
+
|
|
2236
|
+
## 21. 📋 탭 서브탭 일괄등록형 (Tab SubTab Bulk Register)
|
|
2237
|
+
|
|
2238
|
+
### 프롬프트 템플릿
|
|
2239
|
+
|
|
2240
|
+
```
|
|
2241
|
+
{도메인명} 탭 서브탭 일괄등록 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
2242
|
+
|
|
2243
|
+
**필수 구현 요소:**
|
|
2244
|
+
|
|
2245
|
+
1. **API 연동 정보**
|
|
2246
|
+
- 서비스: {도메인명}Service
|
|
2247
|
+
- 탭 목록: post{도메인명}ListTabs{기능명}
|
|
2248
|
+
- 서브탭 목록: post{도메인명}ListSubTabs{기능명}
|
|
2249
|
+
- 데이터 목록: post{도메인명}ListData{기능명}
|
|
2250
|
+
- 일괄 등록: post{도메인명}BulkRegister{기능명}
|
|
2251
|
+
- 템플릿 조회: post{도메인명}GetTemplate{기능명}
|
|
2252
|
+
- Request DTO: Post{도메인명}{기능명}Request
|
|
2253
|
+
- Response DTO: Post{도메인명}{기능명}Response
|
|
2254
|
+
|
|
2255
|
+
2. **탭 구조**
|
|
2256
|
+
- 메인 탭: 1차 카테고리 탭
|
|
2257
|
+
- 서브 탭: 2차 카테고리 탭
|
|
2258
|
+
- 탭 활성화: 선택된 탭에 따른 콘텐츠 변경
|
|
2259
|
+
- 탭 상태: 각 탭별 데이터 개수 배지 표시
|
|
2260
|
+
- 탭 비활성화: 권한에 따른 탭 비활성화
|
|
2261
|
+
- 탭 순서: 관리자 설정에 따른 탭 순서
|
|
2262
|
+
|
|
2263
|
+
3. **일괄 등록 폼**
|
|
2264
|
+
- 폼 구성: 동적 폼 필드 생성
|
|
2265
|
+
- 반복 섹션: 여러 항목 동시 입력
|
|
2266
|
+
- 필드 타입: text, number, date, select, checkbox, file
|
|
2267
|
+
- 조건부 필드: 특정 조건에서만 표시되는 필드
|
|
2268
|
+
- 필드 검증: 실시간 유효성 검증
|
|
2269
|
+
- 자동 입력: 기본값 또는 계산값 자동 설정
|
|
2270
|
+
|
|
2271
|
+
4. **데이터 그리드**
|
|
2272
|
+
- 그리드 표시: 입력된 데이터 미리보기
|
|
2273
|
+
- 인라인 편집: 그리드에서 직접 편집
|
|
2274
|
+
- 행 추가/삭제: 동적으로 행 추가 및 삭제
|
|
2275
|
+
- 데이터 검증: 그리드 내 데이터 유효성 검증
|
|
2276
|
+
- 중복 체크: 동일 데이터 중복 방지
|
|
2277
|
+
- 정렬 기능: 그리드 데이터 정렬
|
|
2278
|
+
|
|
2279
|
+
5. **템플릿 기능**
|
|
2280
|
+
- 템플릿 선택: 미리 정의된 템플릿 선택
|
|
2281
|
+
- 템플릿 적용: 선택한 템플릿으로 폼 자동 설정
|
|
2282
|
+
- 사용자 템플릿: 사용자 정의 템플릿 저장
|
|
2283
|
+
- 템플릿 공유: 다른 사용자와 템플릿 공유
|
|
2284
|
+
- 템플릿 버전: 템플릿 버전 관리
|
|
2285
|
+
- 기본 템플릿: 탭별 기본 템플릿 설정
|
|
2286
|
+
|
|
2287
|
+
6. **파일 업로드**
|
|
2288
|
+
- Excel 업로드: Excel 파일로 대량 데이터 업로드
|
|
2289
|
+
- CSV 업로드: CSV 파일 지원
|
|
2290
|
+
- 파일 검증: 업로드 파일 형식 및 내용 검증
|
|
2291
|
+
- 오류 보고: 업로드 오류 상세 리포트
|
|
2292
|
+
- 미리보기: 업로드 전 데이터 미리보기
|
|
2293
|
+
- 매핑: 파일 컬럼과 시스템 필드 매핑
|
|
2294
|
+
|
|
2295
|
+
7. **진행률 및 상태**
|
|
2296
|
+
- 진행률 표시: 전체 등록 진행률
|
|
2297
|
+
- 단계별 진행: 각 단계별 완료 상태
|
|
2298
|
+
- 성공/실패: 등록 성공 및 실패 통계
|
|
2299
|
+
- 오류 목록: 등록 실패 항목 상세 정보
|
|
2300
|
+
- 재시도: 실패한 항목 재시도 기능
|
|
2301
|
+
- 중단/재개: 진행 중 중단 및 재개
|
|
2302
|
+
|
|
2303
|
+
8. **고급 기능**
|
|
2304
|
+
- 배치 처리: 대량 데이터 배치 단위 처리
|
|
2305
|
+
- 스케줄링: 특정 시간에 등록 실행
|
|
2306
|
+
- 승인 워크플로: 등록 전 승인 절차
|
|
2307
|
+
- 알림: 등록 완료 시 이메일/SMS 알림
|
|
2308
|
+
- 감사 로그: 모든 등록 활동 로그 기록
|
|
2309
|
+
- 백업: 등록 전 기존 데이터 백업
|
|
2310
|
+
|
|
2311
|
+
**DTO 활용 정보:**
|
|
2312
|
+
- 탭 구성: TabConfig { mainTabs: Tab[], subTabs: SubTab[] }
|
|
2313
|
+
- 등록 데이터: BulkRegisterData { tabId, subTabId, items: RegisterItem[] }
|
|
2314
|
+
- 템플릿: Template { templateId, name, config: FormConfig }
|
|
2315
|
+
- 진행 상태: ProgressStatus { total, completed, failed, inProgress }
|
|
2316
|
+
|
|
2317
|
+
**화면 경로:** /{도메인경로}/tab-subtab-bulk
|
|
2318
|
+
**권한 관리:** 일괄 등록 권한 + 탭별 접근 권한
|
|
2319
|
+
|
|
2320
|
+
**요청사항:**
|
|
2321
|
+
- 대량 데이터 처리 성능 최적화
|
|
2322
|
+
- 직관적인 탭 네비게이션
|
|
2323
|
+
- 강력한 데이터 검증 기능
|
|
2324
|
+
- 사용자 친화적 진행률 표시
|
|
2325
|
+
- 에러 처리 및 복구 기능
|
|
2326
|
+
```
|
|
2327
|
+
|
|
2328
|
+
### 실제 사용 예시
|
|
2329
|
+
|
|
2330
|
+
```
|
|
2331
|
+
상품 대량 등록 탭 서브탭 일괄등록 화면을 AXBoot 프레임워크로 개발해주세요.
|
|
2332
|
+
|
|
2333
|
+
**필수 구현 요소:**
|
|
2334
|
+
|
|
2335
|
+
1. **API 연동 정보**
|
|
2336
|
+
- 서비스: ProductService, CategoryService
|
|
2337
|
+
- 카테고리 탭: postCategoryListMainCategory
|
|
2338
|
+
- 서브 카테고리: postCategoryListSubCategory
|
|
2339
|
+
- 상품 템플릿: postProductGetBulkTemplate
|
|
2340
|
+
- 상품 일괄등록: postProductBulkRegister
|
|
2341
|
+
|
|
2342
|
+
2. **탭 구조**
|
|
2343
|
+
- 메인 탭: 가전, 생활용품, 식품, 의류 등
|
|
2344
|
+
- 서브 탭: 세부 카테고리 (예: 가전 > TV, 냉장고, 세탁기)
|
|
2345
|
+
- 등록 개수: 각 탭별 등록 대기 상품 수 표시
|
|
2346
|
+
- 필수 필드: 탭별로 다른 필수 입력 필드
|
|
2347
|
+
|
|
2348
|
+
3. **상품 일괄 등록 폼**
|
|
2349
|
+
- 기본 정보: 상품명, 가격, 재고수량, 상품설명
|
|
2350
|
+
- 상세 정보: 브랜드, 모델명, 크기, 무게, 색상
|
|
2351
|
+
- 이미지: 대표이미지, 상세이미지 (최대 10개)
|
|
2352
|
+
- 배송 정보: 배송비, 배송방법, 배송기간
|
|
2353
|
+
- SEO 정보: 메타태그, 키워드, 검색 태그
|
|
2354
|
+
|
|
2355
|
+
4. **템플릿 활용**
|
|
2356
|
+
- 카테고리별 템플릿: 각 카테고리에 최적화된 입력 템플릿
|
|
2357
|
+
- 브랜드별 템플릿: 브랜드별 공통 정보 자동 입력
|
|
2358
|
+
- 사용자 템플릿: 자주 사용하는 설정 저장
|
|
2359
|
+
- Excel 템플릿: 카테고리별 Excel 업로드 템플릿
|
|
2360
|
+
|
|
2361
|
+
5. **대량 처리 기능**
|
|
2362
|
+
- Excel 업로드: 최대 1000개 상품 동시 업로드
|
|
2363
|
+
- 이미지 업로드: ZIP 파일로 이미지 일괄 업로드
|
|
2364
|
+
- 데이터 검증: 상품코드 중복, 가격 범위 등 검증
|
|
2365
|
+
- 진행률 표시: 등록 진행 상황 실시간 표시
|
|
2366
|
+
|
|
2367
|
+
**DTO 활용 정보:**
|
|
2368
|
+
- 상품 등록: ProductBulkRegister { categoryId, products: ProductRegisterItem[] }
|
|
2369
|
+
- 등록 항목: ProductRegisterItem { name, price, stock, description, images }
|
|
2370
|
+
- 템플릿: ProductTemplate { categoryId, fields: FieldConfig[] }
|
|
2371
|
+
|
|
2372
|
+
**화면 경로:** /product/bulk-register/tab-subtab
|
|
2373
|
+
**권한 관리:** 상품 등록 권한 + 카테고리별 접근 권한
|
|
2374
|
+
```
|
|
2375
|
+
|
|
2376
|
+
---
|
|
2377
|
+
|
|
2378
|
+
## 22-27. 나머지 타입들 (간략형)
|
|
2379
|
+
|
|
2380
|
+
마지막 6개 타입들에 대한 핵심 프롬프트를 제공합니다:
|
|
2381
|
+
|
|
2382
|
+
## 22. 📁 모달 파일업로드형 (Modal File Upload)
|
|
2383
|
+
**핵심 기능:** 다양한 파일 타입 업로드, 드래그앤드롭, 진행률 표시, 파일 검증
|
|
2384
|
+
**API 패턴:** `postUploadFiles`, `postValidateFile`, `postProcessUpload`
|
|
2385
|
+
**주요 컴포넌트:** Upload, Progress, FileList, Validation
|
|
2386
|
+
|
|
2387
|
+
## 23. 🎯 드로우모달형 (Draw Modal)
|
|
2388
|
+
**핵심 기능:** Drawer 형태 모달, 슬라이드 애니메이션, 다단계 폼
|
|
2389
|
+
**API 패턴:** `postDrawerData`, `postDrawerSave`, `postDrawerStep`
|
|
2390
|
+
**주요 컴포넌트:** Drawer, Steps, Form, Navigation
|
|
2391
|
+
|
|
2392
|
+
## 24. 🎪 모달 내 모달형 (Modal in Modal)
|
|
2393
|
+
**핵심 기능:** 중첩 모달 관리, z-index 처리, 모달 스택 관리
|
|
2394
|
+
**API 패턴:** `postParentModal`, `postChildModal`, `postModalStack`
|
|
2395
|
+
**주요 컴포넌트:** Modal, ModalStack, ZIndexManager
|
|
2396
|
+
|
|
2397
|
+
## 25. 📑 모달 탭구현형 (Modal Tab Implementation)
|
|
2398
|
+
**핵심 기능:** 모달 내 탭 구성, 탭별 독립 데이터, 탭 상태 관리
|
|
2399
|
+
**API 패턴:** `postTabData`, `postTabSave`, `postTabValidation`
|
|
2400
|
+
**주요 컴포넌트:** Tabs, TabPane, TabContent
|
|
2401
|
+
|
|
2402
|
+
## 26. ⚖️ 모달 데이터 좌우이동형 (Modal Data Transfer)
|
|
2403
|
+
**핵심 기능:** Transfer 컴포넌트, 좌우 데이터 이동, 검색 및 필터
|
|
2404
|
+
**API 패턴:** `postTransferSource`, `postTransferTarget`, `postTransferExecute`
|
|
2405
|
+
**주요 컴포넌트:** Transfer, List, Search, Filter
|
|
2406
|
+
|
|
2407
|
+
## 27. 📊 모달 테이블드래그형 (Modal Table Drag)
|
|
2408
|
+
**핵심 기능:** 테이블 행 드래그, 순서 변경, 그룹 이동
|
|
2409
|
+
**API 패턴:** `postTableData`, `postUpdateOrder`, `postMoveGroup`
|
|
2410
|
+
**주요 컴포넌트:** DragTable, SortableRow, DropZone
|
|
2411
|
+
|
|
2412
|
+
---
|
|
2413
|
+
|
|
2414
|
+
## 프롬프트 활용 가이드
|
|
2415
|
+
|
|
2416
|
+
이 가이드의 프롬프트들을 효과적으로 활용하기 위한 핵심 포인트:
|
|
2417
|
+
|
|
2418
|
+
1. **정확한 DTO 정보 제공**: 실제 프로젝트의 DTO 구조를 정확히 파악하여 프롬프트에 반영
|
|
2419
|
+
2. **구체적인 요구사항 명시**: 비즈니스 로직과 유효성 검증 규칙을 상세히 기술
|
|
2420
|
+
3. **성능 고려사항 포함**: 대용량 데이터 처리나 복잡한 UI 상호작용에 대한 성능 최적화 요구사항 명시
|
|
2421
|
+
4. **접근성 고려**: 키보드 내비게이션, 스크린 리더 지원 등 접근성 요구사항 포함
|
|
2422
|
+
5. **실제 화면 참조**: 기존 유사 화면을 참조하여 일관성 있는 UI/UX 구현
|