# Repository Guidelines

## 프로젝트 구조 및 모듈 구성
- `app/`: 메인 Android 애플리케이션 모듈.
- `app/src/main/java/`: Kotlin/Java 소스(Compose UI, DI, Room 등).
- `app/src/main/cpp/`: CMake 빌드(`CMakeLists.txt`)를 사용하는 네이티브 코드.
- `app/src/main/res/`: Android 리소스(레이아웃, 드로어블, 문자열).
- `app/src/main/assets/`: 앱 에셋(`raman_res.zip` 포함).
- `app/src/androidTest/java/`: 계측 테스트.
- `build/` 및 `app/build/`: Gradle 빌드 산출물.
- `gradle/` 및 `gradlew`: Gradle wrapper 및 버전 카탈로그.
- `keystore/`: 모듈에서 사용하는 디버그/릴리스 키스토어.

## 빌드, 테스트 및 개발 명령어
- `./gradlew build`: 전체 빌드(유닛 테스트 포함).
- `./gradlew assembleDebug`: 디버그 APK 빌드.
- `./gradlew assembleRelease`: 릴리스 APK 빌드(`keystore/` 사용).
- `./gradlew bundleRelease`: 릴리스 AAB 번들 생성.
- `./gradlew installDebug`: 연결된 기기/에뮬레이터에 디버그 빌드 설치.
- `./gradlew lint`: Android Lint 실행.
- `./gradlew connectedAndroidTest`: 기기/에뮬레이터에서 계측 테스트 실행.
- `./gradlew clean`: 빌드 산출물 삭제.

## 코딩 스타일 및 네이밍 규칙
- Kotlin/Java: Android 표준 스타일, 4칸 들여쓰기.
- 클래스/Composable: `PascalCase` (예: `MainViewModel`, `SettingsScreen`).
- 함수/변수: `camelCase` (예: `loadProfile`, `isLoading`).
- 리소스: `snake_case` (예: `ic_scan`, `screen_title`).
- 포맷터는 설정되어 있지 않으므로, 주변 코드 스타일에 맞춰 작성.

## 테스트 가이드
- 계측 테스트는 `app/src/androidTest/java/`에 위치.
- AndroidX 테스트 러너 + Espresso/Compose 테스트 API 사용.
- `./gradlew connectedAndroidTest`로 실행.

## 커밋 및 PR 가이드라인
- 이 워크스페이스에는 Git 히스토리가 없어 강제 커밋 규칙이 없음.
- 간결하고 명령형 커밋 메시지 권장 (예: `Fix scan timeout`).
- PR에는 변경 요약, 테스트 결과, UI 변경 시 스크린샷 포함.

## 보안 및 설정 팁
- `local.properties`에는 Android SDK 경로를 지정하며 커밋하지 않음.
- `keystore/`의 키스토어는 로컬 빌드용이며, 프로덕션 배포 시 교체 필요.
