35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# 프로젝트 전용 컨벤션 (Sample)
|
|
|
|
공통 지침(`.claude/common/`) 외에 **이 프로젝트에서만** 적용되는 규칙을 정의합니다.
|
|
공통 지침과 충돌할 경우 이 문서가 우선합니다.
|
|
|
|
## 디렉토리 규칙
|
|
|
|
- `components/` — 재사용 컴포넌트. 도메인별 하위 폴더(`user/`, `order/`)로 분리
|
|
- `composables/` — `useXxx` 형태의 재사용 로직
|
|
- `pages/` — Nuxt 파일 기반 라우팅
|
|
- `server/api/` — 서버 라우트 핸들러
|
|
- `types/` — 전역/공통 타입 정의
|
|
|
|
## 컴포넌트 규칙 (오버라이드)
|
|
|
|
- 이 프로젝트에서는 컴포넌트 파일 길이를 **150줄**로 제한합니다. (공통 200줄보다 엄격)
|
|
- 컴포넌트 당 `defineProps` 의 항목은 **최대 7개**. 초과 시 객체 props 로 묶습니다.
|
|
|
|
## Tailwind
|
|
|
|
- 색상은 `tailwind.config.ts` 의 `theme.extend.colors` 에 등록된 토큰만 사용합니다.
|
|
(임의 색상 사용 금지)
|
|
- 다크모드 클래스 prefix 는 `dark:` 를 사용합니다.
|
|
|
|
## 네트워크
|
|
|
|
- API 호출은 반드시 `composables/api/` 의 래퍼를 통해 수행합니다.
|
|
- 직접 `$fetch` / `fetch` 사용은 금지 (테스트 목적 제외).
|
|
|
|
## 테스트
|
|
|
|
- Vitest 를 기본 테스트 러너로 사용합니다.
|
|
- 테스트 파일은 소스 옆에 `*.spec.ts` 로 배치합니다.
|
|
- 공통 유틸과 composable 은 테스트 커버리지 80% 이상을 유지합니다.
|