Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
language: "ko-KR"

reviews:
profile: "chill"
high_level_summary: true
poem: false

auto_review:
enabled: true
drafts: false
base_branches:
- "main"
- "develop"

request_changes_workflow: false

path_filters:
- "src/**"
- "!dist/**"
- "!pnpm-lock.yaml"
- "!build/**"
- "!**/*.lock"

path_instructions:
- path: "src/**"
instructions: >
다음 핵심 영역에 집중하여 리뷰한다.
1. 상태 관리: 서버 상태(React Query)와 전역 상태(Zustand)의 분리 여부 확인. useMutation, useQuery의 올바른 사용 확인.
2. 구조와 책임 분리: 페이지에 비즈니스 로직이 과도하지 않은지 확인. 커스텀 훅으로의 분리 여부 검토.
3. Hook 사용: useEffect 의존성 배열 및 불필요한 사용 검토. useCallback, useMemo의 적절한 사용.
4. 타입 안정성: TypeScript 타입의 명확성 확인. any 사용 지양, 제네릭 활용 검토.
5. 성능: 불필요한 리렌더링 체크. React.memo, useCallback 사용 검토.
6. 에러 처리: API 실패 대응 및 사용자 피드백 적절성 검토. 에러 바운더리 사용 확인.
7. 접근성: 시맨틱 HTML, ARIA 속성 사용 확인.

chat:
auto_reply: true

tone_instructions: >
모든 리뷰는 반드시 한국어로, 팀원들에게 말하듯이 작성한다.
구조, 상태 관리, 접근성, 성능, 안정성, 버그 중심으로 리뷰한다.
피드백은 명확하고 구체적으로 작성하며, 문제의 원인과 개선 방법을 함께 제시한다.
차분하고 전문적인 톤을 유지하되, 이해하기 쉽게 전달한다.
66 changes: 66 additions & 0 deletions docs/code-review-guideline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Code Review Guideline

## CodeRabbit 도입 의도

- **일관된 코드 품질 유지**

개인의 리뷰 스타일이나 컨디션에 영향을 받지 않고, 설정된 기준에 따라 일관된 리뷰를 제공하기 위함입니다.

- **리뷰 효율화**

단순 문법 오류, 컨벤션, 구조적 패턴 검증은 AI가 선행하고, 팀원들은 비즈니스 로직과 설계 판단에 더 집중할 수 있도록 합니다.

 

## 팀 코드 리뷰 원칙

우리 팀은 다음 가치를 최우선으로 생각하며 코드를 작성하고 리뷰합니다.

- 서버 상태와 UI 상태의 명확한 분리
- 책임과 역할이 분명한 구조 설계
- 타입 안정성을 통한 예측 가능한 코드
- 불필요한 복잡성 최소화
- 장기 유지보수를 고려한 구현

 

## 핵심 리뷰 영역

위 코드 리뷰 원칙을 바탕으로, CodeRabbit은 다음 핵심 영역을 중심으로 리뷰합니다.

### 1. 상태 관리

- 서버 상태(React Query)와 전역 상태(Zustand)의 분리 여부 확인
- `useQuery`, `useMutation`의 올바른 사용 여부 검토

### 2. 구조와 책임 분리

- 페이지에 비즈니스 로직이 과도하게 포함되지 않았는지 확인
- 커스텀 훅으로의 분리 여부 검토

### 3. Hook 사용

- `useEffect` 의존성 배열의 정확성 확인
- 불필요한 Hook 사용 여부 검토
- `useCallback`, `useMemo`의 적절한 사용 여부 확인

### 4. 타입 안정성

- TypeScript 타입이 명확하게 정의되어 있는지 확인
- `any` 사용 지양
- 제네릭 활용 검토

### 5. 성능

- 불필요한 리렌더링 체크
- `React.memo`, `useCallback` 등의 적절한 사용 여부 검토

### 6. 에러 처리

- API 실패 대응이 적절히 구현되어 있는지 확인
- 사용자 피드백 적절성 검토
- Error Boundary 사용 확인

### 7. 접근성

- 시맨틱 HTML, ARIA 속성 사용 확인