현역 군인이 현재 위치나 방문 예정 지역을 기준으로 신뢰할 수 있는 군인 할인·우대 혜택을 발견하는 서비스입니다.
- Android 네이티브 MVP: 구현됨
- 병무청 나라사랑가게 OpenAPI 동기화: 구현됨
- 네이버 지도 SDK 및 현재 위치 탐색: 구현됨
- 수도권 자체 조사 데이터 484건: 앱 내장
- 로그인·찜·관리자 CRUD: 기기 로컬 MVP로 구현됨
- 서버·iOS: 책임 영역만 정의했으며 아직 구현 전
MILIMAP/
├─ apps/
│ ├─ android/ # Kotlin + Jetpack Compose Android 앱
│ └─ ios/ # 향후 SwiftUI 앱
├─ services/
│ └─ api/ # 향후 인증·혜택·찜·관리자 서버
├─ packages/
│ └─ contracts/ # 앱과 서버가 공유할 API 계약·스키마
├─ data/
│ └─ seed/ # 검증 가능한 원천/초기 혜택 데이터
├─ tools/
│ └─ data/ # 데이터 변환·검증 도구
├─ docs/ # 아키텍처·로컬 실행·보안 문서
└─ infra/ # 향후 배포·클라우드 설정
이 구조에서는 제품별 실행 코드를 apps, 백엔드 실행 코드를 services, 여러 클라이언트가 공유하는 계약을 packages, 운영 데이터를 data에 분리합니다.
필요 환경:
- Android Studio 2026.1.1 이상 권장
- JDK 17
- Android SDK 35
- Android 8.0(API 26) 이상 기기 또는 에뮬레이터
실행 순서:
- 저장소를 복제합니다.
- Android Studio에서
apps/android폴더를 엽니다. apps/android/local.properties.example을local.properties로 복사합니다.- 로컬 Android SDK 경로를 설정합니다.
- 실제 네이버 지도와 병무청 API를 사용할 경우 본인의 API 키를 추가합니다.
- Gradle Sync 후
app구성을 실행합니다.
sdk.dir=C\:\\Users\\YOUR_NAME\\AppData\\Local\\Android\\Sdk
NAVER_MAP_NCP_KEY_ID=YOUR_NCP_KEY_ID
MMA_SERVICE_KEY=YOUR_DATA_GO_KR_SERVICE_KEYAPI 키가 없어도 수도권 내장 데이터와 대체 지도로 앱을 실행할 수 있습니다. 자세한 내용은 로컬 개발 가이드와 Android 앱 문서를 참고하세요.
Windows PowerShell:
cd apps/android
.\gradlew.bat lintDebug testDebugUnitTest assembleDebugmacOS/Linux:
cd apps/android
./gradlew lintDebug testDebugUnitTest assembleDebugAndroid 또는 CI 파일을 변경한 Pull Request에는 같은 검사가 자동 실행되고, 성공한 디버그 APK가 GitHub Actions artifact로 저장됩니다.
main은 검증된 안정 버전,dev는 기본 통합 개발 브랜치입니다.main과dev에는 직접 커밋하거나 푸시하지 않습니다.- 작업 브랜치는 최신
dev에서 만들고 Pull Request를 통해dev에 병합합니다. - 안정 버전 반영은
dev에서main으로 향하는 Pull Request로 진행합니다. - 예:
feature/android-map-search,fix/android-location,data/seoul-verification,docs/local-setup,chore/collaboration-foundation. - API 키,
local.properties, 서명 키는 절대 커밋하지 않습니다. - 혜택 데이터 변경에는 출처 URL과 확인일을 함께 기록합니다.
- 아직 구현되지 않은 영역은 해당 디렉터리의 README에서 범위를 먼저 합의합니다.
자세한 규칙은 CONTRIBUTING.md를 참고하세요.