flowchart TB
subgraph Client["클라이언트"]
A[React App] --> B[API Client]
end
subgraph Server["백엔드 서버"]
C[Spring Boot] --> D[Service Layer]
D --> E[Repository Layer]
end
subgraph AI["AI 서비스"]
F[Sentiment Analyzer]
G[GPT Integration]
end
subgraph Storage["저장소"]
H[(MySQL)]
I[(Redis Cache)]
end
B -->|REST API| C
D --> F
D --> G
E --> H
C --> I
sequenceDiagram
participant U as 사용자
participant A as App
participant S as Server
participant AI as AI Service
U->>A: 일기 작성
A->>S: POST /api/diary
S->>AI: 감정 분석 요청
AI-->>S: 감정 점수 반환
S-->>A: 저장 완료 + 분석 결과
A-->>U: 결과 표시
기능 상세:
- 📝 일기 작성 (마크다운 지원)
- 🎨 감정 선택 (8가지 기본 감정)
- 📷 이미지 첨부
- 🏷️ 태그 추가
📊 주간 리포트
이번 주 감정 요약:
- 월~화: 스트레스 지수 높음 (업무 관련)
- 수~목: 점진적 회복
- 금~일: 긍정적 감정 우세
💡 AI 제안:
"이번 주 수요일부터 감정이 회복되기 시작했네요.
수요일에 어떤 일이 있었는지 돌아보면
스트레스 해소 방법을 찾는 데 도움이 될 수 있습니다."
erDiagram
User ||--o{ Diary : writes
Diary ||--o{ Emotion : has
Diary ||--o{ Tag : tagged
User ||--o{ EmotionStat : generates
User {
Long id PK
String email
String password
String nickname
DateTime createdAt
}
Diary {
Long id PK
Long userId FK
String content
String imageUrl
DateTime date
DateTime createdAt
}
Emotion {
Long id PK
Long diaryId FK
String type
Float score
}
Tag {
Long id PK
Long diaryId FK
String name
}
EmotionStat {
Long id PK
Long userId FK
Date date
Json dailySummary
}
gantt
title Emotion Diary 개발 로드맵
dateFormat YYYY-MM
section Phase 1
기본 CRUD 기능 :done, 2026-01, 2026-02
인증 시스템 :done, 2026-02, 2026-03
section Phase 2
감정 분석 통합 :active, 2026-03, 2026-04
대시보드 구현 :2026-04, 2026-05
section Phase 3
AI 피드백 기능 :2026-05, 2026-06
모바일 반응형 :2026-06, 2026-07
section Phase 4
PWA 지원 :2026-07, 2026-08
소셜 기능 :2026-08, 2026-09