@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
package/README.md ADDED
@@ -0,0 +1,168 @@
1
+ # mcp-axboot
2
+
3
+ Axboot 프로젝트를 위한 MCP 서버 - Zustand Store 파일 자동 생성 및 다른 기능 확장
4
+
5
+ ## 기능
6
+
7
+ ### 현재 지원 기능
8
+
9
+ 1. **`analyze_interface`** - 인터페이스 Repository 파일 분석
10
+ 2. **`generate_store`** - 분석된 인터페이스 기반으로 Store 파일 생성 (타입 직접 지정)
11
+ 3. **`list_templates`** - 사용 가능한 Store 템플릿 목록 조회
12
+ 4. **`analyze_requirements`** - 자연어 요구사항 분석 및 적합한 타입 추천
13
+ 5. **`generate_store_from_requirements`** - 요구사항 기반 Store 자동 생성 (타입 자동 선택)
14
+
15
+ ### 요구사항 기반 자동 생성
16
+
17
+ 사용자가 요구사항을 자연어로 설명하면 MCP가 자동으로 가장 적합한 Store 타입을 선택하고 생성합니다:
18
+
19
+ **예시:**
20
+ - "리스트 조회하고 선택하면 상세 보이고 저장도 해줘" → Type 1 자동 선택
21
+ - "왼쪽에 리스트, 오른쪽에 상세, 모달로 등록하고 삭제도 하고 싶어" → Type 2 자동 선택
22
+ - "카테고리 트리 구조로 보여주고 저장할 수 있게 해줘" → Type 3 자동 선택
23
+
24
+ ### Store 타입 (10가지)
25
+
26
+ | 타입 | 이름 | 설명 | 사용 사례 |
27
+ |------|------|------|-----------|
28
+ | 1 | 기본 리스트 + 상세 | 선택된 아이템의 상세 정보 표시, 저장/수정 지원 | 회원 목록, 상품 목록, 쿠폰 목록 |
29
+ | 2 | 마스터-디테일 + 모달 + 삭제 | 왼쪽 리스트, 오른쪽 상세, 모달, 삭제 기능 (B2B 패턴) | B2B 상품, 견적 상담, 구독 관리 |
30
+ | 3 | 트리 기반 | 트리 구조 데이터, 펼치기/접기, 저장 지원 | 카테고리 관리, 메뉴 관리, 조직도 |
31
+ | 4 | 대시보드 | 여러 개의 리스트와 요약 정보, 탭 전환 | 회원 대시보드, 주문 대시보드, 매출 대시보드 |
32
+ | 5 | 단순 리스트 | 최소한의 기능만 있는 단순 리스트 | 참조 데이터 조회, 드롭다운 목록 |
33
+ | 6 | 재정렬 가능 리스트 | 드래그 앤 드롭으로 순서 변경 가능 | 팝업 메뉴, 배너 순서, 메뉴 순서 |
34
+ | 7 | 마스터-디테일 + 모달 + 삭제 + 엑셀 | 왼쪽 리스트, 오른쪽 상세, 모달, 삭제, 엑셀 다운로드 | B2B 견적 상담, 상담 관리, 주문 관리 |
35
+ | 8 | 리스트 + 선택 + 엑셀 다운로드 | 선택 아이템, 체크박스, 엑셀 다운로드 (상세 없음) | 주문 전체 조회, 결제 조회, 배송 조회 |
36
+ | 9 | 마스터-디테일 + 모달 + 상세조회 API | 왼쪽 리스트, 오른쪽 상세, 모달, 상세 조회 API 호출 | 직배송 구독, 상담 내역, 주문 상세 |
37
+ | 10 | 마스터-디테일 + 엑셀 다운로드 | 선택된 행 표시, 엑셀 다운로드 (상세/모달 없음) | 상품 그룹 마스터, 분류 관리, 카테고리 마스터 |
38
+
39
+ ## 설치
40
+
41
+ ```bash
42
+ cd /Users/kyle/Desktop/mcp-axboot
43
+ npm install
44
+ ```
45
+
46
+ ## 빌드
47
+
48
+ ```bash
49
+ npm run build
50
+ ```
51
+
52
+ ## Claude Desktop 설정
53
+
54
+ `~/Library/Application Support/Claude/claude_desktop_config.json`에 추가:
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "mcp-axboot": {
60
+ "command": "node",
61
+ "args": ["/Users/kyle/Desktop/mcp-axboot/dist/index.js"]
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ## 사용 방법
68
+
69
+ ### Claude 대화에서 직접 사용
70
+
71
+ ```
72
+ # 타입을 지정해서 생성
73
+ 사용자: MemberRepository 분석해서 Type 2 스타일로 Store 생성해줘
74
+
75
+ # 요구사항만 설명해서 자동 생성 (추천)
76
+ 사용자: MemberRepository 기반으로 리스트 조회하고 선택하면 상세 보이고 저장도 되는 Store 만들어줘
77
+ Claude: 요구사항을 분석하니 Type 1 (기본 리스트 + 상세)이 적합합니다. Store를 생성합니다...
78
+ ```
79
+
80
+ ### MCP 도구 직접 호출
81
+
82
+ ```typescript
83
+ // 1. 인터페이스 분석
84
+ analyze_interface({
85
+ interfacePath: "/path/to/MemberRepository.ts"
86
+ })
87
+
88
+ // 2. Store 생성 (타입 직접 지정)
89
+ generate_store({
90
+ interfacePath: "/path/to/MemberRepository.ts",
91
+ outputPath: "/path/to/useMemberStore.ts",
92
+ storeType: 1,
93
+ storeName: "useMemberStore"
94
+ })
95
+
96
+ // 3. 요구사항 분석
97
+ analyze_requirements({
98
+ requirements: "리스트 조회하고 선택하면 상세 보이고 저장도 해줘"
99
+ })
100
+
101
+ // 4. 요구사항 기반 Store 생성 (타입 자동 선택) ⭐ 추천
102
+ generate_store_from_requirements({
103
+ interfacePath: "/path/to/MemberRepository.ts",
104
+ outputPath: "/path/to/useMemberStore.ts",
105
+ requirements: "리스트 조회하고 선택하면 상세 보이고 저장도 해줘",
106
+ storeName: "useMemberStore"
107
+ })
108
+
109
+ // 5. 템플릿 목록 조회
110
+ list_templates()
111
+ ```
112
+
113
+ ### 요구사항 분석 키워드
114
+
115
+ | 키워드 | 해당 피처 | 예시 |
116
+ |--------|-----------|------|
117
+ | 리스트, 목록, 조회 | LIST | "회원 목록 조회" |
118
+ | 검색, 찾기 | SEARCH | "이름으로 검색" |
119
+ | 상세, 디테일 | DETAIL_PANEL | "상세 정보 표시" |
120
+ | 모달, 팝업 | MODAL | "모달로 등록" |
121
+ | 저장, 수정, 등록 | SAVE | "정보 저장" |
122
+ | 삭제 | DELETE | "선택 삭제" |
123
+ | 엑셀, excel | EXCEL_DOWNLOAD | "엑셀 다운로드" |
124
+ | 체크, checkbox | CHECKBOX | "체크박스로 다중 선택" |
125
+ | 트리, 카테고리 | TREE | "트리 구조" |
126
+
127
+ ## 프로젝트 구조
128
+
129
+ ```
130
+ mcp-axboot/
131
+ ├── src/
132
+ │ ├── index.ts # MCP 서버 진입점
133
+ │ ├── handlers/
134
+ │ │ ├── analyze.ts # 인터페이스 분석
135
+ │ │ ├── generate.ts # Store 생성 (타입 직접 지정)
136
+ │ │ ├── list-templates.ts # 템플릿 목록
137
+ │ │ ├── analyze-requirements.ts # 요구사항 분석 ⭐
138
+ │ │ └── generate-from-requirements.ts # 요구사항 기반 생성 ⭐
139
+ │ ├── features/
140
+ │ │ └── store-features.ts # 피처/태그 정의 ⭐
141
+ │ └── templates/
142
+ │ ├── index.ts # 템플릿 라우터
143
+ │ ├── type1.ts # Type 1 템플릿 (기본 리스트 + 상세)
144
+ │ ├── type2.ts # Type 2 템플릿 (마스터-디테일 + 모달 + 삭제)
145
+ │ ├── type3.ts # Type 3 템플릿 (트리 기반)
146
+ │ ├── type4.ts # Type 4 템플릿 (대시보드)
147
+ │ ├── type6.ts # Type 5 템플릿 (단순 리스트)
148
+ │ ├── type7.ts # Type 6 템플릿 (재정렬 가능 리스트)
149
+ │ ├── type8.ts # Type 7 템플릿 (마스터-디테일 + 모달 + 삭제 + 엑셀)
150
+ │ ├── type9.ts # Type 8 템플릿 (리스트 + 선택 + 엑셀 다운로드)
151
+ │ ├── type10.ts # Type 9 템플릿 (마스터-디테일 + 모달 + 상세조회 API)
152
+ │ └── type11.ts # Type 10 템플릿 (마스터-디테일 + 엑셀 다운로드)
153
+ ├── package.json
154
+ ├── tsconfig.json
155
+ └── README.md
156
+ ```
157
+
158
+ ## 향후 확장 가능 기능
159
+
160
+ - [ ] Component 생성
161
+ - [ ] Interface 파일 생성
162
+ - [ ] Service 파일 생성
163
+ - [ ] DTO 파일 생성
164
+ - [ ] 전체 모듈 스캐딩 (CRUD 페이지 생성)
165
+
166
+ ## 라이선스
167
+
168
+ MIT
@@ -0,0 +1,250 @@
1
+ # Repository 생성 규칙 (Repository Conventions)
2
+
3
+ 완벽한 Store 파일 자동 생성을 위해 Repository 파일이 따라야 할 규칙입니다.
4
+
5
+ ## 1. 기본 구조
6
+
7
+ ### 1.1 클래스 이름
8
+
9
+ ```typescript
10
+ // ✅ 올바른 예
11
+ export class OrderRepository extends APIRepository implements OrderInterface { }
12
+ export class MemberRepository extends APIRepository implements MemberInterface { }
13
+
14
+ // ❌ 피해야 할 예
15
+ export class OrderRepo extends APIRepository { } // 'Repository' 접미사 필수
16
+ export class OrderRepository implements OrderInterface { } // APIRepository 상속 필수
17
+ ```
18
+
19
+ **규칙:**
20
+ - 클래스 이름은 `{엔티티명}Repository` 형식
21
+ - `APIRepository`를 상속받아야 함
22
+ - 해당 인터페이스를 구현해야 함
23
+
24
+ ### 1.2 Service 등록
25
+
26
+ `src/services/index.ts`에 다음과 같이 등록해야 합니다:
27
+
28
+ ```typescript
29
+ // ✅ 올바른 예
30
+ export const OrderService = new OrderRepository(apiWrapper);
31
+ export const MemberService = new MemberRepository(apiWrapper);
32
+
33
+ // ❌ 피해야 할 예
34
+ export const OrderSerevice = new OrderRepository(apiWrapper); // 오타 주의
35
+ // Service가 등록되지 않음
36
+ ```
37
+
38
+ **규칙:**
39
+ - Service 이름은 `{엔티티명}Service` 형식 (Repository → Service 변환)
40
+ - 오타 주의 (예: `Serevice`, `Servcie` 등)
41
+
42
+ ## 2. 메서드 정의
43
+
44
+ ### 2.1 메서드 주석
45
+
46
+ ```typescript
47
+ /* 배너 목록 */
48
+ async postBannerListBanner(params: PostBannerListBannerRequest, config?: ApiRequestConfig) {
49
+ // ...
50
+ }
51
+
52
+ /* 배너 상세 */
53
+ async postBannerDtlInfoBanner(params: PostBannerDtlInfoBannerRequest, config?: ApiRequestConfig) {
54
+ // ...
55
+ }
56
+
57
+ /* 배너 삭제 */
58
+ async postBannerDeleteBanner(params: PostBannerDeleteBannerRequest, config?: ApiRequestConfig) {
59
+ // ...
60
+ }
61
+ ```
62
+
63
+ **규칙:**
64
+ - 메서드 바로 앞에 `/* 주석 */` 형태로 주석 작성
65
+ - 주석과 메서드 사이에 다른 코드가 있으면 안 됨
66
+ - 주석 내용은 간결하고 명확하게
67
+
68
+ ### 2.2 메서드 이름 규칙
69
+
70
+ ```typescript
71
+ // ✅ 올바른 예
72
+ async postOrderListOrder(params: PostOrderListOrderRequest, config?: ApiRequestConfig)
73
+ async postOrderDetailOrder(params: PostOrderDetailOrderRequest, config?: ApiRequestConfig)
74
+ async postOrderSaveOrder(params: PostOrderSaveOrderRequest, config?: ApiRequestConfig)
75
+ async postOrderDeleteOrder(params: PostOrderDeleteOrderRequest, config?: ApiRequestConfig)
76
+ async postOrderListOrderExcel(params: PostOrderListOrderExcelRequest, config?: ApiRequestConfig)
77
+
78
+ // ❌ 피해야 할 예
79
+ async getOrderList(params: GetOrderListRequest) // get 사용하지 않기
80
+ async postOrderListOrderExcelDownload(params: ...) // Excel만 사용
81
+ ```
82
+
83
+ **규칙:**
84
+ - 모든 메서드는 `post`로 시작 (API 메서드 통일)
85
+ - 네이밍 패턴: `post{엔티티}{기능}{엔티티}`
86
+
87
+ | 기능 | 접미사 | 예시 |
88
+ |------|--------|------|
89
+ | 목록 조회 | `List{Entity}` | `postOrderListOrder` |
90
+ | 상세 조회 | `Detail{Entity}` | `postOrderDetailOrder` |
91
+ | 저장/수정 | `Save{Entity}` | `postOrderSaveOrder` |
92
+ | 삭제 | `Delete{Entity}` | `postOrderDeleteOrder` |
93
+ | 엑셀 다운로드 | `List{Entity}Excel` | `postOrderListOrderExcel` |
94
+
95
+ ### 2.3 파라미터와 반환 타입
96
+
97
+ ```typescript
98
+ // ✅ 올바른 예
99
+ async postOrderListOrder(
100
+ params: PostOrderListOrderRequest, // Request 타입
101
+ config?: ApiRequestConfig // 선택적 설정
102
+ ) {
103
+ const { data } = await this._apiWrapper<PostOrderListOrderResponse>(
104
+ "post",
105
+ `/so/bo/or/order/order/v1/listOrder`,
106
+ params,
107
+ config
108
+ );
109
+ return data;
110
+ }
111
+
112
+ // ❌ 피해야 할 예
113
+ async postOrderListOrder(params: any) // 타입 명시 필수
114
+ async postOrderListOrder(params: PostOrderListOrderRequest[], config?: ApiRequestConfig) // 배열 타입은 Store 생성에 사용되지 않음
115
+ ```
116
+
117
+ **규칙:**
118
+ - 첫 번째 파라미터는 `*Request` 타입
119
+ - 두 번째 파라미터는 `config?: ApiRequestConfig` (선택)
120
+ - `_apiWrapper`의 제네릭은 `*Response` 타입
121
+ - 배열 타입(`[]`)은 피할 것 (Store 자동 생성 시 제외됨)
122
+
123
+ ## 3. Response 구조
124
+
125
+ ### 3.1 표준 Response 구조
126
+
127
+ ```typescript
128
+ interface PostOrderListOrderResponse {
129
+ ds: OrderRes[]; // 데이터 목록
130
+ page: { // 페이지 정보
131
+ pageNumber: number;
132
+ pageSize: number;
133
+ pageCount: number;
134
+ totalCount?: number;
135
+ };
136
+ }
137
+ ```
138
+
139
+ **규칙:**
140
+ - `ds`: 데이터 배열
141
+ - `page`: 페이지 정보 객체
142
+ - 이 구조를 따르면 자동 생성된 Store가 정상 작동
143
+
144
+ ### 3.2 단일 항목 Response
145
+
146
+ ```typescript
147
+ interface PostOrderDetailOrderResponse {
148
+ // 단일 객체 구조
149
+ orderNo: string;
150
+ orderStatus: string;
151
+ // ...
152
+ }
153
+ ```
154
+
155
+ **규칙:**
156
+ - Detail/Info 메서드는 단일 객체 반환
157
+ - DTO 타입으로 사용됨
158
+
159
+ ## 4. 타입 정의
160
+
161
+ ### 4.1 Request/Response 타입
162
+
163
+ ```typescript
164
+ // ✅ 올바른 예
165
+ interface PostOrderListOrderRequest {
166
+ pageNumber: number;
167
+ pageSize: number;
168
+ orderStatus?: string;
169
+ }
170
+
171
+ interface PostOrderListOrderResponse {
172
+ ds: OrderRes[];
173
+ page: PageInfo;
174
+ }
175
+
176
+ interface OrderRes {
177
+ orderNo: string;
178
+ orderStatus: string;
179
+ // ...
180
+ }
181
+ ```
182
+
183
+ **규칙:**
184
+ - Request: `Post{엔티티}{기능}{엔티티}Request` 형식
185
+ - Response: `Post{엔티티}{기능}{엔티티}Response` 형식
186
+ - DTO: `{엔티티}Res` 형식 (또는 Response 자체)
187
+
188
+ ## 5. 일반적인 주의사항
189
+
190
+ ### 5.1 오타 방지
191
+
192
+ ```typescript
193
+ // ❌ 오타 예시
194
+ export const BannerSerevice = new BannerRepository(apiWrapper); // Serevice → Service
195
+ export const MemeberService = new MemberRepository(apiWrapper); // Memeber → Member
196
+ ```
197
+
198
+ ### 5.2 일관성
199
+
200
+ - 한 프로젝트 내에서 일관된 네이밍 사용
201
+ - 같은 기능은 같은 접미사 사용
202
+ - 주석 스타일 통일
203
+
204
+ ### 5.3 Export 확인
205
+
206
+ 모든 Repository와 Service가 `src/services/index.ts`에 export되어 있는지 확인:
207
+
208
+ ```typescript
209
+ export { OrderRepository } from "./@interface/repository/OrderRepository";
210
+ export const OrderService = new OrderRepository(apiWrapper);
211
+ ```
212
+
213
+ ## 6. 문제 해결 가이드
214
+
215
+ ### 6.1 Service를 찾을 수 없음
216
+
217
+ ```
218
+ error TS2304: Cannot find name 'OrderService'
219
+ ```
220
+
221
+ **해결:** `src/services/index.ts`에 Service가 등록되어 있는지 확인
222
+
223
+ ### 6.2 pageNumber가 Request에 없음
224
+
225
+ ```
226
+ error TS2353: Object literal may only specify known properties, and 'pageNumber' does not exist
227
+ ```
228
+
229
+ **해결:** Request 타입에 `pageNumber`, `pageSize`가 포함되어 있는지 확인
230
+
231
+ ### 6.3 ds/page가 Response에 없음
232
+
233
+ ```
234
+ error TS2339: Property 'ds' does not exist on type 'PostXxxResponse'
235
+ ```
236
+
237
+ **해결:** Response 구조가 표준(`ds`, `page`)을 따르는지 확인
238
+
239
+ ## 7. 체크리스트
240
+
241
+ Repository 생성 후 다음을 확인하세요:
242
+
243
+ - [ ] 클래스 이름이 `{Entity}Repository` 형식인가?
244
+ - [ ] `APIRepository`를 상속받는가?
245
+ - [ ] 모든 메서드에 주석이 있는가?
246
+ - [ ] 메서드 이름이 `post{Entity}{Action}{Entity}` 형식인가?
247
+ - [ ] Request 타입에 `pageNumber`, `pageSize`가 있는가? (목록 조회의 경우)
248
+ - [ ] Response에 `ds`, `page`가 있는가? (목록 조회의 경우)
249
+ - [ ] `src/services/index.ts`에 Service가 등록되어 있는가?
250
+ - [ ] Service 이름에 오타가 없는가?