감정을 기록하고, 마음을 들여다보는 AI 감정 일기 앱
MoodLog는 일상의 감정을 기록하고 분석하여 더 나은 자신을 만들어가는 여정을 돕는 Flutter 기반 크로스플랫폼 앱입니다.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 5단계 감정 선택으로 간편한 기록
- 이미지, 위치, 날씨 정보 자동 연동
- 태그 시스템으로 체계적인 분류
- Gemini AI가 제공하는 개인 맞춤형 위로와 격려
- 일기 내용을 분석한 공감적 응답
- 하루 1회 제한으로 특별함 유지
- GitHub 스타일 연간 활동 히트맵
- 감정 분포 및 트렌드 분석
- 연속 기록 달성 현황 추적
- 대표 감정 및 평균 점수 계산
- 3개 언어 지원: 한국어, 영어, 일본어
- 다양한 폰트 옵션 (프리텐다드, 이서윤체, 나눔손글씨 등)
- 라이트/다크 테마 자동 전환
- 로그인 불필요: 계정 생성 없이 바로 사용 시작
- 로컬 우선 아키텍처: 모든 데이터는 사용자의 기기에만 안전하게 저장
- 인터넷 연결 없이 사용: 오프라인 상태에서도 모든 기능 정상 작동
- Flutter - 크로스플랫폼 UI 프레임워크
- Dart - 프로그래밍 언어
- Provider - 상태 관리
- Go Router - 선언적 라우팅
- Drift (SQLite) - 로컬 데이터베이스
- Freezed - 객체 관련 유틸
- Google Gemini AI - AI 응답 생성
- Google Mobile Ads - 광고 수익화
- Firebase Analytics - 사용자 분석
- Image Picker - 갤러리 접근
MoodLog는 Clean Architecture와 MVVM 패턴을 적용하여 확장 가능하고 유지보수가 용이한 구조로 설계되었습니다.
lib/
├── core/ # 공통 모듈
│ ├── constants/ # 앱 전역 상수
│ ├── l10n/ # 다국어 지원
│ ├── services/ # 앱 전역 서비스 (로깅, Flavor 등)
│ ├── routing/ # 라우팅 설정
│ └── utils/ # 상태 없는 헬퍼 함수
├── data/ # 데이터 계층
│ ├── data_source/ # 로컬 데이터 소스 (Drift, SharedPreferences)
│ └── repositories/ # Repository 구현체
├── domain/ # 도메인 계층
│ ├── entities/ # 비즈니스 엔티티
│ ├── repositories/ # Repository 인터페이스
│ └── use_cases/ # 비즈니스 로직
└── presentation/ # 프레젠테이션 계층
├── screens/ # 각 화면(View)을 구성
│ ├── home/
│ ├── write/
│ └── ...
├── providers/ # 상태 관리 (ViewModel)
├── widgets/ # 공통 위젯
├── theme/ # 앱 테마
└── mixins/ # 공통 Mixin
- MVVM (Model-View-ViewModel) - UI와 비즈니스 로직 분리
- Repository Pattern - 데이터 소스 추상화
- UseCase Pattern - 비즈니스 로직 캡슐화
- Provider Pattern - 반응형 상태 관리
- 클린 아키텍처 위배 사항 수정 - 도메인 레이어에서 플러터를 참조하는 코드들과, 데이터 레이어에서 플러터를 참조하는 코드들 수정 예정
- Flutter SDK (3.0.0 이상)
- Dart SDK (3.0.0 이상)
- Android Studio / VS Code
- Firebase 프로젝트 설정
- 저장소 클론
git clone https://github.com/your-username/moodlog.git
cd moodlog- 의존성 설치
flutter pub get- Firebase 설정
# Firebase CLI 설치 후
firebase login
flutterfire configure- 코드 생성
# 한 번만 빌드
dart run build_runner build
# 변경사항 감지하여 자동 빌드
dart run build_runner watch
# 기존 생성된 파일 삭제 후 재 빌드
dart run build_runner build --delete-conflicting-outputs- 앱 실행
flutter run# Android APK
flutter build apk --release
# iOS IPA
flutter build ios --release
# Web
flutter build web| 홈 | 일기 작성 | 통계 |
|---|---|---|
| 감정 현황과 최근 기록 | AI 위로 메시지 포함 | 연간 활동 히트맵 |
| 한국어 | English | 日本語 |
|---|---|---|
| 기본 언어 | 글로벌 사용자 | 일본 사용자 |
MoodLog 프로젝트에 기여해주시는 모든 분들을 환영합니다!
- 이슈 생성 또는 기존 이슈 확인
- Fork 후 feature 브랜치 생성
- 코드 작성 및 테스트
- Pull Request 생성
- 코드 스타일:
dart format및dart analyze준수 - 커밋 메시지: Conventional Commits 형식
- 테스트: 새로운 기능은 테스트 코드 포함
- 개발자: logmind
- 이메일: log.mind.365@gmail.com
- GitHub: @kidboi666
- Flutter 팀의 훌륭한 프레임워크
- Firebase의 강력한 백엔드 서비스
- Material Design의 아름다운 디자인 시스템
- 모든 오픈소스 기여자들
MoodLog와 함께 당신의 감정 여행을 시작해보세요! 🌈





