mesel7 logo

Project Detail

( 05 )

마음의 날씨 - 감정 기록 플랫폼

마음의 날씨는 LLM 기반 감정 분석과 심리 상담 기능을 도입한 일기 웹 앱입니다. 사용자가 감정을 기록하고 심리적 도움을 얻을 수 있도록 지원하며, 캘린더와 해시태그, 일기 검색 기능으로 작성한 일기를 편리하게 관리할 수 있습니다. AI가 분석한 감정과 해시태그를 기반으로 사용자는 자신의 감정을 더 깊이 인식하고 표현할 수 있습니다.

이 프로젝트는 현재 배포 환경이 종료되어 서비스는 이용하실 수 없지만, 주요 기능, 구조, 스크린샷 등은 GitHub를 통해 확인 가능합니다.

본 페이지에서는 개발 배경과 문제 해결 과정, 배운 점을 중심으로 정리하였습니다.

Motive

바쁜 현대 사회에서 정신 건강 관리의 어려움이 커지고 있으며, 감정을 표현하고 돌아보는 일기의 중요성이 더욱 강조되고 있습니다. 그러나 기존 일기 앱은 감정 상태에 대한 인식을 돕거나 피드백을 제공하는 기능이 부족해, 사용자 스스로 감정을 정리하고 이해하는 데 한계가 있었습니다. 이러한 문제를 해결하기 위해, 감정 분석과 심리 상담 피드백을 제공하는 스마트 일기 플랫폼을 기획하게 되었습니다. LLM을 기반으로 감정 키워드와 패턴을 분석하고, 감정을 보다 깊이 있게 이해하고 관리할 수 있는 구조로 설계한 것이 이 프로젝트의 출발점입니다.

Problem Solving

1달 전 공부했던 React를 처음으로 실전 협업 프로젝트에 적용하면서, RESTful API 연동과 백엔드 데이터 처리에 많은 어려움을 겪었습니다. Node.js 기반의 백엔드에서 GET, POST 방식에 맞는 요청을 구성하고, 받아온 응답 데이터를 적절히 가공해 렌더링하는 과정을 반복하며 실전 감각을 익혔습니다. 개발 초기에는 CORS 오류, 404 오류 등 다양한 문제에 직면했지만, 팀원들과 협업하여 원인을 분석하고 해결하는 과정을 통해 백엔드와의 연동 경험을 쌓을 수 있었습니다. 또한, Seremeety 프로젝트에서 사용했던 Firebase Phone Auth를 재활용하여 인증을 구현하고, Firebase UID를 사용자 테이블의 Primary Key로 활용하는 방식으로 백엔드 구조를 설계했습니다. Props로만 전달하던 일기 데이터와 해시태그 정보를 관리하는 과정에서 Props Drilling에 따른 복잡도가 증가하자, 이를 개선하기 위해 DiaryContext와 TagContext를 각각 설계하였습니다. 두 Context 모두 useReducer를 기반으로 구성하여, 일기 및 태그 데이터를 전역에서 효율적으로 관리할 수 있도록 했습니다. 이를 통해 각 컴포넌트 간 상태 공유가 간결해졌고, 사용자 경험의 일관성과 유지 보수성도 함께 향상되었습니다.

Learned

기존 Seremeety 프로젝트에서 React와 Firebase 기반 웹 앱을 완성한 경험이 있었지만, 이번 프로젝트를 통해 RESTful API 연동을 중심으로 더욱 구조화된 웹 개발 방식을 익힐 수 있었습니다. RESTful 구조는 백엔드와의 명확한 역할 분리와 효율적인 데이터 흐름 관리에 유리하다는 점을 체감했습니다. OpenAI API와 OpenWeather API 연동을 통해 외부 API 호출 시 발생할 수 있는 응답 지연, 에러 처리, 결과 렌더링 등 프론트엔드의 대응 방식을 실전에서 학습할 수 있었습니다. 또한 GitHub를 활용해 기능 단위로 Branch를 생성하고, Pull Request와 Merge 과정을 거치며 충돌 해결, Git Flow 전략 등을 적용하는 실무 중심의 협업 방식을 경험했습니다. 단순한 기술 구현을 넘어, 팀원들과의 소통을 통해 문제를 빠르게 해결하고, 역할을 이해하며 함께 완성해나가는 협업 역량 또한 키울 수 있었습니다.

mesel7 Dev Portfolio