나의 하루에, AI가 건네는 따뜻한 한마디 🌙
- 프로젝트 명: Dear Me
- 목적: 사용자의 감정 기록 및 AI 상담 기능을 제공하는 감정 케어 웹 서비스
![]() |
|---|
| 김은서 |
- Backend: Spring Boot, JPA, MySQL
- Infra: EC2, Docker, GitHub Actions
- AI Integration: Gemini API
- 사용자는 감정 이모지, 감정 점수, 제목, 내용을 입력할 수 있다.
- 입력값 검증 (
date,emoji,emotionScore,title,content) - 같은 날짜에도 여러 개의 메모를 작성할 수 있다
- DB 저장 후 생성된
memoId반환 - 정상 시
201 Created, 유효성 오류 시400 Bad Request반환
- 사용자의 모든 메모를
X-Client-Id기준으로 조회한다. -
memoId,date,emoji,title,emotionScore반환 - 성공 시
200 OK, 클라이언트 ID 누락 시400 Bad Request반환
- 경로의 memoID를 검증한다.
- 메모가 없을 시
404 Not Found반환 - 요청한 사용자의
X-Client-Id와 일치하지 않으면403 Forbidden반환 - 성공 시
200 OK및content반환
- 사용자가 선택한 메모 ID 배열을 보낸다.
- 평균 감정 점수(
stressScore) 계산 - Gemini AI API 호출 → AI 응답 생성
- 실패 시 기본 문구 반환
| 기능 | Method | Endpoint | 설명 |
|---|---|---|---|
| 메모 작성 | POST | /api/memos |
감정 메모 생성 |
| 전체 조회 | GET | /api/memos |
모든 메모 조회 |
| 상세 조회 | GET | /api/memos/{memoId} |
특정 메모 상세 조회 |
| AI 상담 | POST | /api/memos/counsel |
AI 감정 답장 생성 |
- Service 단위 테스트 (비즈니스 로직)
- Controller 테스트 (MockMvc)
- PromptBuilder 테스트
- 예외 및 경계 테스트 추가
- Commit:
타입(기능명): 한 줄 요약 - Branch:
<타입>/<#이슈넘버>-<작업명> - PR Template: 기능 단위 명세 중심으로 작성
- Code Style: 15라인 이하 함수, SRP 원칙 준수
