@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,257 @@
1
+ # MCP-AXBoot 빠른 시작 가이드
2
+
3
+ > MCP-AXBoot를 처음 사용하는 분들을 위한 빠른 시작 가이드입니다.
4
+
5
+ ## 목차
6
+
7
+ 1. [설치 및 설정](#1-설치-및-설정)
8
+ 2. [기본 사용법](#2-기본-사용법)
9
+ 3. [5분 만에 Store 만들기](#3-5분-만에-store-만들기)
10
+ 4. [자주 묻는 질문](#4-자주-묻는-질문)
11
+
12
+ ---
13
+
14
+ ## 1. 설치 및 설정
15
+
16
+ ### 1.1 프로젝트 클론
17
+
18
+ ```bash
19
+ cd /path/to/your/workspace
20
+ git clone <mcp-axboot-repo-url>
21
+ cd mcp-axboot
22
+ npm install
23
+ npm run build
24
+ ```
25
+
26
+ ### 1.2 Claude Desktop 설정
27
+
28
+ Claude Desktop의 설정 파일에 MCP 서버를 등록합니다:
29
+
30
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
31
+ **Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
32
+
33
+ ```json
34
+ {
35
+ "mcpServers": {
36
+ "mcp-axboot": {
37
+ "command": "node",
38
+ "args": ["/Users/kyle/work/mcp-axboot/dist/index.js"]
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ 경로를 실제 프로젝트 경로로 수정하세요.
45
+
46
+ ### 1.3 Claude Desktop 재시작
47
+
48
+ 설정을 저장한 후 Claude Desktop을 재시작합니다.
49
+
50
+ ---
51
+
52
+ ## 2. 기본 사용법
53
+
54
+ ### 2.1 사용 가능한 도구
55
+
56
+ MCP-AXBoot는 다음 도구들을 제공합니다:
57
+
58
+ | 도구 이름 | 설명 |
59
+ |---------|------|
60
+ | `analyze_interface` | Repository 인터페이스 파일 분석 |
61
+ | `generate_store` | Store 파일 생성 (타입 지정) |
62
+ | `generate_store_from_requirements` | 자연어 요구사항으로 Store 생성 |
63
+ | `analyze_requirements` | 요구사항 분석 및 타입 추천 |
64
+ | `generate_multi_stores` | 다중 리스트 Store 생성 |
65
+ | `list_templates` | 사용 가능한 템플릿 목록 |
66
+ | `suggest_layout` | Repository에 적합한 레이아웃 추천 |
67
+ | `generate_requirements_from_layout` | 레이아웃으로 요구사항 생성 |
68
+
69
+ ### 2.2 Claude에서의 사용 예시
70
+
71
+ #### Repository 분석
72
+
73
+ ```
74
+ 분석해줘: /path/to/MemberRepository.ts
75
+ ```
76
+
77
+ #### Store 생성 (기본)
78
+
79
+ ```
80
+ MemberRepository.ts를 분석해서 useMemberListStore를 생성해줘.
81
+ 출력 경로는 /path/to/stores/useMemberListStore.ts로 해줘.
82
+ ```
83
+
84
+ #### Store 생성 (타입 지정)
85
+
86
+ ```
87
+ ProductRepository.ts를 분석해서 Type 7 스타일의 Store를 만들어줘.
88
+ 대시보드 형태가 필요해.
89
+ ```
90
+
91
+ #### 자연어 요구사항으로 Store 생성
92
+
93
+ ```
94
+ "상품 목록을 보여주고, 선택한 상품을 모달에서 수정할 수 있는 Store"를 만들어줘.
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 3. 5분 만에 Store 만들기
100
+
101
+ ### 시나리오: 회원 목록 Store 만들기
102
+
103
+ #### Step 1: Repository 파일 확인
104
+
105
+ ```typescript
106
+ // services/MemberRepository.ts
107
+ export interface MemberRepository {
108
+ postMemberListMember(request: PostMemberListMemberRequest): Promise<MemberListResponse>;
109
+ postMemberSaveMember(request: PostMemberSaveMemberRequest): Promise<MemberSaveResponse>;
110
+ postMemberDeleteMember(request: PostMemberDeleteMemberRequest): Promise<void>;
111
+ }
112
+ ```
113
+
114
+ #### Step 2: Claude에 요청
115
+
116
+ ```
117
+ 다음 조건으로 Store를 생성해줘:
118
+ - Repository: /path/to/services/MemberRepository.ts
119
+ - 출력: /path/to/stores/useMemberListStore.ts
120
+ - 타입: CRUD 가능한 전체 기능 (저장, 삭제 포함)
121
+ ```
122
+
123
+ #### Step 3: 생성된 Store 확인
124
+
125
+ ```typescript
126
+ // stores/useMemberListStore.ts
127
+ import { AXDGDataItem, AXDGPage, AXDGSortParam } from "@axboot/datagrid";
128
+ import { pageStoreActions } from "@core/stores/pageStoreActions";
129
+ // ... imports
130
+
131
+ interface ListRequest extends PostMemberListMemberRequest {}
132
+ interface DtoItem extends MemberRes {}
133
+ interface SaveRequest extends PostMemberSaveMemberRequest {}
134
+
135
+ interface MetaData {
136
+ programFn?: ProgramFn;
137
+ listRequestValue: ListRequest;
138
+ listColWidths: number[];
139
+ listSortParams: AXDGSortParam[];
140
+ listSelectedRowKey?: React.Key;
141
+ saveRequestValue: SaveRequest;
142
+ // ... 필드들
143
+ }
144
+
145
+ export const useMemberListStore = create(
146
+ subscribeWithSelector<memberListStore>((set, get) => ({
147
+ ...createState,
148
+ ...createActions(set, get),
149
+ }))
150
+ );
151
+ ```
152
+
153
+ #### Step 4: 컴포넌트에서 사용
154
+
155
+ ```tsx
156
+ import { useMemberListStore } from './stores/useMemberListStore';
157
+
158
+ function MemberListPage() {
159
+ const {
160
+ listData,
161
+ listPage,
162
+ listSpinning,
163
+ callListApi,
164
+ changeListPage,
165
+ setListSelectedRowKey,
166
+ callSaveApi,
167
+ callDeleteApi,
168
+ } = useMemberListStore();
169
+
170
+ useEffect(() => {
171
+ callListApi();
172
+ }, []);
173
+
174
+ return (
175
+ // ... UI 구현
176
+ );
177
+ }
178
+ ```
179
+
180
+ ---
181
+
182
+ ## 4. 자주 묻는 질문
183
+
184
+ ### Q1: 어떤 Store 타입을 선택해야 하나요?
185
+
186
+ **A**: 기능별로 추천 타입:
187
+
188
+ | 필요한 기능 | 추천 타입 |
189
+ |-----------|---------|
190
+ | 단순 조회만 | Type 1 (Basic List) |
191
+ | 조회 + 엑셀 다운로드 | Type 2 |
192
+ | 조회 + 상세 보기/편집 | Type 3 |
193
+ | 마스터-디테일 (선택 시 상세 표시) | Type 4 |
194
+ | 전체 CRUD | Type 5 |
195
+ | 트리 구조 | Type 6 |
196
+ | 대시보드 (여러 데이터) | Type 7 |
197
+ | 모달 기반 작업 | Type 8 |
198
+ | 체크박스 다중 선택 후 일괄 처리 | Type 9 |
199
+
200
+ ### Q2: 생성된 Store를 수정해야 하나요?
201
+
202
+ **A**: 네, 생성 후 다음을 확인하세요:
203
+
204
+ 1. **초기 검색조건**: `createState.listRequestValue`에 필요한 검색조건 추가
205
+ 2. **API 파라미터**: `callListApi`에서 필요한 파라미터 변환 로직 확인
206
+ 3. **타입 정의**: Request/Response 타입이 실제 API와 일치하는지 확인
207
+ 4. **Service 메서드명**: 실제 Service 메서드명과 일치하는지 확인
208
+
209
+ ### Q3: 다중 리스트는 어떻게 만드나요?
210
+
211
+ **A**: 두 가지 방법:
212
+
213
+ **방법 1**: `generate_multi_stores` 도구 사용
214
+ ```
215
+ 왼쪽 목록, 상단 디테일 목록, 하단 디테일 목록이 있는 Store를 만들어줘.
216
+ 각 목록은 검색과 엑셀 다운로드가 필요해.
217
+ ```
218
+
219
+ **방법 2**: Type 7 (Dashboard) 템플릿 사용
220
+ ```
221
+ 요약 데이터와 2개의 리스트가 있는 대시보드 Store를 만들어줘.
222
+ ```
223
+
224
+ ### Q4: 생성 후 컴파일 오류가 발생해요
225
+
226
+ **A**: 일반적인 해결 방법:
227
+
228
+ 1. **imports 확인**: Service, 타입 import 경로가 올바른지 확인
229
+ 2. **타입 오류**: Repository의 Request/Response 타입과 일치하는지 확인
230
+ 3. **누락된 메서드**: TODO 주석으로 표시된 메서드 구현
231
+
232
+ ```typescript
233
+ // TODO: 저장 API 호출 구현 필요
234
+ // await MemberService.saveMember(apiParam);
235
+ // → 실제 Service 메서드로 변경
236
+ await MemberService.postMemberSave(apiParam);
237
+ ```
238
+
239
+ ### Q5: Store 패턴을 커스텀할 수 있나요?
240
+
241
+ **A**: 네, 두 가지 방법:
242
+
243
+ 1. **생성 후 수정**: 생성된 Store를 직접 수정
244
+ 2. **템플릿 확장**: `src/templates/` 폴더에 새 템플릿 추가
245
+
246
+ ### Q6: 기존 Store와 호환되나요?
247
+
248
+ **A**: 네, NH-FE-B 프로젝트의 Store 패턴을 따르므로 기존 Store와 호환됩니다.
249
+
250
+ ---
251
+
252
+ ## 5. 다음 단계
253
+
254
+ - [상세 가이드](./store-patterns-usage-guide.md) - Store 패턴별 상세 가이드
255
+ - [요구사항 분석 가이드](./requirements-analysis-guide.md) - 자연어 요구사항 분석 방법
256
+ - [실전 예제](./practical-examples.md) - 실제 프로젝트 예제
257
+ - [문제 해결](./troubleshooting.md) - 흔한 문제와 해결 방법
@@ -0,0 +1,364 @@
1
+ # 요구사항 분석 가이드
2
+
3
+ > 자연어 요구사항을 정확하게 분석하여 최적의 Store를 생성하는 방법을 안내합니다.
4
+
5
+ ## 목차
6
+
7
+ 1. [분석 원리](#1-분석-원리)
8
+ 2. [키워드 매칭](#2-키워드-매칭)
9
+ 3. [효과적인 요구사항 작성법](#3-효과적인-요구사항-작성법)
10
+ 4. [시나리오별 예제](#4-시나리오별-예제)
11
+ 5. [분석 결과 해석](#5-분석-결과-해석)
12
+
13
+ ---
14
+
15
+ ## 1. 분석 원리
16
+
17
+ MCP-AXBoot는 요구사항을 다음 단계로 분석합니다:
18
+
19
+ ```
20
+ 요구사항 입력
21
+
22
+ 키워드 추출 (리스트, 검색, 저장, 삭제 등)
23
+
24
+ Store 타입별 매칭 (12가지 타입)
25
+
26
+ 매칭 점수 계산
27
+
28
+ 최적 타입 추천
29
+ ```
30
+
31
+ ### 1.1 docs/patterns.json 활용
32
+
33
+ `analyze_requirements` 도구는 `docs/patterns.json`에 정의된 패턴을 기반으로 분석합니다:
34
+
35
+ - **MetaData 필드**: Store 타입별 필수/선택 필드
36
+ - **States 필드**: 상태 관리 필드
37
+ - **Actions 필드**: 액션 메서드
38
+ - **초기값 패턴**: 타입별 초기값
39
+
40
+ ---
41
+
42
+ ## 2. 키워드 매칭
43
+
44
+ ### 2.1 기본 키워드
45
+
46
+ | 키워드 | 대응 기능 | Store 타입 영향 |
47
+ |--------|----------|-----------------|
48
+ | 리스트, 목록, 조회 | LIST | 모든 타입 |
49
+ | 검색, 찾기, 서치 | SEARCH | 모든 타입 |
50
+ | 상세, 디테일 | DETAIL_PANEL | Type 3, 5 |
51
+ | 모달, 팝업, 다이얼로그 | MODAL | Type 8 |
52
+ | 저장, 수정, 등록, 추가 | SAVE | Type 3, 5, 6 |
53
+ | 삭제, 제거 | DELETE | Type 5, 9 |
54
+ | 엑셀, excel, 다운로드 | EXCEL_DOWNLOAD | Type 2, 7, 8, 10 |
55
+ | 체크, checkbox, 선택 | CHECKBOX | Type 4, 5, 9 |
56
+ | 트리, 카테고리, 계층 | TREE | Type 6 |
57
+ | 대시보드, dashboard, 요약 | DASHBOARD | Type 7 |
58
+ | 정렬, 재배열, 순서 | REORDER | Type 7 (원래 6) |
59
+
60
+ ### 2.2 조합 키워드
61
+
62
+ 키워드 조합에 따라 더 정확한 타입 추천:
63
+
64
+ | 조합 | 추천 타입 | 설명 |
65
+ |-----|----------|------|
66
+ | 리스트 + 저장 + 삭제 | Type 5 (CRUD) | 전체 기능 |
67
+ | 리스트 + 모달 + 저장 | Type 8 (Modal Based) | 모달 기반 작업 |
68
+ | 리스트 + 체크박스 + 삭제 | Type 9 (Status Change) | 다중 선택 후 일괄 처리 |
69
+ | 리스트 + 트리 | Type 6 (Tree) | 트리 구조 |
70
+ | 리스트 + 상세 + 저장 | Type 3 (List + Detail) | 조회 + 상세 편집 |
71
+ | 리스트 + 엑셀 | Type 2 (List + Excel) | 엑셀 다운로드 |
72
+
73
+ ---
74
+
75
+ ## 3. 효과적인 요구사항 작성법
76
+
77
+ ### 3.1 좋은 요구사항의 특징
78
+
79
+ 1. **구체적**: 원하는 기능을 명확히 설명
80
+ 2. **키워드 포함**: 위 표의 키워드 활용
81
+ 3. **UI 패턴 언급**: 마스터-디테일, 모달, 트리 등
82
+ 4. **데이터 구조 언급**: 단일 리스트, 다중 리스트, 대시보드 등
83
+
84
+ ### 3.2 요구사항 작성 템플릿
85
+
86
+ #### 템플릿 1: 기본형
87
+
88
+ ```
89
+ [데이터 이름] 목록을 보여주는 Store.
90
+ - 검색조건: [검색필드들]
91
+ - 필요한 기능: [기능들]
92
+ ```
93
+
94
+ #### 템플릿 2: UI 패턴 명시
95
+
96
+ ```
97
+ [UI 패턴] 형태의 [데이터 이름] Store.
98
+ - 왼쪽: [목록/트리]
99
+ - 오른쪽: [상세/폼]
100
+ - 기능: [기능들]
101
+ ```
102
+
103
+ #### 템플릿 3: 사용자 시나리오
104
+
105
+ ```
106
+ 사용자가 [작업]을 할 수 있는 [데이터 이름] Store.
107
+ 1. [단계1]
108
+ 2. [단계2]
109
+ 3. [단계3]
110
+ ```
111
+
112
+ ### 3.3 예시 비교
113
+
114
+ | ❌ 부족한 요구사항 | ✅ 좋은 요구사항 |
115
+ |------------------|----------------|
116
+ | 회원 목록 | 회원 목록을 보여주고 검색할 수 있는 Store |
117
+ | 상품 관리 | 상품 목록에서 체크박스로 다중 선택 후 일괄 삭제하는 Store |
118
+ | 카테고리 | 트리 형태의 카테고리 목록과 선택된 카테고리의 편집 폼 |
119
+
120
+ ---
121
+
122
+ ## 4. 시나리오별 예제
123
+
124
+ ### 시나리오 1: 단순 조회 페이지
125
+
126
+ **요구사항**:
127
+ ```
128
+ 부서 목록을 보여주는 페이지. 검색조건으로 부서명으로 검색할 수 있어야 함.
129
+ ```
130
+
131
+ **분석 결과**:
132
+ ```json
133
+ {
134
+ "extractedFeatures": ["LIST", "SEARCH"],
135
+ "recommendedType": {
136
+ "type": 1,
137
+ "name": "Basic List",
138
+ "confidence": 0.85
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### 시나리오 2: 마스터-디테일 + CRUD
144
+
145
+ **요구사항**:
146
+ ```
147
+ 회원 목록에서 회원을 선택하면 상세 정보가 표시되고,
148
+ 상세 정보에서 수정과 삭제가 가능한 Store. 모달로 처리.
149
+ ```
150
+
151
+ **분석 결과**:
152
+ ```json
153
+ {
154
+ "extractedFeatures": ["LIST", "DETAIL_PANEL", "MODAL", "SAVE", "DELETE"],
155
+ "recommendedType": {
156
+ "type": 8,
157
+ "name": "Modal Based",
158
+ "confidence": 0.92
159
+ }
160
+ }
161
+ ```
162
+
163
+ ### 시나리오 3: 트리 + 폼
164
+
165
+ **요구사항**:
166
+ ```
167
+ 상품 카테고리를 트리 형태로 표시하고,
168
+ 선택된 카테고리의 정보를 오른쪽 폼에서 편집할 수 있는 Store.
169
+ ```
170
+
171
+ **분석 결과**:
172
+ ```json
173
+ {
174
+ "extractedFeatures": ["LIST", "TREE", "DETAIL_PANEL", "SAVE"],
175
+ "recommendedType": {
176
+ "type": 6,
177
+ "name": "Tree + Form",
178
+ "confidence": 0.95
179
+ }
180
+ }
181
+ ```
182
+
183
+ ### 시나리오 4: 대시보드
184
+
185
+ **요구사항**:
186
+ ```
187
+ 회원 대시보드. 상단에 회원 통계 요약이 표시되고,
188
+ 하단에 탭으로 구분된 가입 회원 목록과 탈퇴 회원 목록이 표시됨.
189
+ 각 목록은 엑셀 다운로드 가능.
190
+ ```
191
+
192
+ **분석 결과**:
193
+ ```json
194
+ {
195
+ "extractedFeatures": ["LIST", "DASHBOARD", "EXCEL_DOWNLOAD"],
196
+ "recommendedType": {
197
+ "type": 7,
198
+ "name": "Dashboard",
199
+ "confidence": 0.98
200
+ }
201
+ }
202
+ ```
203
+
204
+ ### 시나리오 5: 체크박스 일괄 처리
205
+
206
+ **요구사항**:
207
+ ```
208
+ 상품 목록에서 체크박스로 여러 상품을 선택하고,
209
+ 선택된 상품들을 일괄적으로 전시/비전시 상태를 변경하는 Store.
210
+ ```
211
+
212
+ **분석 결과**:
213
+ ```json
214
+ {
215
+ "extractedFeatures": ["LIST", "CHECKBOX", "DELETE"],
216
+ "recommendedType": {
217
+ "type": 9,
218
+ "name": "Status Change",
219
+ "confidence": 0.90
220
+ }
221
+ }
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 5. 분석 결과 해석
227
+
228
+ ### 5.1 analyze_requirements 응답 구조
229
+
230
+ ```json
231
+ {
232
+ "success": true,
233
+ "requirements": "원본 요구사항",
234
+ "extractedFeatures": ["LIST", "SEARCH", "SAVE"],
235
+ "matchedTypes": [
236
+ {
237
+ "type": 3,
238
+ "name": "List + Detail/Form",
239
+ "description": "조회 + 상세보기/편집",
240
+ "matchScore": 0.92,
241
+ "matchedFeatures": ["LIST", "SEARCH", "SAVE"],
242
+ "missingFeatures": [],
243
+ "extraFeatures": ["DETAIL_PANEL"]
244
+ }
245
+ ],
246
+ "recommendedType": { /* ... */ },
247
+ "canUseExistingType": true
248
+ }
249
+ ```
250
+
251
+ ### 5.2 필드 설명
252
+
253
+ | 필드 | 설명 |
254
+ |-----|------|
255
+ | `extractedFeatures` | 요구사항에서 추출된 기능 키워드 |
256
+ | `matchedTypes` | 매칭된 모든 Store 타입 (점수순 정렬) |
257
+ | `matchScore` | 매칭 점수 (0~1, 높을수록 적합) |
258
+ | `matchedFeatures` | 타입과 일치하는 기능 |
259
+ | `missingFeatures` | 요구사항에는 있는데 타입에는 없는 기능 |
260
+ | `extraFeatures` | 타입에는 있는데 요구사항에는 없는 기능 |
261
+ | `canUseExistingType` | 기존 타입으로 충분한지 (0.8 이상이면 충분) |
262
+
263
+ ### 5.3 해석 예시
264
+
265
+ #### Case 1: 높은 매칭 점수 (0.8+)
266
+
267
+ ```json
268
+ {
269
+ "matchScore": 0.92,
270
+ "canUseExistingType": true
271
+ }
272
+ ```
273
+
274
+ → **해석**: 기존 타입을 그대로 사용해도 됨
275
+
276
+ #### Case 2: 낮은 매칭 점수 (0.5~0.7)
277
+
278
+ ```json
279
+ {
280
+ "matchScore": 0.65,
281
+ "missingFeatures": ["EXCEL_DOWNLOAD"],
282
+ "extraFeatures": ["MODAL"]
283
+ }
284
+ ```
285
+
286
+ → **해석**: 기존 타입에 일부 기능 추가/제거 필요
287
+ - 엑셀 다운로드 기능 추가
288
+ - 모달 기능 제거 또는 무시
289
+
290
+ #### Case 3: 매우 낮은 매칭 점수 (0.5 미만)
291
+
292
+ ```json
293
+ {
294
+ "matchScore": 0.42,
295
+ "missingFeatures": ["TREE", "DETAIL_PANEL"]
296
+ }
297
+ ```
298
+
299
+ → **해석**: 커스텀 Store 생성 권장
300
+ - `generate_multi_stores` 사용
301
+ - 또는 생성 후 직접 수정
302
+
303
+ ---
304
+
305
+ ## 6. 실전 팁
306
+
307
+ ### Tip 1: 단계적으로 요구사항 작성
308
+
309
+ 처음에는 단순하게 시작하고, 점차 구체화하세요:
310
+
311
+ ```
312
+ 1단계: "회원 목록 Store"
313
+ 2단계: "회원 목록에 검색 추가된 Store"
314
+ 3단계: "회원 목록에서 선택하여 상세 보고 수정/삭제하는 Store"
315
+ ```
316
+
317
+ ### Tip 2: UI 레이아웃 언급
318
+
319
+ UI 구조를 명시하면 더 정확한 추천:
320
+
321
+ ```
322
+ "왼쪽에 목록, 오른쪽에 상세 폼"
323
+ ```
324
+
325
+ ### Tip 3: 사용자 플로우 설명
326
+
327
+ 사용자가 수행하는 작업을 순서대로 설명:
328
+
329
+ ```
330
+ "사용자가 카테고리를 선택하고 → 선택된 카테고리의 하위 항목을 표시하고 → 항목을 더블클릭하여 편집"
331
+ ```
332
+
333
+ ### Tip 4: 기존 Store 참조
334
+
335
+ 이미 존재하는 유사한 Store를 언급:
336
+
337
+ ```
338
+ "useProductCategoryStore와 비슷하지만 검색 기능이 추가된 형태"
339
+ ```
340
+
341
+ ---
342
+
343
+ ## 7. Claude에서의 사용 예시
344
+
345
+ ### 예시 1: 요구사항 분석
346
+
347
+ ```
348
+ 다음 요구사항을 분석해줘:
349
+ "주문 목록을 보여주고, 체크박스로 여러 주문을 선택하여 일괄 배송처를 변경할 수 있는 Store"
350
+ ```
351
+
352
+ ### 예시 2: 분석 후 Store 생성
353
+
354
+ ```
355
+ 분석 결과를 바탕으로 Store를 생성해줘.
356
+ Repository: /path/to/OrderRepository.ts
357
+ 출력: /path/to/stores/useOrderStore.ts
358
+ ```
359
+
360
+ ### 예시 3: 요구사항으로 바로 생성
361
+
362
+ ```
363
+ "게시판 목록과 상세 보기, 그리고 엑셀 다운로드가 있는 Store"를 만들어줘.
364
+ ```