Files
lunchpick/CLAUDE.md
JiWoong Sul 42c609c57a chore(config): 프로젝트 설정 및 문서 개선
## CLAUDE.md 전면 개편
- 글로벌 규칙(~/.claude/CLAUDE.md)과 중복되는 일반 개발 가이드라인 제거
- 프로젝트 특화 정보만 유지 (331줄 → 100줄, 약 70% 감소)
- 추가된 내용:
  - 앱 이름, 패키지명, SDK 버전 명시
  - 핵심 기술 스택 테이블 (Riverpod, Hive, go_router, Dio 등)
  - 실제 프로젝트 디렉토리 구조 문서화
  - 주요 도메인 엔티티 설명 (Restaurant, VisitRecord 등)
  - 프로젝트 전용 빌드 명령어
- AGENTS.md 참조 링크 추가

## Android 릴리즈 서명 설정
- build.gradle.kts에 릴리즈 signingConfig 추가
- 키스토어: doc/key/lunchpick-release.keystore
- release 빌드 타입에 릴리즈 서명 적용
- 불필요한 TODO 주석 제거

## 개인정보 처리방침 문구 수정
- "네이버 지도 연동" → "네이버 검색 연동" (실제 동작 반영)
- "네이버 지도에서 가져온" → "네이버 URL에서 가져온" (정확한 표현)
- 미사용 Open API 관련 문구 제거
2025-12-08 18:15:22 +09:00

101 lines
3.1 KiB
Markdown

# LunchPick - 점심 메뉴 추천 앱
> 글로벌 규칙(~/.claude/CLAUDE.md) 상속. 상세 가이드는 [AGENTS.md](AGENTS.md) 참조.
## 프로젝트 개요
- **앱 이름**: 오늘 뭐 먹Z?
- **패키지**: `com.naturebridgeai.lunchpick`
- **SDK**: Flutter 3.8.1+ / Dart 3.8.1+
## 핵심 기술 스택
| 분류 | 패키지 |
|------|--------|
| 상태관리 | Riverpod + riverpod_generator |
| 로컬저장 | Hive + hive_generator |
| 네비게이션 | go_router |
| 네트워크 | Dio + dio_cache_interceptor |
| 위치/권한 | geolocator, permission_handler |
| 광고 | google_mobile_ads |
## 프로젝트 구조
```text
lib/
├── core/
│ ├── constants/ # app_constants, app_colors, api_keys
│ ├── network/ # network_client, interceptors
│ ├── services/ # permission, geocoding, ad, bluetooth, notification
│ ├── errors/ # app_exceptions, network_exceptions
│ └── widgets/ # 공통 위젯 (loading, error, empty_state)
├── data/
│ ├── api/ # naver_api_client, naver GraphQL/LocalSearch
│ ├── datasources/ # local, remote (naver_html_parser 등)
│ ├── repositories/ # *_repository_impl
│ └── models/ # DTO, Hive adapters
├── domain/
│ ├── entities/ # Restaurant, VisitRecord, UserSettings, WeatherInfo
│ ├── repositories/ # 인터페이스 정의
│ └── usecases/ # 비즈니스 로직
└── presentation/
├── providers/ # Riverpod providers
├── view_models/ # 화면 상태 관리
└── pages/ # splash, main, random_selection, restaurant_list,
# calendar, settings, share
```
## 주요 도메인 엔티티
- `Restaurant`: 음식점 정보 (이름, 카테고리, 위치, 영업시간 등)
- `VisitRecord`: 방문 기록
- `RecommendationRecord`: 추천 기록
- `UserSettings`: 사용자 설정 (반경, 카테고리 필터 등)
- `WeatherInfo`: 날씨 정보 (추천 알고리즘 활용)
## 필수 명령어
```bash
# 의존성 설치
flutter pub get
# 코드 생성 (Hive adapters, Riverpod, JSON)
dart run build_runner build --delete-conflicting-outputs
# 개발 중 자동 생성
dart run build_runner watch --delete-conflicting-outputs
# 분석 & 테스트
flutter analyze
flutter test
flutter test test_hive # Hive 변경 시
# 릴리즈 빌드
flutter build appbundle --release
```
## Agent 응답 형식
```text
[Model Name] - [Agent Name]. I have reviewed all the following rules: [categories]. Proceeding with the task. Master!
```
### Available Agents
| Agent | 용도 |
|-------|------|
| Direct Implementation | 직접 구현 |
| flutter-ui-designer | UI/UX 디자인 |
| flutter-architecture-designer | 아키텍처 설계 |
| flutter-network-engineer | 네트워크/API |
| flutter-qa-engineer | QA/테스트 |
| app-launch-validator | 출시 검증 |
| aso-optimization-expert | ASO 최적화 |
## 주의사항
- `api_keys.dart`는 커밋 금지 (로컬 생성)
- Android/iOS 빌드 설정 변경 시 승인 필요
- Hive 스키마 변경 시 마이그레이션 고려
- 네이버 API 호출 시 캐시 정책 준수