@daawoonkim/create-arch-app 0.1.0 β 0.2.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/.github/WORKFLOWS.md +255 -0
- package/.github/workflows/deploy-main.yml +101 -0
- package/.github/workflows/lint.yml +33 -0
- package/.github/workflows/publish.yml +82 -0
- package/.github/workflows/test.yml +52 -0
- package/CHANGELOG.ko.md +72 -0
- package/CHANGELOG.md +71 -0
- package/CONTRIBUTING.md +172 -0
- package/PUBLISHING.md +304 -0
- package/README.ko.md +302 -0
- package/README.md +151 -116
- package/create-arch-app_mvp_faa8b53b.plan.md +1 -1
- package/dist/generators/index.js +69 -9
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/nextjs.d.ts.map +1 -1
- package/dist/generators/nextjs.js +107 -50
- package/dist/generators/nextjs.js.map +1 -1
- package/dist/generators/react.d.ts.map +1 -1
- package/dist/generators/react.js +23 -1
- package/dist/generators/react.js.map +1 -1
- package/dist/prompts/projectSetup.d.ts.map +1 -1
- package/dist/prompts/projectSetup.js +22 -0
- package/dist/prompts/projectSetup.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/apiGenerator.d.ts +4 -0
- package/dist/utils/apiGenerator.d.ts.map +1 -0
- package/dist/utils/apiGenerator.js +440 -0
- package/dist/utils/apiGenerator.js.map +1 -0
- package/dist/utils/dependencies.d.ts.map +1 -1
- package/dist/utils/dependencies.js +15 -0
- package/dist/utils/dependencies.js.map +1 -1
- package/package.json +1 -1
package/README.ko.md
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# create-arch-app
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@daawoonkim/create-arch-app)
|
|
4
|
+
[](https://www.npmjs.com/package/@daawoonkim/create-arch-app)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+

|
|
7
|
+
[](https://github.com/hec8897/create-arch-app/actions/workflows/test.yml)
|
|
8
|
+
[](https://github.com/hec8897/create-arch-app/actions/workflows/lint.yml)
|
|
9
|
+
|
|
10
|
+
**π μΈμ΄**: [English](./README.md) | **νκ΅μ΄**
|
|
11
|
+
|
|
12
|
+
DDD, Clean Architecture, Atomic Designμ μ§μνλ λνν React/Next.js νλ‘μ νΈ μμ± CLI λꡬ
|
|
13
|
+
|
|
14
|
+
**π¦ npm**: https://www.npmjs.com/package/@daawoonkim/create-arch-app
|
|
15
|
+
|
|
16
|
+
**π CHANGELOG**: [English](./CHANGELOG.md) | [νκ΅μ΄](./CHANGELOG.ko.md)
|
|
17
|
+
|
|
18
|
+
> β οΈ **νμ¬ MVP(Minimum Viable Product) λ²μ μ
λλ€.** ν΅μ¬ κΈ°λ₯μ λͺ¨λ μλνμ§λ§, νλ°ν κ°λ° μ€μ΄λ©° νΌλλ°±μ λ°κ³ μμ΅λλ€. μ΄μλ μ μ μ¬νμ΄ μμΌμλ©΄ [GitHub Issues](https://github.com/hec8897/create-arch-app/issues)μ λ¨κ²¨μ£ΌμΈμ!
|
|
19
|
+
|
|
20
|
+
## νΉμ§
|
|
21
|
+
|
|
22
|
+
β¨ **4κ°μ§ μν€ν
μ² ν¨ν΄ μ§μ**
|
|
23
|
+
- DDD (Domain-Driven Design)
|
|
24
|
+
- Clean Architecture
|
|
25
|
+
- Atomic Design
|
|
26
|
+
- Default (기본 ꡬ쑰)
|
|
27
|
+
|
|
28
|
+
π **νλ μμν¬ μ ν**
|
|
29
|
+
- React (with Vite)
|
|
30
|
+
- Next.js (App Router / Pages Router)
|
|
31
|
+
|
|
32
|
+
π **TypeScript κΈ°λ³Έ ν¬ν¨**
|
|
33
|
+
|
|
34
|
+
π¨ **μ€νμΌλ§ μ΅μ
**
|
|
35
|
+
- Tailwind CSS
|
|
36
|
+
- CSS Modules
|
|
37
|
+
|
|
38
|
+
π **API ν΅ν©**
|
|
39
|
+
- HTTP ν΄λΌμ΄μΈνΈ: Axios, Fetch API
|
|
40
|
+
- λ°μ΄ν° νμΉ: TanStack Query (React Query), SWR
|
|
41
|
+
|
|
42
|
+
π¦ **μ ν κ°λ₯ν λΌμ΄λΈλ¬λ¦¬**
|
|
43
|
+
- μνκ΄λ¦¬: Zustand, Context API
|
|
44
|
+
- νΌ: React Hook Form
|
|
45
|
+
- ν
μ€ν
: Vitest + Testing Library
|
|
46
|
+
|
|
47
|
+
## μ€μΉ λ° μ¬μ©λ²
|
|
48
|
+
|
|
49
|
+
### npxλ‘ μ¦μ μ¬μ© (κΆμ₯)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# μ λλ ν 리μ νλ‘μ νΈ μμ±
|
|
53
|
+
npx @daawoonkim/create-arch-app my-app
|
|
54
|
+
|
|
55
|
+
# λλ νμ¬ λλ ν 리μ μ§μ μμ±
|
|
56
|
+
npx @daawoonkim/create-arch-app .
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### μ μ μ€μΉ
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install -g @daawoonkim/create-arch-app
|
|
63
|
+
|
|
64
|
+
# μ λλ ν 리μ νλ‘μ νΈ μμ±
|
|
65
|
+
create-arch-app my-app
|
|
66
|
+
|
|
67
|
+
# νμ¬ λλ ν 리μ μ§μ μμ±
|
|
68
|
+
create-arch-app .
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
> **μ°Έκ³ **: νμ¬ λλ ν 리(`.`)λ₯Ό μ¬μ©νλ €λ©΄ λλ ν λ¦¬κ° λΉμ΄μμ΄μΌ ν©λλ€.
|
|
72
|
+
|
|
73
|
+
### λνν ν둬ννΈ
|
|
74
|
+
|
|
75
|
+
CLIλ₯Ό μ€ννλ©΄ λ€μ μ§λ¬Έλ€μ λ΅νκ² λ©λλ€:
|
|
76
|
+
|
|
77
|
+
1. **νλ μμν¬ μ ν**: React λλ Next.js
|
|
78
|
+
2. **Next.js λ²μ μ ν** (Next.jsλ§ ν΄λΉ): Latest (κΆμ₯), 15.x, 14.x, 13.x
|
|
79
|
+
3. **λΌμ°ν° μ ν** (Next.jsλ§ ν΄λΉ): App Router (κΆμ₯) λλ Pages Router
|
|
80
|
+
4. **μν€ν
μ² ν¨ν΄**: DDD, Clean, Atomic, Default
|
|
81
|
+
5. **μ€νμΌλ§ λꡬ**: Tailwind CSS λλ CSS Modules
|
|
82
|
+
6. **μνκ΄λ¦¬**: Zustand, Context API, None
|
|
83
|
+
7. **νΌ λΌμ΄λΈλ¬λ¦¬**: React Hook Form λλ None
|
|
84
|
+
8. **HTTP ν΄λΌμ΄μΈνΈ**: Axios, Fetch API, None
|
|
85
|
+
9. **λ°μ΄ν° νμΉ**: TanStack Query (React Query), SWR, None
|
|
86
|
+
10. **ν
μ€ν
λꡬ**: Vitest + Testing Library ν¬ν¨ μ¬λΆ
|
|
87
|
+
|
|
88
|
+
## μ¬μ© μμ
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx @daawoonkim/create-arch-app my-enterprise-app
|
|
92
|
+
|
|
93
|
+
# λνν ν둬ννΈ
|
|
94
|
+
? νλ μμν¬λ₯Ό μ ννμΈμ: Next.js
|
|
95
|
+
? Next.js λ²μ μ μ ννμΈμ: Latest (μ΅μ λ²μ , κΆμ₯)
|
|
96
|
+
? Next.js λΌμ°ν°λ₯Ό μ ννμΈμ: App Router (κΆμ₯)
|
|
97
|
+
? μν€ν
μ² ν¨ν΄μ μ ννμΈμ: DDD (Domain-Driven Design)
|
|
98
|
+
? μ€νμΌλ§ λꡬλ₯Ό μ ννμΈμ: Tailwind CSS
|
|
99
|
+
? μνκ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννμΈμ: Zustand
|
|
100
|
+
? νΌ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννμΈμ: React Hook Form
|
|
101
|
+
? HTTP ν΄λΌμ΄μΈνΈλ₯Ό μ ννμΈμ: Axios (κΆμ₯)
|
|
102
|
+
? λ°μ΄ν° νμΉ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννμΈμ: TanStack Query (React Query) - κΆμ₯
|
|
103
|
+
? ν
μ€ν
λꡬλ₯Ό ν¬ν¨νμκ² μ΅λκΉ? Yes
|
|
104
|
+
|
|
105
|
+
β¨ νλ‘μ νΈ μμ± μ€...
|
|
106
|
+
π¦ TypeScript νλ‘μ νΈλ‘ μ€μ λ©λλ€ (κΈ°λ³Έκ°)
|
|
107
|
+
π Next.js App Router μ¬μ©
|
|
108
|
+
β
νλ‘μ νΈ μμ± μλ£!
|
|
109
|
+
|
|
110
|
+
π νλ‘μ νΈκ° μ±κ³΅μ μΌλ‘ μμ±λμμ΅λλ€!
|
|
111
|
+
|
|
112
|
+
λ€μ λͺ
λ Ήμ΄λ‘ μμνμΈμ:
|
|
113
|
+
cd my-enterprise-app
|
|
114
|
+
npm install
|
|
115
|
+
npm run dev
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## μν€ν
μ² ν¨ν΄ μ€λͺ
|
|
119
|
+
|
|
120
|
+
### DDD (Domain-Driven Design)
|
|
121
|
+
|
|
122
|
+
μν°νλΌμ΄μ¦κΈ μ ν리μΌμ΄μ
μ μ ν©ν ν¨ν΄μ
λλ€.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
domain/ # λΉμ¦λμ€ μν°ν°μ λ‘μ§
|
|
126
|
+
βββ entities/
|
|
127
|
+
βββ repositories/
|
|
128
|
+
βββ services/
|
|
129
|
+
application/ # μ μ€μΌμ΄μ€
|
|
130
|
+
βββ usecases/
|
|
131
|
+
βββ ports/
|
|
132
|
+
infrastructure/ # μΈλΆ μλΉμ€ ν΅ν©
|
|
133
|
+
βββ api/
|
|
134
|
+
βββ persistence/
|
|
135
|
+
presentation/ # UI μ»΄ν¬λνΈ
|
|
136
|
+
βββ components/
|
|
137
|
+
βββ pages/
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Clean Architecture
|
|
141
|
+
|
|
142
|
+
μμ‘΄μ± κ·μΉκ³Ό λ μ΄μ΄ λΆλ¦¬μ μ€μ μ λ ν¨ν΄μ
λλ€.
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
core/ # λΉμ¦λμ€ λ‘μ§
|
|
146
|
+
βββ entities/
|
|
147
|
+
βββ usecases/
|
|
148
|
+
βββ interfaces/
|
|
149
|
+
features/ # κΈ°λ₯λ³ λͺ¨λ
|
|
150
|
+
βββ [feature]/
|
|
151
|
+
βββ domain/
|
|
152
|
+
βββ data/
|
|
153
|
+
βββ presentation/
|
|
154
|
+
shared/ # κ³΅ν΅ μ»΄ν¬λνΈ
|
|
155
|
+
βββ components/
|
|
156
|
+
βββ utils/
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Atomic Design
|
|
160
|
+
|
|
161
|
+
UI μ»΄ν¬λνΈ μ€μ¬ κ°λ°μ μ΅μ νλ ν¨ν΄μ
λλ€.
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
components/
|
|
165
|
+
βββ atoms/ # κ°μ₯ μμ UI λ¨μ
|
|
166
|
+
βββ molecules/ # atoms μ‘°ν©
|
|
167
|
+
βββ organisms/ # molecules μ‘°ν©
|
|
168
|
+
βββ templates/ # νμ΄μ§ λ μ΄μμ
|
|
169
|
+
βββ pages/ # μ€μ νμ΄μ§
|
|
170
|
+
hooks/
|
|
171
|
+
utils/
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Default
|
|
175
|
+
|
|
176
|
+
λΉ λ₯Έ μμμ μνλ κ°λ°μλ₯Ό μν κΈ°λ³Έ ꡬ쑰μ
λλ€.
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
components/
|
|
180
|
+
hooks/
|
|
181
|
+
pages/ (λλ app/)
|
|
182
|
+
utils/
|
|
183
|
+
styles/
|
|
184
|
+
types/
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## μμ±λλ νμΌ κ΅¬μ‘°
|
|
188
|
+
|
|
189
|
+
### React νλ‘μ νΈ
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
my-app/
|
|
193
|
+
βββ src/
|
|
194
|
+
β βββ [architecture folders]
|
|
195
|
+
β βββ App.tsx
|
|
196
|
+
β βββ main.tsx
|
|
197
|
+
β βββ index.css
|
|
198
|
+
βββ index.html
|
|
199
|
+
βββ vite.config.ts
|
|
200
|
+
βββ tsconfig.json
|
|
201
|
+
βββ package.json
|
|
202
|
+
βββ README.md
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Next.js νλ‘μ νΈ (App Router)
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
my-app/
|
|
209
|
+
βββ src/
|
|
210
|
+
β βββ app/
|
|
211
|
+
β β βββ layout.tsx
|
|
212
|
+
β β βββ page.tsx
|
|
213
|
+
β β βββ globals.css
|
|
214
|
+
β βββ [architecture folders]
|
|
215
|
+
βββ next.config.js
|
|
216
|
+
βββ tsconfig.json
|
|
217
|
+
βββ package.json
|
|
218
|
+
βββ README.md
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Next.js νλ‘μ νΈ (Pages Router)
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
my-app/
|
|
225
|
+
βββ src/
|
|
226
|
+
β βββ pages/
|
|
227
|
+
β β βββ _app.tsx
|
|
228
|
+
β β βββ _document.tsx
|
|
229
|
+
β β βββ index.tsx
|
|
230
|
+
β βββ styles/
|
|
231
|
+
β β βββ globals.css
|
|
232
|
+
β βββ [architecture folders]
|
|
233
|
+
βββ next.config.js
|
|
234
|
+
βββ tsconfig.json
|
|
235
|
+
βββ package.json
|
|
236
|
+
βββ README.md
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## μꡬ μ¬ν
|
|
240
|
+
|
|
241
|
+
- Node.js 18.0.0 μ΄μ
|
|
242
|
+
|
|
243
|
+
## λ²μ μ 보
|
|
244
|
+
|
|
245
|
+
### v0.2.0 - μ΅μ (2025-01-26)
|
|
246
|
+
|
|
247
|
+
**μ£Όμ μ
λ°μ΄νΈ:**
|
|
248
|
+
- β
API λΌμ΄λΈλ¬λ¦¬ ν΅ν© (Axios, Fetch API, TanStack Query, SWR)
|
|
249
|
+
- β
μν€ν
μ²λ³ API νμΌ μλ μμ±
|
|
250
|
+
- β
Next.js νλ‘μ νΈ κ΅¬μ‘° κ°μ (`src/` λλ ν 리 + μ λ κ²½λ‘)
|
|
251
|
+
- β
CI/CD μλν (GitHub Actions)
|
|
252
|
+
- β
μλ npm λ°°ν¬ (main λΈλμΉ merge μ)
|
|
253
|
+
- β
λ¬Έμ κ°μ (CHANGELOG, CONTRIBUTING, WORKFLOWS)
|
|
254
|
+
|
|
255
|
+
μμΈν λ΄μ©μ [CHANGELOG.ko.md](./CHANGELOG.ko.md)λ₯Ό μ°Έμ‘°νμΈμ.
|
|
256
|
+
|
|
257
|
+
### v0.1.0 - MVP 릴리μ¦
|
|
258
|
+
|
|
259
|
+
**ν¬ν¨λ κΈ°λ₯:**
|
|
260
|
+
- β
4κ°μ§ μν€ν
μ² ν¨ν΄ (DDD, Clean Architecture, Atomic Design, Default)
|
|
261
|
+
- β
React (Vite) & Next.js (App Router / Pages Router) μ§μ
|
|
262
|
+
- β
Next.js λ²μ μ ν (Latest, 15.x, 14.x, 13.x)
|
|
263
|
+
- β
TypeScript κΈ°λ³Έ ν¬ν¨
|
|
264
|
+
- β
μ€νμΌλ§: Tailwind CSS, CSS Modules
|
|
265
|
+
- β
μνκ΄λ¦¬: Zustand, Context API
|
|
266
|
+
- β
νΌ: React Hook Form
|
|
267
|
+
- β
ν
μ€ν
: Vitest + Testing Library
|
|
268
|
+
- β
νμ¬ λλ ν 리 μμ± μ§μ (`.` μ΅μ
)
|
|
269
|
+
- β
κΈ°λ³Έ ν΄λ ꡬ쑰μ README μλ μμ±
|
|
270
|
+
|
|
271
|
+
## λ‘λλ§΅
|
|
272
|
+
|
|
273
|
+
### v0.3.0 (κ³ν μ€)
|
|
274
|
+
- [ ] μΆκ° UI λΌμ΄λΈλ¬λ¦¬ ν΅ν© (shadcn/ui, MUI)
|
|
275
|
+
- [ ] λ λ§μ ν
μ€νΈ λ° μμ μ± κ°μ
|
|
276
|
+
- [ ] μ»΄ν¬λνΈ μμ±κΈ° μΆκ°
|
|
277
|
+
|
|
278
|
+
### ν₯ν κ³ν
|
|
279
|
+
- [ ] μΆκ° μν€ν
μ² ν¨ν΄ (Feature-Sliced Design, Hexagonal Architecture)
|
|
280
|
+
- [ ] μΆκ° μνκ΄λ¦¬ μ΅μ
(Redux Toolkit, Jotai, Recoil)
|
|
281
|
+
- [ ] μΈμ¦ ν΅ν© (NextAuth, Supabase)
|
|
282
|
+
- [ ] ORM ν΅ν© (Prisma, Drizzle)
|
|
283
|
+
- [ ] Docker μ€μ ν¬ν¨
|
|
284
|
+
- [ ] Monorepo μ§μ (Turborepo)
|
|
285
|
+
|
|
286
|
+
## κΈ°μ¬νκΈ°
|
|
287
|
+
|
|
288
|
+
λ²κ·Έ 리ν¬νΈ, κΈ°λ₯ μ μ, PR λͺ¨λ νμν©λλ€!
|
|
289
|
+
|
|
290
|
+
μμΈν λ΄μ©μ [CONTRIBUTING.md](./CONTRIBUTING.md)λ₯Ό μ°Έμ‘°νμΈμ.
|
|
291
|
+
|
|
292
|
+
## λΌμ΄μ μ€
|
|
293
|
+
|
|
294
|
+
MIT
|
|
295
|
+
|
|
296
|
+
## μμ±μ
|
|
297
|
+
|
|
298
|
+
daawoonkim
|
|
299
|
+
|
|
300
|
+
## μ°Έκ³
|
|
301
|
+
|
|
302
|
+
μ΄ νλ‘μ νΈλ νλμ μΈ νλ‘ νΈμλ κ°λ° λͺ¨λ² μ¬λ‘μ λ€μν μν€ν
μ² ν¨ν΄μ κΈ°λ°μΌλ‘ ν©λλ€.
|