create-sonamu ํจํค์ง๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ์์ฝ๊ฒ ์์ํ ์ ์์ต๋๋ค.
์์คํ ์๊ตฌ์ฌํญ
Sonamu๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ค์ ํ๊ฒฝ์ด ํ์ํฉ๋๋ค:- Node.js v22 ์ด์
- pnpm v10.23 ์ด์
- Docker (๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํ์ฉ)

ํฐ๋ฏธ๋์์ node --version, pnpm --version, docker --version ์คํ ๊ฒฐ๊ณผ
ํ๋ก์ ํธ ์์ฑ
ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ Sonamu ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค:pnpm create sonamu ์คํ๋ถํฐ ๋ชจ๋ ํ๋กฌํํธ ์ ๋ ฅ ์๋ฃ๊น์ง ์ ์ฒด ๊ณผ์
1
ํ๋ก์ ํธ๋ช ์ ๋ ฅ
์์ฑํ ํ๋ก์ ํธ์ ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค. ์ด ์ด๋ฆ์ผ๋ก ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
2
pnpm ์ค์
pnpm์ ์๋์ผ๋ก ์ค์ ํ ์ง ์ ํํฉ๋๋ค. ๊ถ์ฅ ์ต์
์
๋๋ค.
3
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์
Docker๋ฅผ ์ฌ์ฉํ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ํ ์ง ์ ํํฉ๋๋ค. Yes๋ฅผ ์ ํํ๋ฉด:
- Docker Compose ํ๋ก์ ํธ๋ช
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๋ช
- ์ปจํ ์ด๋ ์ด๋ฆ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ
api/.env ํ์ผ์ด ์๋ ์์ฑ๋ฉ๋๋ค.
ํ๋ก์ ํธ ์์ฑ ์๋ฃ ๋ฉ์์ง ๋ฐ ์์ฑ๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
์์ฑ๋ ํ๋ก์ ํธ ๊ตฌ์กฐ
create-sonamu๋ ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋
ธ๋ ํฌ ๊ตฌ์กฐ๋ฅผ ์์ฑํฉ๋๋ค:

VS Code์์ ์ด๋ฆฐ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ ๊ตฌ์กฐ
my_app
api (๋ฐฑ์๋ API ์๋ฒ)
web (ํ๋ก ํธ์๋ ์น ์ฑ)
README.md
์ฃผ์ ์ค์ ํ์ผ
API ์๋ฒ ์ํธ๋ฆฌํฌ์ธํธ
์์ฑ๋ API ์๋ฒ์ ์ง์ ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
VS Code์์ ์ด๋ฆฐ api/src/index.ts ํ์ผ
Sonamu ์ค์
sonamu.config.ts์์ ํ๋ก์ ํธ์ ์ฃผ์ ์ค์ ์ ๊ด๋ฆฌํฉ๋๋ค:
api/src/sonamu.config.ts
Docker Compose ์ค์
PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Docker๋ก ๊ด๋ฆฌ๋ฉ๋๋ค:api/database/docker-compose.yml
ํ๋ก ํธ์๋ ์ค์
Vite ๊ธฐ๋ฐ React ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฑ๋ฉ๋๋ค:web/vite.config.ts
ํฌํธ ๊ตฌ์ฑ
๊ธฐ๋ณธ ํฌํธ๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ๋ฉ๋๋ค:| ์๋น์ค | ํฌํธ | ์ค๋ช |
|---|---|---|
| API ์๋ฒ | 1028 | Fastify ๊ธฐ๋ฐ REST API |
| Sonamu UI | 2028 | ์ํฐํฐ ๊ด๋ฆฌ ์ธํฐํ์ด์ค |
| Web ์ฑ | 3028 | Vite ๊ฐ๋ฐ ์๋ฒ |
| PostgreSQL | 5432 | ๋ฐ์ดํฐ๋ฒ ์ด์ค |
- API ์๋ฒ ํฌํธ:
api/src/sonamu.config.ts์์port์์ ์์ (์ด ๊ฒฝ์ฐweb/.sonamu.env์API_PORT๋ ํจ๊ป ์์ ํ์) - Web ์ฑ ํฌํธ:
web/vite.config.ts์์server.port์์ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌํธ:
api/src/sonamu.config.ts์database.defaultOptions.connection.port์์ ํ๊ฒฝ๋ณ์ ์ค์ (์:MIOMOCK_DB_PORT)