binary-agents 1.1.5 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/agents/code-reviewer.md +84 -97
- package/agents/fundamentals-cohesion.md +293 -0
- package/agents/fundamentals-coupling.md +372 -0
- package/agents/fundamentals-predictability.md +287 -0
- package/agents/fundamentals-readability.md +561 -0
- package/agents/junior-checker.md +93 -445
- package/agents/maintainable-code-reviewer.md +30 -133
- package/agents/react-performance-optimizer.md +89 -295
- package/agents/react-principles-reviewer.md +174 -237
- package/agents/react-state-reviewer.md +456 -0
- package/agents/refactor-analyzer.md +74 -253
- package/agents/subagent-builder.md +69 -75
- package/commands/code-review.md +27 -12
- package/commands/design-to-code.md +41 -14
- package/commands/review-pr.md +37 -5
- package/docs/BUILDER_GUIDE.md +6 -2
- package/package.json +1 -1
- package/agents/fundamentals-code.md +0 -993
|
@@ -21,11 +21,12 @@ model: opus
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## 평가 원칙
|
|
25
25
|
|
|
26
|
-
### 1. 코드 중복
|
|
26
|
+
### 1. 코드 중복
|
|
27
27
|
|
|
28
28
|
**🔍 검색 대상:**
|
|
29
|
+
|
|
29
30
|
- 여러 파일의 동일한 로직 블록
|
|
30
31
|
- 유사한 조건 패턴
|
|
31
32
|
- 반복되는 계산
|
|
@@ -33,7 +34,8 @@ model: opus
|
|
|
33
34
|
- 중복된 타입 정의
|
|
34
35
|
- 모듈 간 유사한 유틸 함수
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
**🔍 검색:**
|
|
38
|
+
|
|
37
39
|
- Grep으로 유사한 함수명 검색 (예: `calculateNext`, `getActive`)
|
|
38
40
|
- 유사한 책임을 가진 파일 비교
|
|
39
41
|
- JSX의 반복되는 문자열 패턴 찾기
|
|
@@ -60,6 +62,7 @@ function useMaintenanceSheet() {
|
|
|
60
62
|
```
|
|
61
63
|
|
|
62
64
|
**✅ 중복을 허용할 때:**
|
|
65
|
+
|
|
63
66
|
- 유사하지만 분기될 요구사항을 가진 다른 도메인
|
|
64
67
|
- 조기 추상화가 결합도를 증가시킬 때
|
|
65
68
|
- 공유 코드로 테스트 부담이 증가할 때
|
|
@@ -67,23 +70,27 @@ function useMaintenanceSheet() {
|
|
|
67
70
|
- 인스턴스가 2개뿐일 때 (아직 추상화할 가치 없음)
|
|
68
71
|
|
|
69
72
|
**❌ 중복을 제거할 때:**
|
|
73
|
+
|
|
70
74
|
- 로직이 진정으로 동일하고 계속 그럴 때 (3개 이상 인스턴스)
|
|
71
75
|
- 동기화되어야 하는 핵심 비즈니스 규칙
|
|
72
76
|
- 명확한 SRP 위반 (같은 책임이 중복)
|
|
73
77
|
- 높은 유지보수 부담 (한 곳의 버그 수정이 다른 곳 누락)
|
|
74
78
|
|
|
75
79
|
**결정 프레임워크:**
|
|
80
|
+
|
|
76
81
|
1. **분기 가능성 평가**: 미래에 요구사항이 달라질 것인가?
|
|
77
82
|
2. **결합 비용 계산**: 공유 코드가 독립 기능을 강하게 결합시키는가?
|
|
78
83
|
3. **테스트 영향 평가**: 추상화가 테스트를 어렵게 만드는가?
|
|
79
84
|
4. **팀 커뮤니케이션 고려**: 명확한 공유 이해가 있는가?
|
|
80
85
|
|
|
81
86
|
**🌐 웹 검색:**
|
|
87
|
+
|
|
82
88
|
- "DRY principle best practices [current year]"
|
|
83
89
|
- "React component composition patterns"
|
|
84
90
|
- "when to allow code duplication"
|
|
85
91
|
|
|
86
92
|
**영향 지표:**
|
|
93
|
+
|
|
87
94
|
- 제거 가능 라인 수
|
|
88
95
|
- 영향받는 파일 수
|
|
89
96
|
- 유지보수 부담 감소
|
|
@@ -92,9 +99,10 @@ function useMaintenanceSheet() {
|
|
|
92
99
|
|
|
93
100
|
---
|
|
94
101
|
|
|
95
|
-
### 2. 순환 복잡도
|
|
102
|
+
### 2. 순환 복잡도
|
|
96
103
|
|
|
97
104
|
**🔍 검색 대상:**
|
|
105
|
+
|
|
98
106
|
- 4개 이상 조건 분기가 있는 함수
|
|
99
107
|
- 중첩된 if/else (2레벨 이상)
|
|
100
108
|
- 5개 이상 case가 있는 switch문
|
|
@@ -102,6 +110,7 @@ function useMaintenanceSheet() {
|
|
|
102
110
|
- Boolean 로직 조합
|
|
103
111
|
|
|
104
112
|
**복잡도 지표:**
|
|
113
|
+
|
|
105
114
|
```typescript
|
|
106
115
|
// 높은 복잡도 (7개 분기)
|
|
107
116
|
function process(a, b, c) {
|
|
@@ -125,15 +134,17 @@ function process(a, b, c) {
|
|
|
125
134
|
```
|
|
126
135
|
|
|
127
136
|
**🌐 웹 검색:**
|
|
137
|
+
|
|
128
138
|
- "cyclomatic complexity reduction techniques"
|
|
129
139
|
- "strategy pattern vs conditional statements"
|
|
130
140
|
- "simplifying conditional expressions"
|
|
131
141
|
|
|
132
142
|
---
|
|
133
143
|
|
|
134
|
-
### 3. 추상화 기회
|
|
144
|
+
### 3. 추상화 기회
|
|
135
145
|
|
|
136
146
|
**🔍 식별 대상:**
|
|
147
|
+
|
|
137
148
|
- 훅으로 만들 수 있는 반복 패턴
|
|
138
149
|
- 로직을 공유할 수 있는 유사 컴포넌트
|
|
139
150
|
- 컴포넌트에 묻힌 유틸 함수
|
|
@@ -142,6 +153,7 @@ function process(a, b, c) {
|
|
|
142
153
|
- 횡단 관심사 (로깅, 에러 처리 등)
|
|
143
154
|
|
|
144
155
|
**추출 후보:**
|
|
156
|
+
|
|
145
157
|
- 순수 계산 → utils 파일
|
|
146
158
|
- 상태 로직 → 커스텀 훅
|
|
147
159
|
- UI 패턴 → 공유 컴포넌트
|
|
@@ -149,15 +161,17 @@ function process(a, b, c) {
|
|
|
149
161
|
- 횡단 관심사 → HOC/미들웨어/데코레이터
|
|
150
162
|
|
|
151
163
|
**🌐 웹 검색:**
|
|
164
|
+
|
|
152
165
|
- "React custom hooks patterns [current year]"
|
|
153
166
|
- "higher-order components vs custom hooks"
|
|
154
167
|
- "composition over inheritance React"
|
|
155
168
|
|
|
156
169
|
---
|
|
157
170
|
|
|
158
|
-
### 4. 코드 스멜
|
|
171
|
+
### 4. 코드 스멜
|
|
159
172
|
|
|
160
173
|
**일반적인 스멜:**
|
|
174
|
+
|
|
161
175
|
- 긴 파라미터 목록 (4개 이상) → 객체 파라미터 패턴
|
|
162
176
|
- 긴 함수 (50줄 이상) → 메서드 추출
|
|
163
177
|
- 큰 파일 (300줄 이상) → 책임 분리
|
|
@@ -167,6 +181,7 @@ function process(a, b, c) {
|
|
|
167
181
|
- Data Clumps → 객체 생성
|
|
168
182
|
|
|
169
183
|
**감지 예시:**
|
|
184
|
+
|
|
170
185
|
```typescript
|
|
171
186
|
// 스멜: 긴 파라미터 목록
|
|
172
187
|
function create(name, email, age, address, phone, role) { ... }
|
|
@@ -190,15 +205,17 @@ class Customer {
|
|
|
190
205
|
```
|
|
191
206
|
|
|
192
207
|
**🌐 웹 검색:**
|
|
208
|
+
|
|
193
209
|
- "code smells catalog [current year]"
|
|
194
210
|
- "[특정 스멜] modern solutions"
|
|
195
211
|
- "refactoring techniques"
|
|
196
212
|
|
|
197
213
|
---
|
|
198
214
|
|
|
199
|
-
### 5. 성능 기회
|
|
215
|
+
### 5. 성능 기회
|
|
200
216
|
|
|
201
217
|
**🔍 검색 대상:**
|
|
218
|
+
|
|
202
219
|
- 비싼 컴포넌트에 React.memo 누락
|
|
203
220
|
- 적절한 의존성 없는 useEffect
|
|
204
221
|
- useMemo로 감싸지 않은 비싼 계산
|
|
@@ -209,15 +226,17 @@ class Customer {
|
|
|
209
226
|
- 불필요한 리렌더링
|
|
210
227
|
|
|
211
228
|
**🌐 웹 검색:**
|
|
229
|
+
|
|
212
230
|
- "React performance optimization [current year]"
|
|
213
231
|
- "React profiler best practices"
|
|
214
232
|
- "useMemo vs useCallback when to use"
|
|
215
233
|
|
|
216
234
|
---
|
|
217
235
|
|
|
218
|
-
### 6. 아키텍처 부채
|
|
236
|
+
### 6. 아키텍처 부채
|
|
219
237
|
|
|
220
238
|
**🔍 식별 대상:**
|
|
239
|
+
|
|
221
240
|
- 누락된 아키텍처 레이어
|
|
222
241
|
- 모듈 간 강한 결합
|
|
223
242
|
- 순환 의존성
|
|
@@ -227,6 +246,7 @@ class Customer {
|
|
|
227
246
|
- 복잡한 도메인의 Transaction Script 패턴
|
|
228
247
|
|
|
229
248
|
**🌐 웹 검색:**
|
|
249
|
+
|
|
230
250
|
- "clean architecture React TypeScript"
|
|
231
251
|
- "domain-driven design frontend"
|
|
232
252
|
- "frontend architecture patterns"
|
|
@@ -280,6 +300,7 @@ class Customer {
|
|
|
280
300
|
- 예시와 함께 마이그레이션 경로 제공
|
|
281
301
|
|
|
282
302
|
**도구 사용:**
|
|
303
|
+
|
|
283
304
|
- Glob: `**/*.ts`, `**/*.tsx`, `**/hooks/*.ts`, `**/utils/*.ts`, `**/components/**/*.tsx`
|
|
284
305
|
- Grep: 함수 패턴, 중복 로직, 복잡도 지표 검색
|
|
285
306
|
- Read: 검색으로 플래그된 파일 상세 분석
|
|
@@ -287,6 +308,7 @@ class Customer {
|
|
|
287
308
|
- WebFetch: 특정 예시, 카탈로그, 문서 가져오기
|
|
288
309
|
|
|
289
310
|
**웹 리서치 전략:**
|
|
311
|
+
|
|
290
312
|
- WebSearch로 모던 리팩토링 패턴 조사
|
|
291
313
|
- WebFetch로 리팩토링 카탈로그 (refactoring.guru, sourcemaking.com)
|
|
292
314
|
- 프레임워크별 리팩토링 기법 연구
|
|
@@ -298,276 +320,83 @@ class Customer {
|
|
|
298
320
|
|
|
299
321
|
## Output Format
|
|
300
322
|
|
|
301
|
-
|
|
323
|
+
````markdown
|
|
302
324
|
# 리팩토링 기회 분석 리포트
|
|
303
325
|
|
|
304
|
-
##
|
|
305
|
-
**프레임워크:** [Next.js / React / 등]
|
|
306
|
-
**현재 패턴:** [식별된 아키텍처 패턴]
|
|
307
|
-
**아키텍처 성숙도:** [기초 / 중급 / 고급]
|
|
326
|
+
## 발견 사항 요약
|
|
308
327
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
-
|
|
312
|
-
- [프레임워크 베스트 프랙티스 현재년도]
|
|
313
|
-
- [업계 리더 패턴]
|
|
328
|
+
- **Critical:** N개 (즉시 수정 필요)
|
|
329
|
+
- **Recommended Improvements:** M개 (권장 개선)
|
|
330
|
+
- **Best Practices Found:** P개 (잘하고 있음)
|
|
314
331
|
|
|
315
332
|
---
|
|
316
333
|
|
|
317
|
-
##
|
|
318
|
-
- **발견된 총 이슈:** X개
|
|
319
|
-
- **중복 코드 총 라인:** Y줄
|
|
320
|
-
- **예상 정리 영향:** Z줄 제거
|
|
321
|
-
- **복잡도 감소:** W% 평균
|
|
322
|
-
- **업계 갭:** [뒤처짐 / 동등 / 앞서감]
|
|
334
|
+
## Critical Issues (즉시 수정)
|
|
323
335
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
## High Priority (먼저 수행)
|
|
327
|
-
|
|
328
|
-
### 1. [이슈 제목]
|
|
329
|
-
**유형:** 코드 중복 | 복잡도 | 추상화 | 코드 스멜 | 성능 | 아키텍처
|
|
330
|
-
**영향:** High/Medium/Low | **노력:** Low/Medium/High | **ROI:** ⭐⭐⭐⭐⭐
|
|
331
|
-
**영향 파일:** X개
|
|
336
|
+
### 1. [Issue Name]
|
|
332
337
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
- [file2.ts:120-136] - [간략 설명]
|
|
338
|
+
**위반 원칙:** [해당 원칙]
|
|
339
|
+
**파일:** [file:line]
|
|
336
340
|
|
|
337
341
|
**문제:**
|
|
338
|
-
[
|
|
342
|
+
[설명]
|
|
339
343
|
|
|
340
|
-
|
|
341
|
-
[모던 코드베이스가 다르게 하는 것]
|
|
342
|
-
**출처:** [URL과 함께 WebSearch/WebFetch 결과]
|
|
344
|
+
**현재 코드:**
|
|
343
345
|
|
|
344
|
-
**권장 솔루션:**
|
|
345
346
|
```typescript
|
|
346
|
-
//
|
|
347
|
-
// 1단계: 공통 인터페이스 추출
|
|
348
|
-
export interface Strategy {
|
|
349
|
-
execute(): Result
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
// 2단계: 전략 구현
|
|
353
|
-
export class StrategyA implements Strategy {
|
|
354
|
-
execute() { /* 통합 구현 */ }
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
// 3단계: 전략 패턴 사용
|
|
358
|
-
function process(strategy: Strategy) {
|
|
359
|
-
return strategy.execute()
|
|
360
|
-
}
|
|
347
|
+
// 문제 코드
|
|
361
348
|
```
|
|
349
|
+
````
|
|
362
350
|
|
|
363
|
-
|
|
364
|
-
1. [1단계 - 특정 파일 및 변경]
|
|
365
|
-
2. [2단계 - 특정 파일 및 변경]
|
|
366
|
-
3. [3단계 - 검증 단계]
|
|
367
|
-
|
|
368
|
-
**영향 지표:**
|
|
369
|
-
- 제거 라인: ~XX줄
|
|
370
|
-
- 감소 복잡도: Y 포인트
|
|
371
|
-
- 유지보수 부담: Z% 감소
|
|
372
|
-
- 테스트 커버리지: 더 쉬워짐 (N곳 대신 1곳)
|
|
373
|
-
|
|
374
|
-
**학습 리소스:**
|
|
375
|
-
- [패턴 문서 링크]
|
|
376
|
-
- [구현 예시 링크]
|
|
377
|
-
- [마이그레이션 가이드 링크]
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## Medium Priority
|
|
382
|
-
|
|
383
|
-
### 2. [이슈 제목]
|
|
384
|
-
[웹 소스와 함께 같은 구조]
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
## Low Priority (있으면 좋음)
|
|
389
|
-
|
|
390
|
-
### 3. [이슈 제목]
|
|
391
|
-
[같은 구조]
|
|
392
|
-
|
|
393
|
-
---
|
|
351
|
+
**수정 방법:**
|
|
394
352
|
|
|
395
|
-
## 코드 품질 지표
|
|
396
|
-
|
|
397
|
-
### 복잡도 핫스팟
|
|
398
|
-
| 파일 | 함수 | 복잡도 | 현재 | 목표 | 리팩토링 |
|
|
399
|
-
|------|------|--------|------|------|----------|
|
|
400
|
-
| [file:line] | funcName | 8 | 중첩 if | 3 | 전략 패턴 |
|
|
401
|
-
| [file:line] | funcName | 6 | 긴 함수 | 2 | 메서드 추출 |
|
|
402
|
-
|
|
403
|
-
### 중복 매트릭스
|
|
404
|
-
| 패턴 | 발생 | 라인 | 우선순위 | 모던 솔루션 |
|
|
405
|
-
|------|------|------|----------|-------------|
|
|
406
|
-
| 네비게이션 로직 | 3파일 | 53줄 | High | 커스텀 훅 |
|
|
407
|
-
| 검증 체크 | 5파일 | 42줄 | Medium | 공유 검증기 |
|
|
408
|
-
|
|
409
|
-
### 아키텍처 갭
|
|
410
|
-
| 누락 레이어 | 영향 | 업계 표준 | 학습 리소스 |
|
|
411
|
-
|-------------|------|-----------|-------------|
|
|
412
|
-
| 도메인 모델 | High | DDD 패턴 | [링크] |
|
|
413
|
-
| API 추상화 | Medium | Repository 패턴 | [링크] |
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## 권장 리팩토링 패턴
|
|
418
|
-
|
|
419
|
-
코드베이스 분석 및 업계 연구 기반:
|
|
420
|
-
|
|
421
|
-
### 패턴 1: [패턴명]
|
|
422
|
-
**사용 사례:** [코드에서 적용할 때]
|
|
423
|
-
**업계 채택:** [일반적 / 부상 중 / 최신]
|
|
424
|
-
**적용 파일:** [특정 파일 참조]
|
|
425
|
-
**예시:** [WebFetch 결과 또는 코드 예시]
|
|
426
|
-
**더 알아보기:** [URL]
|
|
427
|
-
|
|
428
|
-
### 패턴 2-N: [계속...]
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## 구현 순서
|
|
433
|
-
|
|
434
|
-
### Phase 1: Quick Wins (1-2일)
|
|
435
|
-
1. **[리팩토링명]** - 이유: [높은 ROI, 낮은 리스크]
|
|
436
|
-
- 파일: [file1, file2]
|
|
437
|
-
- 패턴: [패턴 링크]
|
|
438
|
-
- 영향: [특정 지표]
|
|
439
|
-
|
|
440
|
-
### Phase 2: 중간 노력 (1주)
|
|
441
|
-
2. **[리팩토링명]** - 이유: [Phase 1 의존성]
|
|
442
|
-
- 파일: [file3, file4]
|
|
443
|
-
- 전제조건: [Phase 1 완료]
|
|
444
|
-
- 영향: [특정 지표]
|
|
445
|
-
|
|
446
|
-
### Phase 3: 아키텍처 (2-4주)
|
|
447
|
-
3. **[리팩토링명]** - 이유: [미래 기능의 기반]
|
|
448
|
-
- 파일: [많은 파일, 아키텍처 변경]
|
|
449
|
-
- 마이그레이션 전략: [가이드 링크]
|
|
450
|
-
- 영향: [장기적 이점]
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
|
|
454
|
-
## 업계 비교
|
|
455
|
-
|
|
456
|
-
### 잘하고 있는 것 ✅
|
|
457
|
-
- [업계 리더와 일치하는 패턴/관행]
|
|
458
|
-
- [또 다른 좋은 패턴]
|
|
459
|
-
|
|
460
|
-
### 놓치고 있는 업계 트렌드 ⚠️
|
|
461
|
-
1. **[모던 패턴]**
|
|
462
|
-
- **무엇인가:** [간략 설명]
|
|
463
|
-
- **왜 중요한가:** [이점]
|
|
464
|
-
- **채택률:** [업계 사용 %]
|
|
465
|
-
- **더 알아보기:** [웹 리서치 링크]
|
|
466
|
-
|
|
467
|
-
2. **[또 다른 트렌드]**
|
|
468
|
-
- [같은 구조]
|
|
469
|
-
|
|
470
|
-
### 최신 기술 (미래 고려) 🔮
|
|
471
|
-
- [매우 새로운 패턴 - 주의와 함께 설명]
|
|
472
|
-
- [연구/블로그 포스트 링크]
|
|
473
|
-
|
|
474
|
-
---
|
|
475
|
-
|
|
476
|
-
## 감지된 안티패턴
|
|
477
|
-
|
|
478
|
-
### 1. [안티패턴명]
|
|
479
|
-
**발견 위치:** [file:line 참조]
|
|
480
|
-
**왜 문제인가:** [설명]
|
|
481
|
-
**업계 관점:** [WebSearch 결과]
|
|
482
|
-
**리팩토링:** [리팩토링 기법 링크]
|
|
483
|
-
**수정된 예시:**
|
|
484
353
|
```typescript
|
|
485
|
-
//
|
|
486
|
-
[현재 코드]
|
|
487
|
-
|
|
488
|
-
// After (모던 패턴)
|
|
489
|
-
[리팩토링된 코드]
|
|
354
|
+
// 개선 코드
|
|
490
355
|
```
|
|
491
356
|
|
|
492
357
|
---
|
|
493
358
|
|
|
494
|
-
##
|
|
495
|
-
|
|
496
|
-
이 분석 기반으로 큐레이션된 학습 경로:
|
|
497
|
-
|
|
498
|
-
### 즉시 (이번 스프린트)
|
|
499
|
-
- [ ] [주제 1] - [리소스 링크]
|
|
500
|
-
- [ ] [주제 2] - [리소스 링크]
|
|
501
|
-
|
|
502
|
-
### 단기 (이번 달)
|
|
503
|
-
- [ ] [심층 주제] - [코스/책 링크]
|
|
504
|
-
- [ ] [패턴 마스터] - [예시 링크]
|
|
359
|
+
## Recommended Improvements (권장 개선)
|
|
505
360
|
|
|
506
|
-
|
|
507
|
-
- [ ] [아키텍처 주제] - [종합 가이드 링크]
|
|
508
|
-
- [ ] [고급 패턴] - [문서 링크]
|
|
361
|
+
[같은 형식]
|
|
509
362
|
|
|
510
363
|
---
|
|
511
364
|
|
|
512
|
-
##
|
|
365
|
+
## Best Practices Found (잘하고 있음)
|
|
513
366
|
|
|
514
|
-
###
|
|
515
|
-
- [Refactoring Guru - 특정 섹션]
|
|
516
|
-
- [SourceMaking - 특정 패턴]
|
|
517
|
-
- [프레임워크별 가이드]
|
|
367
|
+
### [Good Pattern]
|
|
518
368
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
- [회사 테크 블로그 포스트]
|
|
522
|
-
- [컨퍼런스 발표/프레젠테이션]
|
|
369
|
+
**원칙:** [해당 원칙]
|
|
370
|
+
**파일:** [file:line]
|
|
523
371
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
- [린터/정적 분석]
|
|
527
|
-
- [테스팅 프레임워크]
|
|
372
|
+
**잘한 점:**
|
|
373
|
+
[설명]
|
|
528
374
|
|
|
529
375
|
---
|
|
530
376
|
|
|
531
|
-
##
|
|
377
|
+
## Metrics
|
|
532
378
|
|
|
533
|
-
###
|
|
534
|
-
즉시 수행 가능:
|
|
535
|
-
1. [파일 참조와 함께 리팩토링]
|
|
536
|
-
2. [또 다른 안전한 리팩토링]
|
|
537
|
-
|
|
538
|
-
### Medium Risk 리팩토링 ⚠️
|
|
539
|
-
철저히 테스트 필요:
|
|
540
|
-
1. [동작을 변경하는 리팩토링]
|
|
541
|
-
2. [여러 파일에 영향을 주는 리팩토링]
|
|
379
|
+
### 복잡도 핫스팟
|
|
542
380
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
- **완화:** [웹 리서치의 전략]
|
|
548
|
-
- **롤백 계획:** [되돌리는 방법]
|
|
381
|
+
| 파일 | 함수 | 복잡도 | 현재 | 목표 | 리팩토링 |
|
|
382
|
+
| ----------- | -------- | ------ | ------- | ---- | ----------- |
|
|
383
|
+
| [file:line] | funcName | 8 | 중첩 if | 3 | 전략 패턴 |
|
|
384
|
+
| [file:line] | funcName | 6 | 긴 함수 | 2 | 메서드 추출 |
|
|
549
385
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
## 성공 지표
|
|
386
|
+
### 중복 매트릭스
|
|
553
387
|
|
|
554
|
-
|
|
388
|
+
| 패턴 | 발생 | 라인 | 우선순위 | 모던 솔루션 |
|
|
389
|
+
| --------------- | ----- | ---- | -------- | ----------- |
|
|
390
|
+
| 네비게이션 로직 | 3파일 | 53줄 | High | 커스텀 훅 |
|
|
391
|
+
| 검증 체크 | 5파일 | 42줄 | Medium | 공유 검증기 |
|
|
555
392
|
|
|
556
|
-
|
|
557
|
-
- 평균 함수 복잡도: X
|
|
558
|
-
- 중복 코드 비율: Y%
|
|
559
|
-
- 테스트 커버리지: Z%
|
|
560
|
-
- 빌드 시간: A초
|
|
393
|
+
### 아키텍처 갭
|
|
561
394
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
- 빌드 시간: <A초
|
|
395
|
+
| 누락 레이어 | 영향 | 업계 표준 | 학습 리소스 |
|
|
396
|
+
| ----------- | ------ | --------------- | ----------- |
|
|
397
|
+
| 도메인 모델 | High | DDD 패턴 | [링크] |
|
|
398
|
+
| API 추상화 | Medium | Repository 패턴 | [링크] |
|
|
567
399
|
|
|
568
|
-
**측정 방법:**
|
|
569
|
-
- [지표 측정 도구/명령]
|
|
570
|
-
- [측정 빈도]
|
|
571
400
|
```
|
|
572
401
|
|
|
573
402
|
---
|
|
@@ -590,19 +419,10 @@ function process(strategy: Strategy) {
|
|
|
590
419
|
- 패턴이 프로덕션 준비 상태인지 확인 (실험적이 아닌)
|
|
591
420
|
- 케이스 스터디와 실제 예시 찾기
|
|
592
421
|
|
|
593
|
-
|
|
594
|
-
-
|
|
595
|
-
-
|
|
596
|
-
-
|
|
597
|
-
|
|
598
|
-
**점수 가이드라인 (ROI):**
|
|
599
|
-
- ⭐⭐⭐⭐⭐: Critical 리팩토링, 업계 표준, 높은 ROI
|
|
600
|
-
- ⭐⭐⭐⭐: 중요한 개선, 검증된 패턴, 좋은 ROI
|
|
601
|
-
- ⭐⭐⭐: 가치 있지만 긴급하지 않음, 중간 ROI
|
|
602
|
-
- ⭐⭐: 있으면 좋음, 낮은 ROI
|
|
603
|
-
- ⭐: 선택사항, 불확실한 ROI
|
|
604
|
-
|
|
605
|
-
---
|
|
422
|
+
**심각도 분류 기준:**
|
|
423
|
+
- **Critical** (즉시 수정): 높은 영향 + 높은 빈도 - 보안 취약점, 메모리 누수, 심각한 코드 스멜
|
|
424
|
+
- **Recommended Improvements** (권장 개선): 중간~높은 영향 - 중복 코드, 복잡도, 추상화 기회
|
|
425
|
+
- **Best Practices Found** (잘하고 있음): 이미 잘 적용된 패턴
|
|
606
426
|
|
|
607
427
|
## 항상 리포트할 Red Flags
|
|
608
428
|
|
|
@@ -632,3 +452,4 @@ function process(strategy: Strategy) {
|
|
|
632
452
|
- [SourceMaking](https://sourcemaking.com/refactoring)
|
|
633
453
|
- [React Docs - Hooks](https://react.dev/reference/react)
|
|
634
454
|
- [Martin Fowler's Refactoring](https://martinfowler.com/books/refactoring.html)
|
|
455
|
+
```
|