Skip to content

DearMeProject/DearMe-BE

Repository files navigation

DearMe-BE

나의 하루에, AI가 건네는 따뜻한 한마디 🌙

📍 프로젝트 배경

  • 프로젝트 명: Dear Me
  • 목적: 사용자의 감정 기록 및 AI 상담 기능을 제공하는 감정 케어 웹 서비스
DearMe배경(낮) DearMe배경(밤)

🖥️ Backend

김은서

⚙️ 기술 스택

  • Backend: Spring Boot, JPA, MySQL
  • Infra: EC2, Docker, GitHub Actions
  • AI Integration: Gemini API

🌿 기능 목록

1️⃣ 메모 작성 (POST /api/memos)

  • 사용자는 감정 이모지, 감정 점수, 제목, 내용을 입력할 수 있다.
  • 입력값 검증 (date, emoji, emotionScore, title, content)
  • 같은 날짜에도 여러 개의 메모를 작성할 수 있다
  • DB 저장 후 생성된 memoId 반환
  • 정상 시 201 Created, 유효성 오류 시 400 Bad Request반환

2️⃣ 전체 메모 리스트 조회 (GET /api/memos)

  • 사용자의 모든 메모를 X-Client-Id 기준으로 조회한다.
  • memoId, date, emoji, title, emotionScore 반환
  • 성공 시 200 OK, 클라이언트 ID 누락 시 400 Bad Request반환

3️⃣ 특정 메모 상세 조회 (GET /api/memos/{memoId})

  • 경로의 memoID를 검증한다.
  • 메모가 없을 시 404 Not Found반환
  • 요청한 사용자의 X-Client-Id와 일치하지 않으면 403 Forbidden반환
  • 성공 시 200 OKcontent 반환

4️⃣ AI 감정 공감 답장 생성 (POST /api/memos/counsel)

  • 사용자가 선택한 메모 ID 배열을 보낸다.
  • 평균 감정 점수(stressScore) 계산
  • Gemini AI API 호출 → AI 응답 생성
  • 실패 시 기본 문구 반환

⚙️ API 명세서

기능 Method Endpoint 설명
메모 작성 POST /api/memos 감정 메모 생성
전체 조회 GET /api/memos 모든 메모 조회
상세 조회 GET /api/memos/{memoId} 특정 메모 상세 조회
AI 상담 POST /api/memos/counsel AI 감정 답장 생성

🧪 테스트 전략 (TDD)

  1. Service 단위 테스트 (비즈니스 로직)
  2. Controller 테스트 (MockMvc)
  3. PromptBuilder 테스트
  4. 예외 및 경계 테스트 추가

💡 컨벤션

  • Commit: 타입(기능명): 한 줄 요약
  • Branch: <타입>/<#이슈넘버>-<작업명>
  • PR Template: 기능 단위 명세 중심으로 작성
  • Code Style: 15라인 이하 함수, SRP 원칙 준수

About

나의 하루에, AI가 건네는 따뜻한 한마디 🌙

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published