@kood/claude-code 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -1
- package/package.json +1 -1
- package/templates/.claude/agents/analyst.md +5 -0
- package/templates/.claude/agents/architect.md +5 -0
- package/templates/.claude/agents/build-fixer.md +1 -0
- package/templates/.claude/agents/code-reviewer.md +1 -0
- package/templates/.claude/agents/critic.md +4 -0
- package/templates/.claude/agents/deep-executor.md +1 -0
- package/templates/.claude/agents/dependency-manager.md +2 -0
- package/templates/.claude/agents/deployment-validator.md +2 -0
- package/templates/.claude/agents/designer.md +2 -0
- package/templates/.claude/agents/document-writer.md +3 -0
- package/templates/.claude/agents/explore.md +1 -0
- package/templates/.claude/agents/git-operator.md +2 -0
- package/templates/.claude/agents/implementation-executor.md +2 -0
- package/templates/.claude/agents/ko-to-en-translator.md +3 -0
- package/templates/.claude/agents/lint-fixer.md +2 -0
- package/templates/.claude/agents/planner.md +3 -0
- package/templates/.claude/agents/pm.md +349 -0
- package/templates/.claude/agents/qa-tester.md +1 -0
- package/templates/.claude/agents/refactor-advisor.md +4 -0
- package/templates/.claude/agents/researcher.md +9 -1
- package/templates/.claude/agents/scientist.md +1 -0
- package/templates/.claude/agents/security-reviewer.md +1 -0
- package/templates/.claude/agents/tdd-guide.md +1 -0
- package/templates/.claude/agents/vision.md +1 -0
- package/templates/.claude/instructions/agent-patterns/agent-teams-usage.md +376 -0
- package/templates/.claude/instructions/sourcing/reliable-search.md +49 -2
- package/templates/.claude/scripts/agent-teams/check-availability.sh +238 -0
- package/templates/.claude/scripts/agent-teams/setup-tmux.sh +125 -0
- package/templates/.claude/skills/agent-teams-setup/SKILL.md +460 -0
- package/templates/.claude/skills/brainstorm/SKILL.md +1 -0
- package/templates/.claude/skills/bug-fix/SKILL.md +1 -0
- package/templates/.claude/skills/crawler/SKILL.md +2 -0
- package/templates/.claude/skills/docs-creator/SKILL.md +1 -0
- package/templates/.claude/skills/docs-fetch/SKILL.md +6 -4
- package/templates/.claude/skills/docs-refactor/SKILL.md +1 -0
- package/templates/.claude/skills/elon-musk/SKILL.md +1 -0
- package/templates/.claude/skills/execute/SKILL.md +1 -0
- package/templates/.claude/skills/feedback/SKILL.md +1 -0
- package/templates/.claude/skills/figma-to-code/SKILL.md +1 -0
- package/templates/.claude/skills/genius-thinking/SKILL.md +1 -0
- package/templates/.claude/skills/global-uiux-design/SKILL.md +1 -0
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +1 -0
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +1 -0
- package/templates/.claude/skills/plan/SKILL.md +1 -0
- package/templates/.claude/skills/prd/SKILL.md +1 -0
- package/templates/.claude/skills/project-optimizer/AGENTS.md +275 -0
- package/templates/.claude/skills/project-optimizer/SKILL.md +375 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-config-centralize.md +66 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-hot-path.md +35 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-interface-segregation.md +51 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-module-boundary.md +42 -0
- package/templates/.claude/skills/project-optimizer/rules/build-cache.md +57 -0
- package/templates/.claude/skills/project-optimizer/rules/build-code-split.md +56 -0
- package/templates/.claude/skills/project-optimizer/rules/build-incremental.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/build-minify.md +61 -0
- package/templates/.claude/skills/project-optimizer/rules/build-tree-shake.md +60 -0
- package/templates/.claude/skills/project-optimizer/rules/code-complexity.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/code-dead-elimination.md +32 -0
- package/templates/.claude/skills/project-optimizer/rules/code-duplication.md +54 -0
- package/templates/.claude/skills/project-optimizer/rules/code-error-handling.md +75 -0
- package/templates/.claude/skills/project-optimizer/rules/code-naming.md +52 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-defer-await.md +54 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-parallel.md +90 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-pipeline.md +68 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-pool.md +68 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-lightweight-alt.md +37 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-peer-align.md +44 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-security-audit.md +45 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-unused-removal.md +25 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-version-pin.md +40 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-ci-speed.md +47 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-dev-server.md +35 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-lint-config.md +36 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-test-coverage.md +34 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-type-safety.md +49 -0
- package/templates/.claude/skills/project-optimizer/rules/io-batch-queries.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-cache-layer.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-connection-reuse.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-serialize-minimal.md +61 -0
- package/templates/.claude/skills/project-optimizer/rules/io-stream.md +75 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-bounded-cache.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-large-data.md +64 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-lazy-init.md +78 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-leak-prevention.md +79 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-pool-reuse.md +70 -0
- package/templates/.claude/skills/ralph/SKILL.md +1 -0
- package/templates/.claude/skills/refactor/SKILL.md +1 -0
- package/templates/.claude/skills/research/SKILL.md +1 -0
- package/templates/.claude/skills/sql-optimizer/SKILL.md +438 -0
- package/templates/.claude/skills/sql-optimizer/orm-patterns.md +218 -0
- package/templates/.claude/skills/startup-validator/SKILL.md +1 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +53 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +94 -27
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +42 -19
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-optimistic-updates.md +109 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-suspense-query.md +74 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-use-hook.md +81 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-react-compiler.md +81 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-beforeload-auth.md +121 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-file-conventions.md +104 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-link-navigation.md +119 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-nested-layouts.md +155 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-path-params.md +89 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-pending-component.md +110 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-preload-strategy.md +91 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-router-context.md +120 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-search-params.md +114 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +1 -1
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-error-boundaries.md +79 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-middleware.md +85 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +56 -21
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-streaming.md +84 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-validator.md +71 -0
- package/templates/.claude/skills/tauri-react-best-practices/AGENTS.md +527 -0
- package/templates/.claude/skills/tauri-react-best-practices/SKILL.md +571 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-barrel-imports.md +140 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-cargo-profile.md +96 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-frontend-treeshake.md +242 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-lazy-components.md +255 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-remove-unused-commands.md +160 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-ci-pipeline.md +269 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-signing.md +207 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-updater.md +226 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-async-commands.md +172 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-batch-commands.md +133 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-binary-response.md +198 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-channel-streaming.md +186 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-error-handling.md +250 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-type-safe.md +227 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-derived-state.md +231 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-functional-setstate.md +191 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-index-maps.md +276 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-lazy-state-init.md +196 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-lifecycle.md +265 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-mobile-compat.md +199 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-permission-scope.md +193 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-error-boundary.md +239 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-event-listener.md +151 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-file-src.md +155 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-invoke-hook.md +139 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-optimistic-update.md +211 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-capability-split.md +205 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-csp.md +207 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-least-privilege.md +106 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-no-wildcard.md +253 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-scope-paths.md +160 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-async-mutex.md +270 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-mutex-pattern.md +265 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-react-sync.md +375 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-single-container.md +275 -0
- package/templates/tanstack-start/docs/architecture.md +238 -167
- package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +777 -38
- package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +549 -37
- package/templates/tanstack-start/docs/library/tanstack-router/index.md +895 -111
- package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +641 -43
- package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +889 -38
- package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +891 -29
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +972 -36
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +1525 -881
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +1099 -20
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +796 -30
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +953 -35
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +371 -15
- package/templates/tauri/CLAUDE.md +189 -0
- package/templates/tauri/docs/guides/distribution.md +261 -0
- package/templates/tauri/docs/guides/getting-started.md +302 -0
- package/templates/tauri/docs/guides/mobile.md +288 -0
- package/templates/tauri/docs/library/tauri/index.md +510 -0
|
@@ -7,6 +7,7 @@ user-invocable: true
|
|
|
7
7
|
@../../instructions/workflow-patterns/sequential-thinking.md
|
|
8
8
|
@../../instructions/agent-patterns/parallel-execution.md
|
|
9
9
|
@../../instructions/agent-patterns/model-routing.md
|
|
10
|
+
@../../instructions/agent-patterns/agent-teams-usage.md
|
|
10
11
|
@../../instructions/validation/forbidden-patterns.md
|
|
11
12
|
@../../instructions/validation/required-behaviors.md
|
|
12
13
|
|
|
@@ -9,6 +9,7 @@ metadata:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
@../../instructions/agent-patterns/read-parallelization.md
|
|
12
|
+
@../../instructions/agent-patterns/agent-teams-usage.md
|
|
12
13
|
@../../instructions/validation/forbidden-patterns.md
|
|
13
14
|
@../../instructions/validation/required-behaviors.md
|
|
14
15
|
@../../instructions/multi-agent/coordination-guide.md
|
|
@@ -7,6 +7,7 @@ user-invocable: true
|
|
|
7
7
|
@../../instructions/workflow-patterns/sequential-thinking.md
|
|
8
8
|
@../../instructions/agent-patterns/parallel-execution.md
|
|
9
9
|
@../../instructions/agent-patterns/model-routing.md
|
|
10
|
+
@../../instructions/agent-patterns/agent-teams-usage.md
|
|
10
11
|
@../../instructions/sourcing/reliable-search.md
|
|
11
12
|
@../../instructions/context-optimization/phase-based-execution.md
|
|
12
13
|
@../../instructions/context-optimization/sub-agent-distribution.md
|
|
@@ -6,6 +6,7 @@ user-invocable: true
|
|
|
6
6
|
|
|
7
7
|
@../../instructions/workflow-patterns/sequential-thinking.md
|
|
8
8
|
@../../instructions/agent-patterns/read-parallelization.md
|
|
9
|
+
@../../instructions/agent-patterns/agent-teams-usage.md
|
|
9
10
|
@../../instructions/sourcing/reliable-search.md
|
|
10
11
|
@../../instructions/context-optimization/redundant-exploration-prevention.md
|
|
11
12
|
@../../instructions/validation/forbidden-patterns.md
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Project Optimizer
|
|
2
|
+
|
|
3
|
+
**Version 1.0.0**
|
|
4
|
+
범용 프로젝트 최적화 가이드 (언어/프레임워크 무관)
|
|
5
|
+
February 2026
|
|
6
|
+
|
|
7
|
+
> **참고:**
|
|
8
|
+
> 이 문서는 주로 에이전트와 LLM이 프로젝트 코드베이스를 분석, 최적화, 리팩토링할 때 따르기 위한 것입니다. 어떤 언어/프레임워크든 적용 가능한 보편적 최적화 원칙 기반.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 요약
|
|
13
|
+
|
|
14
|
+
AI 에이전트를 위한 범용 프로젝트 최적화 가이드. 8개 카테고리에 걸쳐 38개 규칙을 포함하며, 영향도별로 우선순위 매김 (critical: 동시성, 빌드 최적화 → incremental: 아키텍처). 언어/프레임워크를 자동 감지하여 해당 언어의 관용적 패턴으로 규칙 적용. 프레임워크 특화 스킬(nextjs, tanstack-start, tauri)과 자동 체이닝 지원.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
|
|
20
|
+
## 문서 사용 지침
|
|
21
|
+
|
|
22
|
+
@rules/concurrency-parallel.md
|
|
23
|
+
@rules/concurrency-defer-await.md
|
|
24
|
+
@rules/concurrency-pipeline.md
|
|
25
|
+
@rules/concurrency-pool.md
|
|
26
|
+
@rules/build-incremental.md
|
|
27
|
+
@rules/build-tree-shake.md
|
|
28
|
+
@rules/build-code-split.md
|
|
29
|
+
@rules/build-minify.md
|
|
30
|
+
@rules/build-cache.md
|
|
31
|
+
@rules/io-batch-queries.md
|
|
32
|
+
@rules/io-cache-layer.md
|
|
33
|
+
@rules/io-stream.md
|
|
34
|
+
@rules/io-connection-reuse.md
|
|
35
|
+
@rules/io-serialize-minimal.md
|
|
36
|
+
@rules/memory-leak-prevention.md
|
|
37
|
+
@rules/memory-pool-reuse.md
|
|
38
|
+
@rules/memory-lazy-init.md
|
|
39
|
+
@rules/memory-bounded-cache.md
|
|
40
|
+
@rules/memory-large-data.md
|
|
41
|
+
@rules/code-dead-elimination.md
|
|
42
|
+
@rules/code-duplication.md
|
|
43
|
+
@rules/code-complexity.md
|
|
44
|
+
@rules/code-naming.md
|
|
45
|
+
@rules/code-error-handling.md
|
|
46
|
+
@rules/deps-unused-removal.md
|
|
47
|
+
@rules/deps-security-audit.md
|
|
48
|
+
@rules/deps-version-pin.md
|
|
49
|
+
@rules/deps-lightweight-alt.md
|
|
50
|
+
@rules/deps-peer-align.md
|
|
51
|
+
@rules/dx-type-safety.md
|
|
52
|
+
@rules/dx-lint-config.md
|
|
53
|
+
@rules/dx-test-coverage.md
|
|
54
|
+
@rules/dx-ci-speed.md
|
|
55
|
+
@rules/dx-dev-server.md
|
|
56
|
+
@rules/arch-module-boundary.md
|
|
57
|
+
@rules/arch-interface-segregation.md
|
|
58
|
+
@rules/arch-config-centralize.md
|
|
59
|
+
@rules/arch-hot-path.md
|
|
60
|
+
|
|
61
|
+
</instructions>
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
<categories>
|
|
66
|
+
|
|
67
|
+
## 카테고리별 우선순위
|
|
68
|
+
|
|
69
|
+
| 우선순위 | 카테고리 | 영향도 | 설명 |
|
|
70
|
+
|---------|---------|--------|------|
|
|
71
|
+
| 1 | 동시성/병렬화 | **CRITICAL** | 순차 I/O를 병렬로 전환. 가장 큰 성능 향상 |
|
|
72
|
+
| 2 | 빌드/번들 최적화 | **CRITICAL** | 빌드 시간, 출력 크기 감소 |
|
|
73
|
+
| 3 | I/O 성능 | **HIGH** | DB/네트워크/파일 I/O 효율화 |
|
|
74
|
+
| 4 | 메모리/리소스 관리 | HIGH | 메모리 누수 방지, 리소스 효율 |
|
|
75
|
+
| 5 | 코드 품질 | MEDIUM-HIGH | 유지보수성, 가독성, 정확성 |
|
|
76
|
+
| 6 | 의존성 관리 | MEDIUM | 보안, 크기, 호환성 |
|
|
77
|
+
| 7 | DX (개발자 경험) | MEDIUM | 타입 안전성, 린팅, 테스트, CI |
|
|
78
|
+
| 8 | 아키텍처 | LOW-MEDIUM | 모듈 경계, 인터페이스, 설정 관리 |
|
|
79
|
+
|
|
80
|
+
</categories>
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
<critical_patterns>
|
|
85
|
+
|
|
86
|
+
## 1. 동시성/병렬화 (CRITICAL)
|
|
87
|
+
|
|
88
|
+
순차 I/O는 가장 큰 성능 저해 요소. 독립 작업은 항상 동시 실행.
|
|
89
|
+
|
|
90
|
+
### 병렬 실행 (다국어)
|
|
91
|
+
|
|
92
|
+
| 언어 | 순차 (❌) | 병렬 (✅) |
|
|
93
|
+
|------|----------|----------|
|
|
94
|
+
| **JS/TS** | `await a(); await b()` | `await Promise.all([a(), b()])` |
|
|
95
|
+
| **Python** | `await a(); await b()` | `await asyncio.gather(a(), b())` |
|
|
96
|
+
| **Go** | `a(); b()` | `errgroup.Go(a); errgroup.Go(b)` |
|
|
97
|
+
| **Rust** | `a.await; b.await` | `tokio::try_join!(a, b)` |
|
|
98
|
+
| **Java** | `a.get(); b.get()` | `CompletableFuture.allOf(a, b)` |
|
|
99
|
+
| **C#** | `await A(); await B()` | `await Task.WhenAll(A(), B())` |
|
|
100
|
+
| **Elixir** | sequential calls | `Task.async` + `Task.await_many` |
|
|
101
|
+
| **Ruby** | sequential calls | `Async { [task1, task2].map(&:wait) }` |
|
|
102
|
+
|
|
103
|
+
### 커넥션 풀링
|
|
104
|
+
|
|
105
|
+
| 언어 | 라이브러리 | 설정 |
|
|
106
|
+
|------|-----------|------|
|
|
107
|
+
| **JS/TS** | `generic-pool`, Prisma | `pool: { min: 2, max: 10 }` |
|
|
108
|
+
| **Python** | `sqlalchemy`, `asyncpg` | `pool_size=10, max_overflow=20` |
|
|
109
|
+
| **Go** | `database/sql` | `SetMaxOpenConns(25)` |
|
|
110
|
+
| **Rust** | `deadpool`, `bb8` | `Pool::builder().max_size(16)` |
|
|
111
|
+
| **Java** | HikariCP | `maximumPoolSize=10` |
|
|
112
|
+
|
|
113
|
+
</critical_patterns>
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
<build_optimization>
|
|
118
|
+
|
|
119
|
+
## 2. 빌드/번들 최적화 (CRITICAL)
|
|
120
|
+
|
|
121
|
+
### 증분 빌드 설정
|
|
122
|
+
|
|
123
|
+
| 도구 | 설정 |
|
|
124
|
+
|------|------|
|
|
125
|
+
| **TypeScript** | `"incremental": true` in tsconfig.json |
|
|
126
|
+
| **Rust** | `incremental = true` in Cargo.toml `[profile.dev]` |
|
|
127
|
+
| **Go** | 기본 활성화 (`go build` 캐시) |
|
|
128
|
+
| **Python** | Ruff `cache-dir`, mypy `incremental` |
|
|
129
|
+
| **Gradle** | `org.gradle.caching=true` |
|
|
130
|
+
| **CMake** | ccache / sccache 연동 |
|
|
131
|
+
|
|
132
|
+
### CI 캐시 전략
|
|
133
|
+
|
|
134
|
+
| 패키지 매니저 | 캐시 대상 |
|
|
135
|
+
|-------------|----------|
|
|
136
|
+
| npm/yarn/pnpm | `node_modules`, `.yarn/cache` |
|
|
137
|
+
| pip | `~/.cache/pip` |
|
|
138
|
+
| cargo | `~/.cargo/registry`, `target/` |
|
|
139
|
+
| go | `~/go/pkg/mod`, `~/.cache/go-build` |
|
|
140
|
+
| gradle | `~/.gradle/caches` |
|
|
141
|
+
|
|
142
|
+
</build_optimization>
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
<io_performance>
|
|
147
|
+
|
|
148
|
+
## 3. I/O 성능 (HIGH)
|
|
149
|
+
|
|
150
|
+
### N+1 쿼리 패턴 제거
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
❌ N+1: 목록 1쿼리 + 각 항목 N쿼리 = N+1 쿼리
|
|
154
|
+
✅ 배치: 목록 1쿼리 + IN절 1쿼리 = 2쿼리
|
|
155
|
+
✅ 조인: 1쿼리로 전체 해결
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
| ORM | N+1 해결 방법 |
|
|
159
|
+
|-----|-------------|
|
|
160
|
+
| **Prisma** | `include: { relation: true }` |
|
|
161
|
+
| **SQLAlchemy** | `joinedload()`, `selectinload()` |
|
|
162
|
+
| **GORM** | `Preload("Relation")` |
|
|
163
|
+
| **ActiveRecord** | `includes(:relation)` |
|
|
164
|
+
| **Hibernate** | `@EntityGraph`, `JOIN FETCH` |
|
|
165
|
+
| **Diesel** | `belonging_to().load()` |
|
|
166
|
+
|
|
167
|
+
### 캐시 레이어
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
요청 → L1 (인메모리, <1ms) → L2 (Redis, <5ms) → L3 (DB, ~50ms)
|
|
171
|
+
↑ 캐시 히트 ↑ 캐시 히트 ↑ 캐시 미스
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
</io_performance>
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
<memory_management>
|
|
179
|
+
|
|
180
|
+
## 4. 메모리/리소스 관리 (HIGH)
|
|
181
|
+
|
|
182
|
+
### 리소스 해제 패턴
|
|
183
|
+
|
|
184
|
+
| 언어 | 패턴 |
|
|
185
|
+
|------|------|
|
|
186
|
+
| **Python** | `with` (context manager) |
|
|
187
|
+
| **Go** | `defer resource.Close()` |
|
|
188
|
+
| **Rust** | RAII (Drop trait, 자동 해제) |
|
|
189
|
+
| **Java** | try-with-resources |
|
|
190
|
+
| **C#** | `using` statement |
|
|
191
|
+
| **JS/TS** | `try/finally`, `using` (TC39 Stage 3) |
|
|
192
|
+
| **C++** | RAII, `std::unique_ptr` |
|
|
193
|
+
|
|
194
|
+
### 대용량 데이터 처리
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
❌ 전체 로드: loadAll() → 메모리 폭발
|
|
198
|
+
✅ 스트리밍: stream/iterator/generator → 일정 메모리
|
|
199
|
+
✅ 페이지네이션: page(offset, limit) → 제한된 메모리
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
</memory_management>
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
<code_quality>
|
|
207
|
+
|
|
208
|
+
## 5. 코드 품질 (MEDIUM-HIGH)
|
|
209
|
+
|
|
210
|
+
### 복잡도 감소 패턴
|
|
211
|
+
|
|
212
|
+
| 패턴 | 효과 |
|
|
213
|
+
|------|------|
|
|
214
|
+
| **Early return** | 중첩 깊이 -2~3단계 |
|
|
215
|
+
| **Guard clause** | 예외 조건 상단 배치 |
|
|
216
|
+
| **Extract method** | 단일 책임 분리 |
|
|
217
|
+
| **Replace conditional with polymorphism** | if-else 체인 제거 |
|
|
218
|
+
| **Table-driven** | switch/case → 맵/딕셔너리 |
|
|
219
|
+
|
|
220
|
+
### 에러 처리 일관성
|
|
221
|
+
|
|
222
|
+
| 언어 | 권장 패턴 |
|
|
223
|
+
|------|----------|
|
|
224
|
+
| **Go** | `(value, error)` 튜플, sentinel errors |
|
|
225
|
+
| **Rust** | `Result<T, E>`, `?` 연산자 |
|
|
226
|
+
| **Python** | 커스텀 Exception 계층, `raise from` |
|
|
227
|
+
| **JS/TS** | 커스텀 Error 클래스, Result 패턴 |
|
|
228
|
+
| **Java** | checked exception 최소화, unchecked 선호 |
|
|
229
|
+
|
|
230
|
+
</code_quality>
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
<dependency_management>
|
|
235
|
+
|
|
236
|
+
## 6. 의존성 관리 (MEDIUM)
|
|
237
|
+
|
|
238
|
+
### 미사용 의존성 감지 도구
|
|
239
|
+
|
|
240
|
+
| 언어 | 도구 |
|
|
241
|
+
|------|------|
|
|
242
|
+
| **JS/TS** | `depcheck`, `knip` |
|
|
243
|
+
| **Python** | `pip-autoremove`, `deptry` |
|
|
244
|
+
| **Go** | `go mod tidy` (내장) |
|
|
245
|
+
| **Rust** | `cargo-udeps` |
|
|
246
|
+
| **Java** | `gradle-dependency-analysis` |
|
|
247
|
+
|
|
248
|
+
### 보안 취약점 스캔
|
|
249
|
+
|
|
250
|
+
| 언어 | 도구 |
|
|
251
|
+
|------|------|
|
|
252
|
+
| **JS/TS** | `npm audit`, `yarn audit`, `snyk` |
|
|
253
|
+
| **Python** | `pip-audit`, `safety` |
|
|
254
|
+
| **Go** | `govulncheck` |
|
|
255
|
+
| **Rust** | `cargo-audit` |
|
|
256
|
+
| **범용** | `trivy`, `grype`, Dependabot |
|
|
257
|
+
|
|
258
|
+
</dependency_management>
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
<references>
|
|
263
|
+
|
|
264
|
+
## 참고 자료
|
|
265
|
+
|
|
266
|
+
### 범용
|
|
267
|
+
1. [Google Engineering Practices](https://google.github.io/eng-practices/)
|
|
268
|
+
2. [The Twelve-Factor App](https://12factor.net/)
|
|
269
|
+
|
|
270
|
+
### 언어별
|
|
271
|
+
3. [Effective Go](https://go.dev/doc/effective_go)
|
|
272
|
+
4. [Rust Performance Book](https://nnethercote.github.io/perf-book/)
|
|
273
|
+
5. [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices)
|
|
274
|
+
|
|
275
|
+
</references>
|