@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.
Files changed (78) hide show
  1. package/CLAUDE.md +119 -0
  2. package/MCP_TOOL_PLAN.md +710 -0
  3. package/MCP_USAGE.md +914 -0
  4. package/README.md +168 -0
  5. package/REPOSITORY_CONVENTIONS.md +250 -0
  6. package/SEARCH_PARAMS_MCP_TOOL_COMPLETE_PLAN.md +646 -0
  7. package/SEARCH_PARAMS_PLAN.md +2570 -0
  8. package/STORE_PATTERNS.md +1178 -0
  9. package/debug-dto.js +72 -0
  10. package/generate-banner-store.js +62 -0
  11. package/generation-plan.json +2176 -0
  12. package/generation-results.json +1817 -0
  13. package/package.json +45 -0
  14. package/scripts/batch-generate-all.js +159 -0
  15. package/scripts/batch-generate-mcp.js +329 -0
  16. package/scripts/batch-generate-stores-v2.js +272 -0
  17. package/scripts/batch-generate-stores.js +179 -0
  18. package/scripts/batch-plan.json +3810 -0
  19. package/scripts/batch-process.py +90 -0
  20. package/scripts/batch-regenerate.js +356 -0
  21. package/scripts/direct-generate.js +227 -0
  22. package/scripts/execute-batches.js +1911 -0
  23. package/scripts/generate-all-stores.js +144 -0
  24. package/scripts/generate-stores-mcp.js +161 -0
  25. package/scripts/generate-stores-v2.js +450 -0
  26. package/scripts/generate-stores-v3.js +412 -0
  27. package/scripts/generate-stores-v4.js +521 -0
  28. package/scripts/generate-stores.js +382 -0
  29. package/scripts/repos-to-process.json +1899 -0
  30. package/src/config/nh-layout-patterns.ts +166 -0
  31. package/src/docs/HOOK_GENERATION_PLAN.md +2226 -0
  32. package/src/docs/NH_STORE_PATTERNS.md +297 -0
  33. package/src/docs/README.md +216 -0
  34. package/src/docs/index.ts +28 -0
  35. package/src/docs/loader.ts +568 -0
  36. package/src/docs/patterns.json +419 -0
  37. package/src/docs/practical-examples.md +732 -0
  38. package/src/docs/quick-start.md +257 -0
  39. package/src/docs/requirements-analysis-guide.md +364 -0
  40. package/src/docs/rules.json +321 -0
  41. package/src/docs/store-pattern-analysis.md +664 -0
  42. package/src/docs/store-patterns-rules.md +1168 -0
  43. package/src/docs/store-patterns-usage-guide.md +1835 -0
  44. package/src/docs/troubleshooting.md +544 -0
  45. package/src/docs/type-selection-guide.md +572 -0
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. package/src/features/store-features.ts +232 -0
  58. package/src/handlers/analyze-requirements.ts +403 -0
  59. package/src/handlers/analyze.ts +1373 -0
  60. package/src/handlers/generate-from-requirements.ts +250 -0
  61. package/src/handlers/generate-hook.ts +950 -0
  62. package/src/handlers/generate-interactive.ts +840 -0
  63. package/src/handlers/generate-listdatagrid.ts +521 -0
  64. package/src/handlers/generate-multi-stores.ts +577 -0
  65. package/src/handlers/generate-requirements-from-layout.ts +160 -0
  66. package/src/handlers/generate-search-params.ts +717 -0
  67. package/src/handlers/generate.ts +911 -0
  68. package/src/handlers/list-templates.ts +104 -0
  69. package/src/handlers/scan-metadata.ts +485 -0
  70. package/src/handlers/suggest-layout.ts +326 -0
  71. package/src/index.ts +959 -0
  72. package/src/prompts/search-params.md +793 -0
  73. package/src/templates/index.ts +107 -0
  74. package/src/templates/unified.ts +462 -0
  75. package/store-generation-error-patterns.md +225 -0
  76. package/test/useAgentStore.ts +136 -0
  77. package/test-server.js +78 -0
  78. 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 구현