검색
검색
공개 노트 검색
회원가입로그인

감정 나침반(가칭) 앱 개발 여정

감정 나침반(가칭) 앱 개발 여정

감정과 생각을 더 깊이 이해하고 싶은 분들을 위해 개발한 감정 나침반(가칭) 앱을 소개합니다. 이 블로그 포스트에서는 감정 나침반이 어떻게 만들어졌는지, 그리고 어떤 과정을 거쳐 사용자에게 의미 있는 통찰을 제공하는지 쉽게 설명해드리겠습니다. 개발 경험이 없으신 분들도 편하게 읽어보실 수 있도록 최대한 간단하고 명확하게 풀어보았습니다.


1. 아이디어 구상하기

목적 이해하기

감정 나침반의 주된 목표는 사용자가 자신의 감정과 생각을 더 잘 이해하고, 이를 통해 개인적인 성장을 도모할 수 있도록 돕는 것입니다. 이를 위해 사용자가 자신의 감정과 생각을 기록하고, 이를 분석하여 유의미한 통찰을 제공하는 기능을 갖추고자 했습니다.

주요 기능:

  • 가이드 질문: 사용자가 자신의 감정과 생각을 표현할 수 있도록 유도하는 질문 제공.

  • 데이터 저장: 사용자의 응답을 안전하게 저장하여 나중에 참고할 수 있도록 함.

  • AI 통찰 제공: OpenAI의 ChatGPT를 활용하여 사용자 입력을 분석하고 개인화된 통찰을 제공.

napkin-selection (1)

napkin-selection (2)


2. 개발 환경 설정하기

적합한 도구 선택하기

앱을 효과적으로 개발하기 위해 다음과 같은 기술 스택을 선택했습니다:

  • React.js: 사용자 친화적이고 동적인 인터페이스를 구축하기 위해.

  • Firebase: 실시간 데이터베이스와 사용자 인증을 관리하기 위해.

  • OpenAI의 ChatGPT: 사용자 입력을 분석하고 통찰을 생성하기 위해.

초기 설정 과정:

  1. React 프로젝트 생성: React를 사용하여 기본 프로젝트 구조를 설정했습니다.

  2. Firebase 연동: Firebase 프로젝트를 생성하고, Firestore 데이터베이스를 설정하여 사용자 데이터를 저장할 준비를 했습니다.

  3. 필요한 라이브러리 설치: 데이터 요청을 처리하고, 사용자 인터페이스를 개선하기 위한 라이브러리를 설치했습니다.


3. 사용자 입력 수집하기

친근한 인터페이스 디자인

감정 나침반은 사용자가 두 가지 주요 질문에 답할 수 있도록 설계되었습니다:

  1. 감정: "그때 어떤 감정을 느꼈는지 표현해 보세요."

  2. 생각: "당시 어떤 생각이 들었나요?"

질문 단계 구현:

앱은 사용자가 순차적으로 질문에 답할 수 있도록 단계별로 나눠졌습니다. 사용자가 각 질문에 답하면, 그 응답이 다음 단계로 넘어가기 전에 저장됩니다.


4. Firebase에 데이터 저장하기

안전한 데이터 저장

사용자가 입력한 감정과 생각은 Firebase Firestore에 안전하게 저장됩니다. Firestore는 실시간 데이터베이스로, 데이터를 효율적으로 저장하고 관리할 수 있게 도와줍니다.

데이터 조직화:

각 응답은 역할(사용자 또는 AI), 질문 단계, 응답 내용, 타임스탬프 등의 정보를 포함하여 저장됩니다. 이를 통해 나중에 데이터를 쉽게 조회하고 분석할 수 있습니다.


5. 임베딩 생성하기

임베딩이란?

임베딩은 텍스트를 숫자 벡터로 변환하는 과정입니다. 이 과정을 통해 컴퓨터는 텍스트의 의미를 이해하고 비교할 수 있게 됩니다. 예를 들어, "슬픔"과 "우울" 같은 단어는 유사한 임베딩을 가질 것입니다.

임베딩 생성 과정:

사용자가 응답을 제출하면, 그 텍스트가 임베딩 모델을 통해 숫자 벡터로 변환됩니다. 이 벡터는 나중에 유사도를 계산하는 데 사용됩니다.

napkin-selection (3)


6. 유사도 계산을 통한 패턴 찾기

코사인 유사도란?

코사인 유사도는 두 벡터(숫자 배열)가 얼마나 비슷한지를 측정하는 방법입니다. 값은 -1에서 1 사이로, 1에 가까울수록 두 벡터는 매우 유사하다는 것을 의미합니다.

