## 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 관련 문구 제거
101 lines
3.1 KiB
Markdown
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 호출 시 캐시 정책 준수
|