pnpm scaffold ๋ช
๋ น์ด๋ฅผ ์๊ฐ์ ์ธํฐํ์ด์ค๋ก ์ ๊ณตํฉ๋๋ค.
Scaffolding ํญ ๊ตฌ์กฐ




- ์ผ์ชฝ Sidebar: Entity ๋ชฉ๋ก๊ณผ ์ ํ ์ฒดํฌ๋ฐ์ค
- ์ค๋ฅธ์ชฝ Content: ์ฝ๋ ์์ฑ ์ต์ (Model Class, Model Test, View)
์์ฑ ๊ฐ๋ฅํ ์ฝ๋
View ์ปดํฌ๋ํธ ์์ฑ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฐ๋ฐ ์ค์
๋๋ค. Sonamu UI์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํตํด React ์ปดํฌ๋ํธ๋ฅผ
์์ฑํ ์ ์์ต๋๋ค.
Model ํด๋์ค ์์ฑ
1. Entity ์ ํ
์ผ์ชฝ Entity ๋ชฉ๋ก์์ Model์ ์์ฑํ Entity๋ฅผ ์ ํํฉ๋๋ค. ๋จ์ผ ์ ํ:2. ์์ฑ ์ต์ ์ ํ
โ Model Class ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.3. Generate ์คํ
[Generate] ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ค์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค:์์ฑ๋ ์ฝ๋
src/application/user/user.model.ts
- โ TypeScript ํ์ ์ ์
- โ Entity ์ฐ๊ฒฐ
- โ BaseModel ์์
- โ ๊ธฐ๋ณธ CRUD ๋ฉ์๋
Model ํ ์คํธ ์์ฑ
1. Entity ์ ํ
Model๊ณผ ๋์ผํ๊ฒ Entity๋ฅผ ์ ํํฉ๋๋ค.2. ์์ฑ ์ต์ ์ ํ
โ Model Test ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.3. Generate ์คํ
[Generate] ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ค์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค:์์ฑ๋ ์ฝ๋
src/application/user/user.model.test.ts
- โ
bootstrap(vi)ํธ์ถ (Sonamu ์ด๊ธฐํ + ํ ์คํธ๋ณ ํธ๋์ญ์ ๋ํ) - โ
๋น์ด ์๋
describe.skip๋ธ๋ก (ํ ์คํธ ์ผ์ด์ค๋ ์ง์ ์์ฑ)
์ผ๊ด ์์ฑ
๋ชจ๋ Entity์ ๋ํด ์์ฑ
- [Select All] ๋ฒํผ ํด๋ฆญ
- ์์ฑ ์ต์ ์ ํ
- [Generate] ํด๋ฆญ
ํน์ Entity๋ง ์ ํ
ํ๋ก์ ํธ ์ด๊ธฐ ์ค์ ์ ๋ชจ๋ Entity์ ๋ํด:์์ฑ ๊ฒฐ๊ณผ ํ์ธ
์ฑ๊ณต ๋ฉ์์ง
ํ์ผ ์ถฉ๋
์ด๋ฏธ ์กด์ฌํ๋ ํ์ผ์ ์์ฑํ๋ ค๊ณ ํ๋ฉด ํ์ธ ๋ชจ๋ฌ์ด ํ์๋ฉ๋๋ค:- Cancel: ์์ฑ ์ทจ์
- Backup & Overwrite: ๊ธฐ์กด ํ์ผ์
.bak๋ก ๋ฐฑ์ ํ ๋ฎ์ด์ฐ๊ธฐ - Overwrite: ๋ฐ๋ก ๋ฎ์ด์ฐ๊ธฐ (์ฃผ์!)
View ์์ฑ
Scaffolding ํญ์ TemplateKey ๋ชฉ๋ก์๋ Model ์ธ์ View ํ ํ๋ฆฟ๋ ํฌํจ๋์ด ์์ต๋๋ค.๋์ผํ ํ
ํ๋ฆฟ์ CLI์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค:
pnpm scaffold view_list, pnpm scaffold view_form.์์ฑ ํ ์ํฌํ๋ก์ฐ
1. Model ๋ฉ์๋ ์ถ๊ฐ
์์ฑ๋ Model์ ๋น์ฆ๋์ค ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค:src/application/user/user.model.ts
2. ํ ์คํธ ์ถ๊ฐ
์์ฑ๋ ํ ์คํธ ํ์ผ์ ์ถ๊ฐ ํ ์คํธ๋ฅผ ์์ฑํฉ๋๋ค:src/application/user/user.model.test.ts
3. API ์ถ๊ฐ
Model์@api ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ API ์๋ํฌ์ธํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค:
์ค์ ํ
1. ํ๋ก์ ํธ ์ด๊ธฐ ์ค์
2. ์ Entity ์ถ๊ฐ ์
3. ์ฌ์์ฑ์ด ํ์ํ ๊ฒฝ์ฐ
Entity ๊ตฌ์กฐ๊ฐ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ด Model์ ์ฌ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ:๋ค์ ๋จ๊ณ
Model
Model ํด๋์ค ์์ธํ ์์๋ณด๊ธฐ
scaffold CLI
CLI๋ก ์ฝ๋ ์์ฑํ๊ธฐ