Imported from dnjsdn6248-stack/eum_frontend (
.claude/skills/auto-doc-sync/SKILL.md). Install upstream withnpx skills add dnjsdn6248-stack/eum_frontend --skill auto-doc-sync. Copyright stays with the author.
๋ฌธ์ ์๋ ๋๊ธฐํ (Auto Doc Sync)
์ฝ๋ ๋ณ๊ฒฝ ์ ๋ฌธ์ ๊ฐฑ์ ์ด ๋๋ฝ๋๋ ์ผ์ด ์๋๋ก ๊ฐ์ ํ๋ ๊ฐ์ด๋.
ํต์ฌ ๊ท์น ์์ฝ
| ๊ท์น | ๋ด์ฉ | ์๋ฐ ์ |
|---|---|---|
| Auto-Doc Sync | ๋น์ฆ๋์ค ๋ก์ง ๋ณ๊ฒฝ ์ ๊ด๋ จ docs/*.md ์๋ ๊ฐฑ์ | ๋ฌธ์ โ ์ฝ๋ ๊ดด๋ฆฌ ๋ฐ์ |
| Docs First | ์์ ์ docs/*.md ๋จผ์ ์ฝ๊ธฐ | ๋ช ์ธ์ ๋ค๋ฅธ ๊ตฌํ ์ํ |
| Change Report | ์์ ์๋ฃ ๋ณด๊ณ ์ ์ฝ๋+๋ฌธ์ ๋ณ๊ฒฝ ๋ชจ๋ ๊ธฐ์ | ๋ณ๊ฒฝ ์ด๋ ฅ ๋ถํฌ๋ช |
Auto-Doc Sync: ์ด๋ค ๋ณ๊ฒฝ์ด docs ๊ฐฑ์ ์ ํธ๋ฆฌ๊ฑฐํ๋๊ฐ
๊ฐฑ์ ์ด ํ์ํ ์ฝ๋ ๋ณ๊ฒฝ
| ๋ณ๊ฒฝ ๋ด์ฉ | ๊ฐฑ์ ๋์ |
|---|---|
| ์ฃผ๋ฌธ ์ํ๊ฐ ์ถ๊ฐ/๋ณ๊ฒฝ | docs/domain/order.md |
| ๋ฐฐ์ก๋น ์ ์ฑ ๋ณ๊ฒฝ | docs/domain/order.md |
| ํฌ์ธํธ ์ ๋ฆฝ์จ ๋ณ๊ฒฝ | docs/domain/user.md |
| ๋ฆฌ๋ทฐ ์ ์ฑ ๋ณ๊ฒฝ | docs/domain/review.md |
| API ์๋ํฌ์ธํธ ์ถ๊ฐยท์์ | ํด๋น ๋๋ฉ์ธ docs |
| transformResponse ์๋ต ๊ตฌ์กฐ ๋ณ๊ฒฝ | ํด๋น ๋๋ฉ์ธ docs |
| ์ ๊ท ๋๋ฉ์ธ ์ถ๊ฐ | docs/domain/{domain}.md ์ ๊ท ์์ฑ |
| ์ ๊ท ๋ทฐ(๋ ์ด์์ยท๋ณตํฉ ํ์ด์ง) ์ถ๊ฐ | docs/view/{view}.md ์ ๊ท ์์ฑ |
| GNB ๊ตฌ์ฑ ๋ฐฉ์ ๋ณ๊ฒฝ | docs/domain/product.md |
| ์ธ์ฆ ํ๋ฆ ๋ณ๊ฒฝ | docs/domain/auth.md |
๊ฐฑ์ ๋ถํ์ํ ๋ณ๊ฒฝ
- UI ๋ ์ด์์ยท์คํ์ผ ๋ณ๊ฒฝ
- ๋ฆฌํฉํ ๋ง (๋์ ๋ณ๊ฒฝ ์์)
- ์๋ฌ ๋ฉ์์ง ๋ฌธ๊ตฌ ์์
- ์ฑ๋ฅ ์ต์ ํ
Docs First: ์์ ์์ ์ ํ๋ ์์
1. CLAUDE.md ์ ์ฒด ํ์ธ (ํนํ Rules)
โ
2. ๊ด๋ จ docs/*.md ์ฝ๊ธฐ
- ์ํ ๊ด๋ จ โ docs/domain/product.md
- ์ฃผ๋ฌธ ๊ด๋ จ โ docs/domain/order.md
- ๋ฆฌ๋ทฐ ๊ด๋ จ โ docs/domain/review.md
- ์ธ์ฆ ๊ด๋ จ โ docs/domain/auth.md
- ์นดํธ ๊ด๋ จ โ docs/domain/cart.md
- ์์๋ฆฌ์คํธ โ docs/domain/wishlist.md
- ์ ์ ๊ด๋ จ โ docs/domain/user.md
- ๋ทฐ ๋ ์ด์์ โ docs/view/{view}.md
โ
3. ์์ ํ ์ฝ๋ ํ์ผ Read ๋๊ตฌ๋ก ์ฝ๊ธฐ
โ
4. ๋ฌธ์์ ์ฝ๋ ์ฌ์ด ๊ดด๋ฆฌ ๋ฐ๊ฒฌ ์ โ ๋จผ์ ์ฌ์ฉ์์๊ฒ ํ์ธ
Change Report: ๋ณ๊ฒฝ ๋ณด๊ณ ํ์
์์ ์๋ฃ ํ ๋ฐ๋์ ์๋ ํ์์ผ๋ก ๋ณด๊ณ :
### ์์ ๋ ์ฝ๋
- `src/api/productApi.js` โ getMainBestSellers transformResponse ๊ตฌ์กฐ ๋ณ๊ฒฝ
### ์์ ๋ ๋ฌธ์
- `docs/domain/product.md` ยง ๋๋ฉํ์ด์ง ์ ์ฉ Queries โ ์๋ต ๊ตฌ์กฐ ๊ฐฑ์
ํ์ฌ docs ํ์ผ ๋ชฉ๋ก
docs/
โโโ project-structure.md ์ ์ฒด src/ ๊ตฌ์กฐ ๊ฐ์
โโโ api-hooks.md API ํ
์ ์ฒด ๋ชฉ๋ก
โโโ domain/
โโโ auth.md ์ธ์ฆยท์์
๋ก๊ทธ์ธ
โโโ product.md ์ํยท์นดํ
๊ณ ๋ฆฌยท๋๋ฉํ์ด์ง ์น์
โโโ review.md ๋ฆฌ๋ทฐ CRUD
โโโ cart.md ์ฅ๋ฐ๊ตฌ๋
โโโ order.md ์ฃผ๋ฌธ
โโโ wishlist.md ์์๋ฆฌ์คํธ
โโโ user.md ํ์ยทํฌ์ธํธยท์ฟ ํฐ
โโโ ui.md ๊ณตํต UI ์ปดํฌ๋ํธ
docs/view/ํด๋๋ ์์ง ์์ โ ๋ณตํฉ ๋ทฐ ์ถ๊ฐ ์ ์์ฑ.
์ docs/*.md ์์ฑ ๋ฐฉ๋ฒ
ํ์ ์น์ :
- ๊ฐ์ โ ๋๋ฉ์ธ์ ์ญํ ๊ณผ ๋ด๋น ๋ฒ์
- ๋น์ฆ๋์ค ์ ์ฑ โ ๊ณ์ฐ์, ์ ํ ์์น, ์ํ ์ ์ด ๊ท์น (์ฝ๋ ์์น ๋ช ์)
- API ์๋ํฌ์ธํธ โ ํ ๋ช / ๋ฉ์๋ / ๊ฒฝ๋ก / ์๋ต ๊ตฌ์กฐ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ โ transformResponse ํ ์ปดํฌ๋ํธ ์ ๋ฌ ํํ
- ์บ์ ๋ฌดํจํ ์ ๋ต โ providesTags / invalidatesTags
๋ฌธ์ ์์ฑ ํ์ง ๊ธฐ์ค
์ข์ ๋น์ฆ๋์ค ์ ์ฑ ๊ธฐ์ โ
## ๋ฐฐ์ก๋น ์ ์ฑ
| ์กฐ๊ฑด | ๋ฐฐ์ก๋น |
|---|---|
| ์ฃผ๋ฌธ ๊ธ์ก **50,000์ ์ด์** | **๋ฌด๋ฃ** |
| ์ฃผ๋ฌธ ๊ธ์ก 50,000์ ๋ฏธ๋ง | **3,000์** |
- ์ฝ๋ ์์น: `src/shared/utils/formatters.js` โ `calcShippingFee()`
๋์ ๊ธฐ์ โ
## ๋ฐฐ์ก๋น
๋ฐฐ์ก๋น๋ ์ฃผ๋ฌธ ๊ธ์ก์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ฝ๋ ์์น ์๊ณ , ์์น ์์ โ ๋์ค์ ์ฝ๋์ ๊ดด๋ฆฌ ๋ฐ์.
API ์๋ต ๊ตฌ์กฐ ๋ช ์ธ ์์
#### `useGetHomeBestsellerQuery` ์๋ต ๊ตฌ์กฐ (`searchApi.js`)
```js
[
{
id, rank, name, img, price,
score, salesCount, productUrl
}
]
// GET /search/products/home-bestseller