octxxiii
연결 중…
PROJECTS
May 12, 2026

May 12, 2026

DailyBrain

저장소: octxxiii/DailyBrain

DailyBrain - 매일 뇌 훈련 퀴즈 앱

📱 프로젝트 개요

DailyBrain는 사용자가 매일 10문제씩 퀴즈를 풀어 뇌를 훈련시킬 수 있는 완전 오프라인 Android 앱입니다. 광고 시청을 통해 추가 문제를 더 풀 수 있으며, 리더보드와 결과 공유 기능으로 경쟁과 바이럴 확산을 지원합니다.

주요 기능

  • 🎯 매일 새로운 퀴즈 10문제 제공
  • 30초 타임 어택: 문제당 30초 제한 시간으로 긴장감 있는 경험
  • 즉각적인 피드백: 정답/오답 확인 및 상세 해설 제공
  • 📊 상세 통계: 정답률, 연속 출석, 총 게임 수 추적
  • 🎁 보너스 퀴즈: 광고 시청으로 추가 5문제 제공 (무제한 반복 가능)
  • 🏆 로컬 리더보드: 주간/월간 순위로 경쟁하며 동기 부여
  • 📤 결과 공유: 아름다운 점수 이미지를 생성하여 소셜 미디어 공유
  • 🎯 데일리 챌린지: 매일 3개의 특별 챌린지로 보상 획득
  • 🔔 푸시 알림: 데일리 퀴즈 리마인더로 놓치지 않게 알림
  • 🔥 연속 출석 추적: 매일 플레이하여 Streak 유지
  • 🏅 성취 시스템: 다양한 성취 배지 획득
  • 🌙 다크 모드 지원: 눈이 편안한 다크 테마
  • 📱 완전 오프라인: 인터넷 없이도 언제 어디서나 플레이 가능

🛠 기술 스택

  • 언어: Kotlin 1.9.22
  • UI: Jetpack Compose 1.6+
  • 아키텍처: MVVM + Clean Architecture
  • DI: Hilt (Dagger)
  • 데이터베이스: Room 2.7
  • 백그라운드 작업: WorkManager 2.9
  • 네트워크: OkHttp 5.0
  • 광고: Google Mobile Ads SDK 23.x
  • 분석: Firebase Analytics + Remote Config
  • 최소 SDK: 24 (Android 7.0)
  • Target SDK: 35 (Android 15)

📁 프로젝트 구조

DailyBrain/
├── app/              # Android 앱 소스 코드
│   ├── data/         # 데이터 모델, DB, Repository
│   ├── domain/       # 비즈니스 로직 (UseCase)
│   ├── ui/           # UI 컴포넌트 및 화면
│   └── di/           # 의존성 주입
├── docs/             # 프로젝트 문서
│   ├── release/      # 출시 관련 문서
│   ├── setup/        # 설정 및 개발 가이드
│   ├── screenshots/  # 스크린샷 관련 문서
│   ├── admob/        # AdMob 설정 문서
│   └── play-console/ # Google Play Console 가이드
├── scripts/          # 자동화 스크립트
│   └── screenshots/  # 스크린샷 촬영 스크립트
├── screenshots/      # 앱 스크린샷 이미지
├── logs/             # 앱 로그 파일
└── README.md         # 프로젝트 개요

📚 문서 디렉토리

  • 출시 준비: docs/release/
  • Google Play Console 설정: docs/play-console/ (Step 1부터 시작)
  • 스크린샷 가이드: docs/screenshots/
  • AdMob 설정: docs/admob/
  • 개발 가이드: docs/setup/

자세한 내용은 각 디렉토리의 README.md를 참조하세요.

🚀 시작하기

1. 프로젝트 클론

git clone https://github.com/yourusername/DailyBrain.git
cd DailyBrain

2. Firebase 설정 (선택사항)

참고: 현재 버전은 완전 오프라인 작동하며 Firebase는 선택사항입니다.

Firebase를 사용하려면:

  1. Firebase Console에서 새 프로젝트 생성
  2. Android 앱 추가 (패키지명: com.dailybrain3.app)
  3. google-services.json 파일 다운로드
  4. app/ 디렉토리에 파일 복사

