Skip to content

Commit d34e40f

Browse files
committed
chore: 프로젝트 초기 설정 및 기본 레이아웃 구현
1 parent a7a4bc8 commit d34e40f

34 files changed

Lines changed: 1604 additions & 108 deletions

.coderabbit.yaml

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# CodeRabbit Configuration File
2+
# https://docs.coderabbit.ai/guides/configure-coderabbit
3+
4+
# 언어 설정
5+
language: ko
6+
7+
# 리뷰 설정
8+
reviews:
9+
# 자동 리뷰 활성화
10+
auto_review:
11+
enabled: true
12+
# draft PR도 리뷰
13+
drafts: false
14+
15+
# 리뷰 범위
16+
review_scope:
17+
# 변경된 파일만 리뷰
18+
changed_files_only: true
19+
# 테스트 파일 리뷰
20+
include_test_files: true
21+
22+
# 리뷰 품질
23+
review_quality:
24+
# 상세한 리뷰
25+
level: "detailed"
26+
# 코드 제안 포함
27+
code_suggestions: true
28+
# 보안 이슈 체크
29+
security_review: true
30+
# 성능 이슈 체크
31+
performance_review: true
32+
33+
# 리뷰 포맷
34+
review_format:
35+
# 코드 블록으로 제안
36+
suggestions_as_code: true
37+
# 우선순위 라벨
38+
use_priority_labels: true
39+
40+
# 파일 무시 설정
41+
ignore:
42+
- "*.lock"
43+
- "*.log"
44+
- ".next/**"
45+
- "node_modules/**"
46+
- "out/**"
47+
- "build/**"
48+
- "dist/**"
49+
- "coverage/**"
50+
- "public/**"
51+
- "*.config.js"
52+
- "*.config.mjs"
53+
- "*.config.ts"
54+
55+
# 체크 항목
56+
checks:
57+
# 코드 품질
58+
code_quality:
59+
enabled: true
60+
# 복잡도 체크
61+
complexity: true
62+
# 중복 코드 체크
63+
duplication: true
64+
# 네이밍 체크
65+
naming: true
66+
67+
# 보안
68+
security:
69+
enabled: true
70+
# 취약점 스캔
71+
vulnerability_scan: true
72+
73+
# 성능
74+
performance:
75+
enabled: true
76+
# 불필요한 렌더링 체크
77+
unnecessary_rerenders: true
78+
# 메모리 누수 체크
79+
memory_leaks: true
80+
81+
# 베스트 프랙티스
82+
best_practices:
83+
enabled: true
84+
# React 베스트 프랙티스
85+
react: true
86+
# TypeScript 베스트 프랙티스
87+
typescript: true
88+
# Next.js 베스트 프랙티스
89+
nextjs: true
90+
91+
# 접근성
92+
accessibility:
93+
enabled: true
94+
# WCAG 준수 체크
95+
wcag: true
96+
97+
# 자동 라벨링
98+
labeling:
99+
enabled: true
100+
# 파일 타입별 라벨
101+
file_based:
102+
- pattern: "**/*.tsx"
103+
label: "frontend"
104+
- pattern: "**/*.ts"
105+
label: "typescript"
106+
- pattern: "**/components/**"
107+
label: "component"
108+
- pattern: "**/app/**"
109+
label: "page"
110+
- pattern: "**/*.css"
111+
label: "style"
112+
- pattern: "**/README.md"
113+
label: "documentation"
114+
115+
# 변경 크기별 라벨
116+
size_based:
117+
enabled: true
118+
small: 50
119+
medium: 200
120+
large: 500
121+
122+
# 코멘트 설정
123+
comments:
124+
# 이슈 코멘트 활성화
125+
enabled: true
126+
# 중요도가 높은 것만 코멘트
127+
priority_threshold: "medium"
128+
# 인라인 코멘트
129+
inline_comments: true
130+
# 요약 코멘트
131+
summary_comment: true
132+
133+
# 학습 설정
134+
learning:
135+
# 프로젝트 컨텍스트 학습
136+
project_context: true
137+
# 코드 스타일 학습
138+
coding_style: true
139+
# 패턴 인식
140+
pattern_recognition: true
141+
142+
# 통합 설정
143+
integrations:
144+
# GitHub Actions 통합
145+
github_actions: true
146+
# Slack 알림 (선택사항)
147+
slack:
148+
enabled: false
149+
# webhook_url: ""
150+
151+
# 커스텀 규칙
152+
custom_rules:
153+
- name: "Pretendard 폰트 사용"
154+
pattern: "font-family.*Pretendard"
155+
message: "Pretendard 폰트를 사용하고 있습니다."
156+
severity: "info"
157+
158+
- name: "Tailwind 클래스 순서"
159+
pattern: "className.*flex.*bg-"
160+
message: "Tailwind 클래스를 권장 순서대로 정렬하세요."
161+
severity: "suggestion"
162+
163+
- name: "console.log 체크"
164+
pattern: "console\\.log"
165+
message: "프로덕션 코드에서 console.log를 제거하세요."
166+
severity: "warning"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## 설명
2+
<!-- 이슈에 대해 설명해주세요 -->
3+
4+
5+
## 상세 내용
6+
<!-- 상세한 내용을 작성해주세요 -->
7+
8+
9+
## 체크리스트
10+
<!-- 작업이 필요한 항목들을 나열해주세요 -->
11+
- [ ]
12+
- [ ]
13+
- [ ]

