Claude.md๋ก ๋์ฑ ์ค๋งํธํ๊ฒ claude๋ฅผ ์จ๋ณด์ !
๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์์ํ ๋๋ง๋ค ๋์ผํ ํจํด๊ณผ ๊ท์น์ Claude์๊ฒ ๋ฐ๋ณต ์ค๋ช ํ๋ ๊ฒ์ ์ง์น์ง ์๋์? Claude Code์ claude.md ํ์ผ์ ํ์ฉํ๋ฉด ์ด๋ฐ ๋ฒ๊ฑฐ๋ก์์ ์์ ํ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ claude.md๋ฅผ ํตํด AI ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ํจ์จ์ฑ์ ๊ทน๋ํํ๋ ๋ฐฉ๋ฒ์ ์ค์ ์์์ ํจ๊ป ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
Claude Code๋ ๋จ์ํ AI ์ฝ๋ฉ ๋๊ตฌ๊ฐ ์๋๋๋ค. ํ๋ก์ ํธ์ ๋งฅ๋ฝ์ ์ดํดํ๊ณ , ํ์ ๊ฐ๋ฐ ๊ท์น์ ํ์ตํ๋ฉฐ, ์ผ๊ด๋ ์ฝ๋ฉ ์คํ์ผ์ ์ ์งํ ์ ์๋ ๊ฐ๋ ฅํ ํ์ด ํ๋ก๊ทธ๋๋ฐ ํํธ๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ ํต์ฌ์ claude.md ํ์ผ์ด ์์ต๋๋ค.
Claude.md๋ ๋ฌด์์ธ๊ฐ์?
Claude.md๋ Claude Code๊ฐ ์๋์ผ๋ก ์ฝ์ด๋ค์ด๋ ๋งํฌ๋ค์ด ํ์ผ์ ๋๋ค. ์๋ก์ด ๊ฐ๋ฐ์๊ฐ ํ์ ํฉ๋ฅํ์ ๋ ๋ฐ๋ ์จ๋ณด๋ฉ ๋ฌธ์์ ๋น์ทํ ์ญํ ์ ํ์ฃ . ํ๋ก์ ํธ์ ๊ธฐ์ ์คํ, ๊ฐ๋ฐ ๊ท์น, ์ํฌํ๋ก์ฐ, ๊ทธ๋ฆฌ๊ณ ์๋ฌต์ ์ธ ์ปจ๋ฒค์ ๋ค์ Claude์๊ฒ ์๋ ค์ฃผ๋ 'ํ๋ก์ ํธ ์ค๋ช ์โ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
Claude Code๋ ํ๋ก์ ํธ๋ฅผ ์ด ๋๋ง๋ค ์ด ํ์ผ์ ์๋์ผ๋ก ์ฝ๊ณ , ๊ทธ ์์ ๋ด๊ธด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ํ๋ก์ ํธ์ ์ต์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ํ ๋ฒ ์์ฑํด๋๋ฉด Claude๋ ์ด ์ ๋ณด๋ฅผ ์๊ตฌ์ ์ผ๋ก ๊ธฐ์ตํ๋ฉฐ, ์๋ก์ด ์ธ์ ์ด๋ ๋ค๋ฅธ ๋ธ๋์น์์๋ ๋์ผํ ์ปจํ ์คํธ๋ฅผ ์ ์งํฉ๋๋ค.
Claude.md ์ฌ์ฉ๋ฒ: ํ๋ก์ ํธ ๋งฅ๋ฝ ๊ตฌ์ถํ๊ธฐ
Claude.md์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ํ๋ก์ ํธ์ "์๋ฌต์ ๋ฃฐ"์ ๋ฌธ์ํํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์์ ES ๋ชจ๋์ ์ฌ์ฉํ๊ธฐ๋ก ํ์ง๋ง ์ด๋ฅผ ๋ช ์์ ์ผ๋ก ๋ฌธ์ํํ์ง ์์ ๊ฒฝ์ฐ, Claude๋ CommonJS ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง claude.md์ ์ด๋ฐ ๊ท์น์ ๋ช ์ํด๋๋ฉด:
# ๊ฐ๋ฐ ๊ท์น
- ES ๋ชจ๋ ์ฌ์ฉ (import/export ๊ตฌ๋ฌธ ์ฌ์ฉ)
- API ํธ์ถ์ ๋ฐ๋์ try-catch๋ก ๊ฐ์ธ๊ธฐ
- TypeScript์์ 'any' ํ์
์ฌ์ฉ ๊ธ์ง
์ด๋ ๊ฒ ์์ฑํด๋๋ฉด Claude๋ ํญ์ ์ด ๊ท์น๋ค์ ์ค์ํ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
๋ํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ ํด๋์ ์ญํ ๋ ๋ช ํํ ์ ์ํ ์ ์์ต๋๋ค:
# ํ๋ก์ ํธ ๊ตฌ์กฐ
- `src/components`: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ
- `src/lib`: ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง
- `src/utils`: ํฌํผ ํจ์๋ค
- `scripts/`: ๋น๋ ๋ฐ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ
Claude.md ๋ฒ ์คํธ ํ๋ํฐ์ค
๊ธฐ์ ์คํ๊ณผ ๋ฒ์ ๋ช ์
๋ฒ์ ์ ๋ณด๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. Next.js 13๊ณผ 15๋ ์์ ํ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ด์ฃ :
# ๊ธฐ์ ์คํ
- Framework: Next.js 14
- Language: TypeScript 5.2
- Styling: Tailwind CSS 3.4
- Database: Prisma 5.x + PostgreSQL
- State Management: Zustand 4.x
๊ฐ๋ฐ ๊ท์น ์ธ๋ถ ๋ช ์
Claude๊ฐ ๋ฐ๋ผ์ผ ํ ๊ตฌ์ฒด์ ์ธ ๊ท์น๋ค์ ๋ช ์ํ ์ ์์ต๋๋ค !:
# ๊ฐ๋ฐ ๊ท์น
- ๋ชจ๋ API ํธ์ถ์ try-catch๋ก ๋ํ
- ์ปดํฌ๋ํธ๋ ํจ์ํ์ผ๋ก ์์ฑ (React hooks ์ฌ์ฉ)
- CSS-in-JS ๋์ Tailwind ํด๋์ค ์ฌ์ฉ
- ์ํ ๊ด๋ฆฌ๋ Zustand store ํจํด ์ค์
- ์๋ฌ ์ฒ๋ฆฌ๋ toast ์๋ฆผ ์ฌ์ฉ
์ํฌํ๋ก์ฐ ๋ฌธ์ํ
๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ ์ค์ํ ์ ๋ณด์ ๋๋ค:
# ์ํฌํ๋ก์ฐ
- ๋ธ๋์น๋ช
: feature/TICKET-123-description
- ์ปค๋ฐ ๋ฉ์์ง: conventional commits ๊ท์น ์ค์
- PR ์ ๋ฐ๋์ lint ๋ฐ type check ํต๊ณผ
- ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง 80% ์ด์ ์ ์ง
Claude ์ ์ฉ ์ง์์ฌํญ
Claude๊ฐ ํน๋ณํ ์ฃผ์ํด์ผ ํ ์ฌํญ๋ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค:
# Claude ์ง์์ฌํญ
- ๋ ๊ฑฐ์ ์ฝ๋ ๋ฆฌํฉํ ๋ง ์ ์ฃผ์ (๋์ํ๋ ์ฝ๋๋ ๊ฑด๋๋ฆฌ์ง ๋ง ๊ฒ)
- ์ ๊ทผ์ฑ ๊ฒ์ฌ ์๋ตํ์ง ๋ง ๊ฒ
- ์ค์ ํ์ผ ์์ ์ ๋ฐ๋์ ํ์ธ ์์ฒญ
- ์ค์ํ ๋ณ๊ฒฝ์ฌํญ์ TODO ์ฝ๋ฉํธ๋ก ํ์
์ปจํ ์คํธ ์ค์์ฒ๋ก์์ Claude.md
Claude.md๋ ๋จ์ํ ๊ท์น ํ์ผ์ด ์๋๋๋ค. ํ๋ก์ ํธ์ ๋ค์ํ ๋ถ๋ถ์์ ์๋ก ๋ค๋ฅธ ๊ท์น์ ์ ์ฉํ ์ ์๋ โ์ปจํ ์คํธ ์ค์์ฒโ ์ญํ ์ ํฉ๋๋ค.
Claude Code๋ ์ฌ๋ฌ ์์น์์ CLAUDE.md ํ์ผ์ ์ฐพ์ ๊ฒฐํฉํฉ๋๋ค:
- ํ ๋๋ ํ ๋ฆฌ (
~/.claude/CLAUDE.md): ๋ชจ๋ Claude Code ์ธ์ ์ ์ ์ญ์ ์ผ๋ก ์ ์ฉ - ํ๋ก์ ํธ ๋ฃจํธ (
your-repo/CLAUDE.md): ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์์น๋ก ๋ฒ์ ๊ด๋ฆฌ์ ํฌํจ - ์๋ธ ๋๋ ํ ๋ฆฌ (
your-repo/feature/CLAUDE.md): ํน์ ๊ธฐ๋ฅ ์์ ์ ์ ์ฉ - ๋ก์ปฌ ์ค๋ฒ๋ผ์ด๋ (
CLAUDE.local.md): ๊ฐ์ธ ์ค์ ์ฉ (gitignore์ ์ถ๊ฐ)
์๋ฅผ ๋ค์ด, ์ํฐํฐ ๋๋ ํ ๋ฆฌ์์ ์์ ํ ๋๋ง ์ ์ฉ๋๋ ๊ท์น์ ๋ง๋ค ์ ์์ต๋๋ค:
# src/entities/CLAUDE.md
- ๋ชจ๋ ์ํฐํฐ๋ Zod ์คํค๋ง ๊ฒ์ฆ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ก์ง๋ง ํฌํจ
- ๋น์ฆ๋์ค ๋ก์ง์ services ๋ ์ด์ด๋ก ๋ถ๋ฆฌ
์ด๋ ๊ฒ ํ๋ฉด ์ํฐํฐ ๋๋ ํ ๋ฆฌ์์ ์์ ํ ๋ Claude๊ฐ ์๋์ผ๋ก ์ด ๊ท์น๋ค์ ์ ์ฉํฉ๋๋ค.
ํ๋ก์ ํธ ์ฑ์ฅ์ ๋ฐ๋ฅธ ์งํ
Claude.md๋ ํ๋ก์ ํธ์ ํจ๊ป ๊ด๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ฑฐ๋ ๊ฐ๋ฐ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ ๋ฐ์ดํธํด๋ณผ ์๋ ์์ด์ ! Claude์๊ฒ ์ด์ ์ปค๋ฐ๋ค์ ๊ฒํ ํ๊ฒ ํ๊ณ claude.md ์ ๋ฐ์ดํธ๋ฅผ ์ ์ํ๋๋ก ํ ์๋ ์์ต๋๋ค:
claude -p "์ต๊ทผ 10๊ฐ ์ปค๋ฐ์ ๊ฒํ ํ๊ณ CLAUDE.md์ ์ถ๊ฐํด์ผ ํ ์๋ก์ด ํจํด์ด๋ ๊ท์น์ด ์๋์ง ํ์ธํด์ค"
Claude Code ์ค์ ํ๊ธฐ
Claude Code๋ฅผ ์์ํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
์ค์น ๊ณผ์
# Claude Code CLI ์ค์น
npm install -g @anthropic-ai/claude-code
# ๋ฒ์ ํ์ธ
claude --version
# ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd your-project
# Claude Code ์คํ
claude
์๋ฅผ ๋ค์ด์ ์ด๋ป๊ฒ ์์ฑํ ์ ์์๊น?
๋ค์์ Next.js ํ๋ก์ ํธ๋ฅผ ์ํ ์์ ํ claude.md ์์์ ๋๋ค:
# ํ๋ก์ ํธ: E-commerce Dashboard
## ๊ธฐ์ ์คํ
- Framework: Next.js 14.0 (App Router)
- Language: TypeScript 5.2
- Styling: Tailwind CSS 3.4
- Database: Prisma 5.x + PostgreSQL
- Authentication: NextAuth.js 4.x
- State Management: Zustand 4.x
- UI Components: Radix UI + Shadcn/ui
## ํ๋ก์ ํธ ๊ตฌ์กฐ
- `app/`: Next.js 13+ App Router ๊ตฌ์กฐ
- `components/ui/`: Shadcn/ui ๊ธฐ๋ฐ ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธ
- `components/`: ๋น์ฆ๋์ค ๋ก์ง ์ปดํฌ๋ํธ
- `lib/`: ์ ํธ๋ฆฌํฐ ๋ฐ ์ค์
- `stores/`: Zustand ์ํ ๊ด๋ฆฌ
- `types/`: TypeScript ํ์
์ ์
## ๊ฐ๋ฐ ๊ท์น
- ๋ชจ๋ ์ปดํฌ๋ํธ๋ TypeScript๋ก ์์ฑ
- ์๋ฒ ์ปดํฌ๋ํธ ์ฐ์ ์ฌ์ฉ, ํ์์์๋ง ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ
- API ๊ฒฝ๋ก๋ `/app/api/` ๋๋ ํ ๋ฆฌ ์ฌ์ฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ Prisma Client๋ฅผ ํตํด์๋ง
- ์ํ ๊ด๋ฆฌ๋ Zustand store ํจํด ์ค์
- ์คํ์ผ๋ง์ Tailwind CSS ํด๋์ค๋ง ์ฌ์ฉ
## ๋ช
๋ น์ด
- `npm run dev`: ๊ฐ๋ฐ ์๋ฒ ์คํ
- `npm run build`: ํ๋ก๋์
๋น๋
- `npm run lint`: ESLint ์คํ
- `npm run type-check`: TypeScript ๊ฒ์ฌ
- `npx prisma studio`: ๋ฐ์ดํฐ๋ฒ ์ด์ค GUI
## ์ฝ๋ฉ ์ปจ๋ฒค์
- ์ปดํฌ๋ํธ๋ช
: PascalCase
- ํ์ผ๋ช
: kebab-case
- ๋ณ์๋ช
: camelCase
- ์์: UPPER_SNAKE_CASE
- ์ธํฐํ์ด์ค: `I` ์ ๋์ฌ ์ฌ์ฉ ์ํจ
## ๋ธ๋์น ๋ฐ ์ปค๋ฐ
- ๋ธ๋์น๋ช
: `feature/TASK-123-short-description`
- ์ปค๋ฐ ๋ฉ์์ง: Conventional Commits ๊ท์น
- PR ์ ๋ฐ๋์ `npm run lint && npm run type-check` ํต๊ณผ
## Claude ์ง์์ฌํญ
- 'any' ํ์
์ฌ์ฉ ์ ๋ ๊ธ์ง
- ์ปดํฌ๋ํธ ์์ฑ ์ ์ ๊ทผ์ฑ ๊ณ ๋ ค ํ์
- ์๋ฌ ํธ๋ค๋ง์ toast ์๋ฆผ ์ฌ์ฉ
- ๋ก๋ฉ ์ํ๋ Suspense ๊ฒฝ๊ณ ํ์ฉ
- ์ค์ํ ๋น์ฆ๋์ค ๋ก์ง ๋ณ๊ฒฝ ์ TODO ์ฝ๋ฉํธ๋ก ํ์
Claude์ Claude.md๊ฐ ๊ฐ๋ฐ์ ํ์ ํ๋ ๋ฐฉ๋ฒ
Claude.md๋ฅผ ์ ๋๋ก ํ์ฉํ๋ฉด ๊ฐ๋ฐ ๊ฒฝํ์ด ์์ ํ ๋ฐ๋๋๋ค. ๋ ์ด์ ๊ฐ์ ์ค๋ช ์ ๋ฐ๋ณตํ ํ์๊ฐ ์๊ณ , Claude๋ ํ๋ก์ ํธ์ ๋งฅ๋ฝ์ ์๋ฒฝํ๊ฒ ์ดํดํ ์ํ๋ก ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ํ ์ ์ฒด๊ฐ ์ผ๊ด๋ ์ฝ๋ฉ ์คํ์ผ์ ์ ์งํ ์ ์๊ณ , ์๋ก์ด ํ์๋ ๋น ๋ฅด๊ฒ ํ๋ก์ ํธ์ ์ ์ํ ์ ์์ด์.
ํนํ ๋ณต์กํ ์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ์์๋ claude.md๊ฐ ์์ผ๋ฉด Claude๊ฐ ํ๋ก์ ํธ์ ๋ณต์ก์ฑ์ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ํ์ง๋ง ์ ์์ฑ๋ claude.md ํ๋๋ก Claude๋ฅผ ํ๋ก์ ํธ์ ์๋ฒฝํ ํ์ด ํ๋ก๊ทธ๋๋ฐ ํํธ๋๋ก ๋ง๋ค ์๋ ์๊ฒ ์ฃ !