AI 기반 감정 케어 다이어리
당신의 일기를 분석하여 감정 상태를 파악하고,
따뜻한 위로의 메시지와 맞춤형 행동 지침을 제공합니다.
로컬 데이터베이스(SQLite)에 안전하게 저장되며, 날짜별로 일기를 관리하고 조회할 수 있습니다.
Groq API (Llama 3.3)를 활용하여 실시간에 가까운 감정 분석을 제공합니다. 캐릭터 선택에 따라 공감 톤이 달라집니다.
감정 추이 차트, 감정 정원(🌱→🌻), 키워드 태그 클라우드로 나의 감정 패턴을 시각화합니다.
AI가 분석한 감정 상태에 기반하여 공감 메시지와 맞춤형 행동 지침을 제안합니다.
모든 일기 데이터는 로컬 기기에만 저장되어 개인 정보가 안전하게 보호됩니다.
320dp~600dp+ 다양한 화면 크기에 최적화된 반응형 디자인으로 모든 기기에서 편안하게 사용할 수 있습니다.
4자리 PIN + SHA-256 암호화로 민감한 일기를 안전하게 보호합니다. 인증된 세션에서만 접근 가능하며 통계에서 완전히 제외됩니다.
v1.4.53까지의 개선 사항을 소개합니다. Self-Encouragement 시간대별 메시지 기능 완성(timeAware 모드 구현 + UI), dead code 제거에 의한 코드 품질 향상, 테스트 커버리지 확대 등이 이루어졌습니다.
Self-Encouragement 시스템에 시간대 기반 메시지 필터링을 구현했습니다. MessageRotationMode.timeAware 선택 시 morning(5-11h)/afternoon(12-17h)/evening(18-4h)로 분류하여 시간대에 맞는 메시지를 우선 전달합니다. 매칭 메시지 없을 시 전체 풀 폴백을 포함한 안전장치도 설계했습니다. 설정 UI에 '시간대 맞춤 선택' RadioListTile을 추가하고, 메시지 입력 다이얼로그에 ChoiceChip 4종(전체/아침/오후/저녁) 시간대 태깅 UI를 구현했습니다.
메시지 선택 로직이 UseCase와 Service 두 곳에 중복되어 있던 구조적 문제를 해결했습니다. GetNextSelfEncouragementMessageUseCase + 테스트 총 485줄을 삭제하고, NotificationSettingsService를 유일한 메시지 선택 경로로 통일했습니다. 이로써 emotionAware/timeAware 로직 변경 시 단일 수정 지점만 관리하면 되는 구조가 확립됐습니다.
selectMessage() 단위 테스트 6케이스(시간대 필터링 경계값, emotionAware 가중치 검증)와 MessageInputDialog 위젯 테스트 17건(timeCategory 선택/해제, 수정 모드 프리로드, record 반환값 검증)을 추가했습니다. 전체 테스트 1,633건 통과, flutter analyze 0 errors를 유지합니다.
EmpathyMessage가 항상 SingleChildScrollView 안에 렌더링됨에도 maxLines: 4 + AnimatedCrossFade + TextPainter 측정으로 내부에서 truncation을 유발했습니다. 렌더링 컨텍스트를 분석해 불필요한 상태 관리를 전면 제거하고 StatelessWidget으로 전환했습니다. 코드 90줄 → 62줄, HapticFeedback·AppDurations import 삭제.
4개 독립 원인이 동시에 작용한 복합 버그를 체계적으로 분석하고 수정했습니다. (D) 정규식 [,의은을이]? → (?:[,의은을이]|에게|께)? alternation. (C) getRandomReminderTitle() userName 인자 전파 누락. (B) valueOrNull AsyncLoading → await .future. (A) hasPlaceholder 검사로 bake-in 리터럴 강제 재스케줄.
온보딩
일기 목록
일기 작성
마음 달력
감정 추이
키워드 분석
AI 캐릭터
설정
MindLog와 함께 나의 감정을 기록하고 이해해보세요.