3. AdMob 설정

  1. AdMob Console에서 앱 등록
  2. 광고 단위 생성:
    • 배너 광고
    • 전면 광고
    • 보상형 전면 광고
  3. app/src/main/AndroidManifest.xml에 AdMob 앱 ID 설정:
<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-4947118780414885~9066800170"/>
  1. AdSystem.kt에 광고 단위 ID 설정

4. 퀴즈 데이터 설정

퀴즈 데이터는 앱 내부 assets 폴더에 저장되어 완전 오프라인으로 작동합니다:

  1. app/src/main/assets/quizzes.json 파일에 퀴즈 데이터 저장
  2. JSON 형식은 기존 샘플 데이터 참고
  3. 필요시 QuizRepository.kt에서 데이터 로딩 로직 수정

5. 빌드 및 실행

./gradlew assembleDebug
# 또는 Android Studio에서 Run 버튼 클릭

📢 광고 정책

광고 배치 규칙

위치광고 형식표시 시점빈도 제한
퀴즈 화면 하단배너항상 표시화면당 1개
10문제 완료 후전면 광고결과 화면 진입 시세션당 1회
추가 문제보상형 전면사용자 클릭 시무제한 (문제가 있는 한)

광고 정책 준수사항

  • ✅ 사용자 액션 이후에만 광고 표시
  • ❌ 광고 클릭 강요 금지
  • ✅ 명확한 광고 표시
  • ✅ 앱 실행 후 5분간 광고 없음
  • ❌ 반복적인 경로 금지
  • ❌ 과도한 광고 빈도 금지

🧪 테스트

광고 테스트

개발 중에는 테스트 광고 ID가 설정되어 있습니다:

  • 테스트 기기 등록하여 실제 광고 테스트
  • Firebase Test Lab에서 다양한 기기 테스트

오프라인 테스트

  1. 한 번 실행하여 퀴즈 로드 확인
  2. 비행기 모드 활성화
  3. 다시 실행하여 캐시된 퀴즈 확인

⚙️ 환경 설정

필요 요구사항

  • Android Studio Hedgehog 이상
  • JDK 11 이상
  • Android SDK 35

권한

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

📊 분석 이벤트

주요 사용자 액션 추적:

  • quiz_start: 퀴즈 시작
  • quiz_complete: 퀴즈 완료
  • ad_reward_earned: 보상 광고 시청 완료
  • extra_play_clicked: 추가 문제 버튼 클릭
  • share_result: 결과 공유
  • leaderboard_viewed: 리더보드 조회
  • challenge_completed: 데일리 챌린지 완료
  • achievement_unlocked: 성취 배지 획득

🎯 최신 업데이트 (v1.0.2)

Phase 1 기능 추가

  • 결과 공유 기능: 점수를 이미지로 생성하여 소셜 미디어 공유
  • 🏆 로컬 리더보드: 주간/월간 순위로 경쟁하며 동기 부여
  • 🔔 푸시 알림: WorkManager 기반 데일리 퀴즈 리마인더
  • 🎯 데일리 챌린지: 매일 3개의 특별 챌린지로 보상 획득

ASO 최적화

  • 📱 앱 이름 최적화: "DailyBrain - 매일 뇌 훈련 퀴즈"
  • 🔍 키워드 최적화: "퀴즈", "두뇌 훈련", "상식 퀴즈", "데일리 퀴즈" 등
  • 📝 앱 설명 개선: 핵심 기능 강조 및 사용자 가치 명확화

⚠️ 주의사항

  1. 광고 ID 변경: 프로덕션 배포 시 반드시 실제 광고 ID로 변경
  2. API 키 보안: Firebase 설정 파일은 공개 저장소에 커밋하지 않음
  3. 퀴즈 데이터: 앱 내부 assets에 저장된 퀴즈 데이터 관리
  4. 정책 준수: Google Play 정책 및 AdMob 정책 준수
  5. WorkManager: 푸시 알림을 위해 WorkManager 초기화 필요 (DailyBrainApplication에서 처리)

📄 라이선스

이 프로젝트는 MIT 라이선스에 따라 배포됩니다.

🤝 기여하기

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📧 문의

프로젝트 관련 문의사항은 Issues 섹션을 이용해주세요.