---
description: "코드 리뷰 체크리스트 - 사이드이펙트, 아키텍처, 타입안전성, React Native 특화 검토"
alwaysApply: true
---
# 코드 리뷰 프롬프트 템플릿
이 템플릿은 코드 리뷰 시 체계적으로 검토하기 위한 가이드입니다.
## 리뷰 전 확인사항
### 1. 사이드이펙트 점검
- [ ] 변경된 코드가 기존 기능에 영향을 주는가?
- [ ] 다른 모듈/컴포넌트와의 의존성이 있는가?
- [ ] 전역 상태나 캐시에 영향을 주는가?
- [ ] API 호출 패턴이 변경되었는가?
### 2. 아키텍처 및 구조
- [ ] MVVM 패턴을 올바르게 따르고 있는가?
- [ ] Feature-based 구조를 준수하고 있는가?
- [ ] 디렉토리 구조가 프로젝트 규칙에 맞는가?
- `features/`: 도메인별 기능
- `services/`: HTTP 호출만 담당
- `components/`: 공용 UI 컴포넌트
- `hooks/`: 범용 훅
- `stores/`: 전역 Zustand store
### 3. TypeScript 타입 안전성
- [ ] 모든 타입이 명확히 정의되어 있는가?
- [ ] `any` 타입 사용이 최소화되어 있는가?
- [ ] 인터페이스와 타입이 적절히 분리되어 있는가?
- [ ] 타입 정의가 `src/types/` 또는 feature 내 `types.ts`에 있는가?
### 4. 코드 스타일 및 품질
- [ ] 네이밍 컨벤션이 준수되는가?
- 컴포넌트: PascalCase
- 함수/변수: camelCase
- 상수: UPPER_SNAKE_CASE
- [ ] ESLint 규칙을 준수하는가?
- [ ] 불필요한 주석이나 코드가 없는가?
- [ ] 함수와 기능 단위로 적절한 주석이 있는가?
### 5. React Native 특화 검토
- [ ] 네비게이션 타입 안전성이 보장되는가?
- `RootStackParamList` 타입 활용
- 화면 전환 시 적절한 파라미터 전달
- [ ] 상태 관리가 적절한가?
- 로컬 상태: useState, useEffect
- 서버 상태: TanStack Query (Query Key 규칙 준수: `['domain','resource',params]`)
- 전역 UI 상태: Zustand (feature별 store 분리)
- [ ] 스타일링이 StyleSheet.create()를 사용하는가?
- 일관된 색상과 스페이싱 활용
- 반응형 디자인 고려
- [ ] 성능 최적화가 고려되었는가?
- 불필요한 리렌더링 방지
- FlatList 사용 (리스트 성능)
- 이미지 최적화 (imageCacheService 활용)
- 캐시 정책 준수 (ETag·LRU·per-room)
### 6. 데이터 관리
- [ ] API 전용 데이터 처리 규칙을 준수하는가?
- 하드코딩된 데이터 배열/객체 사용 금지
- 기본 데이터, 예시 데이터, 더미 데이터 사용 금지
- 모든 서버 데이터는 API를 통해서만 처리
- [ ] AsyncStorage 사용이 적절한가?
- 사용자 데이터만 로컬 저장
- 서버 데이터는 API에서만 가져오기
- [ ] 에러 처리가 적절한가?
- try-catch 블록으로 모든 비동기 작업 감싸기
- 사용자 친화적인 에러 메시지
### 7. 성능 및 최적화
- [ ] 불필요한 리렌더링이 없는가?
- [ ] 메모이제이션이 필요한 부분에 적용되었는가?
- [ ] 네트워크 호출이 최적화되어 있는가?
- [ ] 이미지/미디어 최적화가 고려되었는가?
### 8. 테스트 및 QA
- [ ] 주요 기능에 대한 테스트가 있는가?
- [ ] 에러 케이스가 처리되었는가?
- [ ] 엣지 케이스가 고려되었는가?
- [ ] 인증 상태 동기화 확인 (필요시)
- `AuthBridge`가 AsyncStorage 하이드레이션 후 동기화
- `hydrated` 전 렌더 금지
- [ ] Screen이 ViewModel 하나만 구독하는지 확인
- [ ] Query Key 규칙 일관성 확인 (`['domain','resource',params]`)
## 리뷰 체크리스트
### 필수 항목 (Critical)
- [ ] 사이드이펙트 없음
- [ ] 타입 안전성 보장
- [ ] 아키텍처 패턴 준수
- [ ] API 데이터 처리 규칙 준수
### 중요 항목 (Important)
- [ ] 코드 스타일 일관성
- [ ] 성능 최적화
- [ ] 에러 처리
- [ ] 주석 및 문서화
### 개선 항목 (Nice to have)
- [ ] 테스트 코드
- [ ] 추가 최적화
- [ ] 코드 리팩토링
## 리뷰 피드백 형식
### 발견된 이슈
1. **심각도**: Critical / Important / Minor
2. **위치**: 파일 경로 및 라인 번호
3. **문제점**: 구체적인 문제 설명
4. **개선 방안**: 제안하는 해결 방법
5. **우선순위**: 높음 / 중간 / 낮음
### 예시
```
**이슈 #1**: 사이드이펙트 가능성
- **심각도**: Important
- **위치**: `src/features/chat/store.ts:45`
- **문제점**: 전역 store 수정 시 다른 feature에 영향 가능
- **개선 방안**: 로컬 상태로 변경 또는 feature별 store 분리
- **우선순위**: 높음
```
## 리뷰 완료 체크리스트
- [ ] 모든 Critical 이슈 해결
- [ ] Important 이슈 검토 완료
- [ ] 코드 스타일 일관성 확인
- [ ] 테스트 통과 확인
- [ ] 문서화 완료