유사한 과거 엔트리 찾기:

앱은 현재 사용자의 임베딩과 과거에 저장된 모든 엔트리의 임베딩을 비교하여 유사한 과거 엔트리를 찾아냅니다. 이를 통해 사용자의 현재 감정과 생각이 과거의 어떤 경험과 관련이 있는지 파악할 수 있습니다.


7. AI를 통한 통찰 생성

AI의 역할

수집된 데이터와 유사한 과거 엔트리를 바탕으로, ChatGPT는 사용자의 현재 감정과 생각에 대한 깊이 있는 통찰을 생성합니다. 이 통찰은 사용자가 자신의 감정을 더 잘 이해하고, 긍정적인 변화를 이끌어내는 데 도움을 줍니다.

개인화된 피드백:

AI는 사용자가 입력한 감정과 생각을 직접 인용하며, 과거의 유사한 경험과 연결하여 통찰을 제공합니다. 예를 들어, "과거에 느꼈던 불안감과 현재의 상황이 유사하여, 이번 경험 역시 특정 상황에서 비롯된 것일 수 있습니다."와 같은 피드백을 받을 수 있습니다.

napkin-selection (4)


8. 사용자 경험 향상을 위한 추가 기능

피드백 메커니즘

사용자가 AI의 통찰에 대해 평가하거나 의견을 남길 수 있는 기능을 추가하여, 지속적으로 앱의 품질을 향상시킬 수 있습니다. 예를 들어, 통찰에 별점을 매기거나 자유롭게 의견을 작성할 수 있습니다.

과거 엔트리 페이징

사용자가 이전에 입력한 감정과 생각이 많아질수록, 모든 데이터를 한 번에 보여주는 것은 비효율적일 수 있습니다. 이를 해결하기 위해 페이징(페이지 나누기) 기능을 도입하여, 일정 수의 엔트리만을 한 번에 로드하고, 필요할 때 추가로 불러올 수 있도록 했습니다. 이를 통해 앱의 성능을 유지하면서도 사용자 경험을 향상시킬 수 있습니다.


9. 앱 보안 강화

안전한 API 키 관리

OpenAI의 API 키는 매우 중요한 정보로, 이를 안전하게 관리해야 합니다. 이를 위해 API 키는 코드에 직접 포함시키지 않고, 환경 변수에 저장하여 외부에 노출되지 않도록 했습니다. 또한, 서버 측에서 API 호출을 처리하여 클라이언트 측에 키가 노출되지 않도록 했습니다.

Firestore 보안 규칙 설정

Firebase Firestore에 저장된 데이터는 사용자 인증을 거친 경우에만 접근할 수 있도록 보안 규칙을 설정했습니다. 이를 통해 무단 접근을 방지하고, 사용자 데이터의 안전을 보장했습니다.


10. 마무리 및 향후 계획

개발 과정의 요약

감정 나침반(가칭) 앱은 사용자 친화적인 인터페이스와 강력한 데이터 분석 기능을 결합하여, 사용자가 자신의 감정과 생각을 깊이 있게 이해할 수 있도록 돕습니다. React.js와 Firebase, OpenAI의 ChatGPT를 활용하여, 안전하고 효율적인 데이터 관리를 구현했습니다.

향후 개선 사항

  • 추가 치료 모델 통합: 다양한 심리치료 모델을 도입하여, 더 폭넓은 통찰을 제공할 예정입니다.

  • 다국어 지원: 영어 외에도 여러 언어를 지원하여, 더 많은 사용자가 앱을 이용할 수 있도록 할 계획입니다.

  • 사용자 피드백 반영: 사용자로부터 받은 피드백을 바탕으로, 앱의 기능과 인터페이스를 지속적으로 개선해 나갈 것입니다.


감정 나침반(가칭) 앱은 기술과 심리학의 만남을 통해, 사용자가 자신의 내면을 더 잘 이해하고 긍정적인 변화를 이끌어낼 수 있도록 돕는 도구입니다. 이 여정을 통해 얻은 경험과 배움을 바탕으로, 앞으로도 더 많은 사람들에게 도움이 되는 앱을 개발해 나갈 계획입니다.

여러분도 감정 나침반을 통해 자신의 감정과 생각을 탐구해보세요. 여러분의 여정에 작은 나침반이 되어드리겠습니다!


감정 나침반과 함께하는 여러분의 여정에 응원을 보냅니다! 🚀

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 236
heart
T
페이지 기반 대답
AI Chat