# 규칙
*** 제안 규칙 !!!!!
- 생성하거나 수정해야할 소스를 제안할 시에는 소스코드 제일 윗 부분에 주석을 달아서 프로젝트의 어느 폴더 위치할 파일인지를 꼭 명시 할 것!!!!
## 프로젝트 구조
- app/ 디렉토리는 페이지와 라우팅 구조를 포함
- docs/ 디렉토리는 프로젝트 문서화 관련 파일 보관
- lib/ 디렉토리는 유틸리티 함수와 공통 로직 보관
## 코드 컨벤션
- **매우 중요** 각각의 파일 생성시 주석을 상세히 기재할 것
- **매우 중요** 새로운 파일 생성 제안이 필요할 경우 파일 생성의 폴더 위치를 알려 줄 것
- 컴포넌트는 PascalCase로 네이밍
- 함수와 변수는 camelCase 사용
- 상수는 UPPER_SNAKE_CASE 사용
## Next.js 규칙
- 페이지 컴포넌트는 default export 사용
- API 라우트는 RESTful 규칙 준수
- 미들웨어는 middleware.ts에 집중 관리
## 스타일링 규칙
- 스타일링 업데이트시 기존 기능 및 DB와 연동하는 기능에 영향을 주지 않는 범위에서 제안할 것
- 사용자 친화적이고 직관적이고 모던하며 최신 트렌드에 맞게 디자인
- 모바일, 테블릿, 데스크탑 환경에서 모두 최적의 사용자 경험을 제공할 수 있도록 디자인
- 스타일링 업데이트시 기존 DB와 연동하는 기능에 영향을 주지 않는 범위에서 제안할 것
- Tailwind CSS 클래스는 일관된 순서로 작성
순서: layout > spacing > sizing > typography > visual
- 커스텀 스타일은 styles/ 디렉토리에서 관리
## Git 관련
- 커밋 메시지는 conventional commits 형식 준수
- feature 브랜치는 'feature/' 접두사 사용
- PR 템플릿 준수하여 작성
## 문서화
- 주요 컴포넌트는 JSDoc 주석 필수
- API 명세는 swagger/openapi 형식으로 문서화
- README.md 는 최신 상태 유지
## 테스트
- 주요 비즈니스 로직은 단위 테스트 작성
- E2E 테스트는 Cypress 사용
- ��스트 커버리지 70% 이상 유지
## 성능 최적화
- 이미지는 Next/Image 컴포넌트 사용
- 큰 컴포넌트는 dynamic import 고려
- 불필요한 리렌더링 방지를 위한 메모이제이션 활용
css
cypress
javascript
next.js
rest-api
tailwindcss
typescript
First Time Repository
TypeScript
Languages:
CSS: 0.4KB
JavaScript: 0.1KB
TypeScript: 133.4KB
Created: 12/8/2024
Updated: 1/3/2025