📘 Mori 개발일지 보고서 - 2025-07-07
작업개요
금일 작업은 ResultDaily.jsx
를 중심으로, OpenAI GPT 응답을 구조화하여 정확히 UI에 전달/표시되도록 개선하는 데 집중되었음.
감정 분석 결과, 피드백 메시지, 행동 추천 항목이 명확히 구분되어 시각적으로 전달되도록 컴포넌트 리팩토링 및 파싱 로직 개선이 진행됨.
🛠 주요 수정 및 구현 사항 (파일별 분석)
1. src/lib/prompts.js
- ✅
📝 행동 추천:
섹션 추가: GPT가 구조적으로 응답할 수 있도록 명시 - ✅ 피드백 문구를 "한마디"로 명확히 지정하여 응답 혼동 방지
- ✅ 형식이 일관되도록
⚠️ 출력 형식을 지켜주세요
명시하여 모델 출력 안정성 향상
📌 의도: GPT가 불안정한 문장 출력을 하는 경우가 있어, 구조 고정을 통해 파싱 오류를 줄이기 위함
2. src/lib/openai.js
DAILY_SUMMARY_PROMPT
를 시스템 메시지로 전달- 다음 항목을 정규표현식으로 파싱:
- 📘 요약 →
summary
- 💬 한마디 →
feedback
- ❤️ 감정 →
emotion
(텍스트 형태) - 📝 행동 추천 →
actions[]
리스트로 분리
- 📘 요약 →
// 행동 추천 리스트 분리
actions: actionMatch
? actionMatch[1]
.split(/[.,ㆍ•·]/)
.map((s) => s.trim())
.filter((s) => s.length > 1)
: [],
📌 의도: 마침표나 구분 기호가 혼용될 수 있으므로 여러 패턴을 허용함.
3. src/pages/DiaryWrite.jsx
gptResponse.actions
를 누락 없이navigate()
에 전달하도록 수정navigate("/result-daily", {{ emotions: parsedEmotions, feedback, actions: gptResponse.actions, summary, }});
- 불필요해진
extractRecommendations()
함수 제거
📌
extractRecommendations()
는 이전 구조(피드백에서 행동 추출)에선 필요했으나
GPT 응답에📝 행동 추천:
이 명시되면서 구조적으로 불필요해짐
4. src/pages/ResultDaily.jsx
- 한마디(💬) 영역에 앱 아이콘 삽입 (
logo512.png
) - 행동 추천 타이틀에 🌿 이모지 삽입
- ✅ 아이콘을 리스트로 표현
<ul className="text-sm space-y-1">
{{actions.map((a, idx) => (
<li key={{idx}} className="flex items-start gap-2">
<span className="text-green-500">✅</span>
<span>{{a}}</span>
</li>
))}}
</ul>
📌 ✅ 아이콘은 사용자의 실행 가능성(체크, 완료)을 시각적으로 암시하기 위함
5. src/lib/emotionColors.js
"스트레스"
,"만족"
,"기대감"
등 감정 키워드 추가- 색상 분류 로직 보강 (fallback category 분류)
📌 의도: GPT가 생성하는 감정 단어의 변형을 흡수하고 시각화 일관성을 확보
🐞 트러블슈팅 및 문제 해결
✅ 증상 : 행동 추천이 UI에 표시되지 않음
- 원인:
navigate()
시 전달된actions
가 undefined - 조치:
DiaryWrite.jsx
에서actions: gptResponse.actions
명시하여 상태 전달
❌ 증상 : 감정 그래프가 뜨지 않음
- 원인:
recharts
패키지 설치 누락 → 컴포넌트 로딩 실패 - 조치:
npm install recharts
후 문제 해결
📌 오늘 사용한 테스트용 일기 예시 -> 결과화면
오늘은 아침부터 기분이 가라앉았다. 회사에서 실수가 있었고, 동료와도 약간의 다툼이 있었다.
그래도 퇴근길에 들른 공원에서 조금은 마음이 안정되었다.
혼자만의 시간이 참 소중하다는 걸 느낀 하루였다.
📊 진행률 및 향후 작업
항목 | 상태 | 비고 |
---|---|---|
일간 요약 및 감정 분석 | ✅ | 전체 파이프라인 연결 완료 |
피드백/행동 추천 파싱 및 시각화 | ✅ | 구조화 및 스타일링 완료 |
감정별 색상 반영 | ✅ | fallback 분류 추가 적용 |
월간 요약 구조 생성 | ⏳ | 화면 구조만 완료 |
기록 저장 및 Supabase 연동 | ⏳ | 추후 테스트 필요 |
전체 QA 및 배포 | ❌ | 미실시 |
→ 총 진행률: 약 80%
📅 향후 일정
날짜 | 작업 항목 |
---|---|
7/08 | ResultMonthly.jsx 감정 통계 UI |
7/09 | 월간 데이터 연결 및 전환 |
7/10 | 요약 및 감정 기록 Supabase 저장 |
7/11 | 전체 QA 및 PWA 배포 테스트 |
7/12 | 기술 블로그 작성 및 마무리 |
'사이드프로젝트' 카테고리의 다른 글
[Mori] 10일차 (5) | 2025.07.11 |
---|---|
[Mori] 9일차 (2) | 2025.07.08 |
[Mori] 7일차 (0) | 2025.07.04 |
[Mori] 6일차 (0) | 2025.07.03 |
[Mori] 5일차 (1) | 2025.07.02 |