.github/pull_request_template.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## 작업 내용
2+
<!-- 이 PR에서 수행한 작업을 간단히 설명해주세요 -->
3+
4+
## 변경 사항
5+
<!-- 주요 변경 사항을 나열해주세요 -->
6+
-
7+
-
8+
-
9+
10+
## 스크린샷 (선택사항)
11+
<!-- UI 변경이 있다면 Before/After 스크린샷을 첨부해주세요 -->

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [develop, main]
6+
7+
jobs:
8+
lint-and-build:
9+
runs-on: ubuntu-latest
10+
11+
strategy:
12+
matrix:
13+
node-version: [20.x]
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Setup Node.js
20+
uses: actions/setup-node@v4
21+
with:
22+
node-version: ${{ matrix.node-version }}
23+
cache: 'npm'
24+
25+
- name: Install dependencies
26+
run: npm ci
27+
28+
- name: Run ESLint
29+
run: npm run lint
30+
31+
- name: Build project
32+
run: npm run build
33+
34+
- name: Upload build artifacts
35+
if: success()
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: build-output
39+
path: .next
40+
retention-days: 7

.github/workflows/coderabbit.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: CodeRabbit Review
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
7+
jobs:
8+
coderabbit:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: CodeRabbit Review
12+
uses: coderabbitai/coderabbit-action@v1
13+
with:
14+
# GitHub 토큰 (자동 제공)
15+
github-token: ${{ secrets.GITHUB_TOKEN }}
16+
# CodeRabbit API 키 (GitHub Secrets에 추가 필요)
17+
# coderabbit-api-key: ${{ secrets.CODERABBIT_API_KEY }}

.github/workflows/deploy.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Deploy
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
deploy:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v4
14+
15+
- name: Setup Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: '20.x'
19+
cache: 'npm'
20+
21+
- name: Install dependencies
22+
run: npm ci
23+
24+
- name: Build project
25+
run: npm run build
26+
env:
27+
NODE_ENV: production
28+
29+
# Vercel 배포 예시 (필요시 주석 해제)
30+
# - name: Deploy to Vercel
31+
# uses: amondnet/vercel-action@v25
32+
# with:
33+
# vercel-token: ${{ secrets.VERCEL_TOKEN }}
34+
# vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
35+
# vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
36+
# vercel-args: '--prod'
37+
38+
- name: Deploy notification
39+
run: echo "Deployment completed successfully!"

.prettierignore

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Dependencies
2+
node_modules
3+
4+
# Build outputs
5+
.next
6+
out
7+
dist
8+
build
9+
10+
# Logs
11+
*.log
12+
13+
# Environment files
14+
.env*
15+
16+
# Package manager
17+
package-lock.json
18+
yarn.lock
19+
pnpm-lock.yaml
20+
21+
# Git
22+
.git
23+
.gitignore
24+
25+
# Others
26+
.DS_Store
27+
coverage
28+
.vscode
29+
.idea

.prettierrc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"semi": true,
3+
"singleQuote": false,
4+
"tabWidth": 2,
5+
"trailingComma": "es5",
6+
"printWidth": 80,
7+
"arrowParens": "always",
8+
"endOfLine": "lf",
9+
"bracketSpacing": true,
10+
"jsxBracketSameLine": false,
11+
"useTabs": false
12+
}

.vscode/settings.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"editor.formatOnSave": true,
3+
"editor.defaultFormatter": "esbenp.prettier-vscode",
4+
"editor.codeActionsOnSave": {
5+
"source.fixAll.eslint": "explicit"
6+
},
7+
"[javascript]": {
8+
"editor.defaultFormatter": "esbenp.prettier-vscode"
9+
},
10+
"[javascriptreact]": {
11+
"editor.defaultFormatter": "esbenp.prettier-vscode"
12+
},
13+
"[typescript]": {
14+
"editor.defaultFormatter": "esbenp.prettier-vscode"
15+
},
16+
"[typescriptreact]": {
17+
"editor.defaultFormatter": "esbenp.prettier-vscode"
18+
},
19+
"[json]": {
20+
"editor.defaultFormatter": "esbenp.prettier-vscode"
21+
},
22+
"[css]": {
23+
"editor.defaultFormatter": "esbenp.prettier-vscode"
24+
}
25+
}

0 commit comments

Comments
 (0)