감정 분석이 작동하는 흐름을 고민했다

Lily·2025년 5월 22일
1
post-thumbnail

프렌즈 앱의 감정 분석 기능은 단순한 트리거 기반 시스템이 아니라 사용자 흐름에 맞게 분석이 자동 또는 수동으로 실행되도록 설계되어 있다. 이번 글에선 분석이 언제 실행되고 그 결과가 사용자에게 어떤 흐름으로 전달되는지에 초점을 맞춰봤다.


분석 트리거 - 언제 분석이 실행될까?

프렌즈 앱의 감정 분석은 다음 네 가지 방식으로 실행된다.

  1. 일일 자동 생성
  • 매일 새벽 3시 @Scheduled(cron = "0 0 3 * * ?") 스케줄러가 전체 사용자에 대한 분석을 수행한다.
  • 당일 분석이 이미 존재하면 중복 생성을 방지한다.
  1. 감정 기록 저장 후 자동 실행
  • 사용자가 새로운 감정을 기록하면 저장 직후 약 0.5초 후 자동으로 분석이 수행된다.
  • 이를 통해 사용자는 감정을 기록한 직후 최신 분석을 확인할 수 있다.
  1. 수동 새로고침
  • 홈 화면의 AI 분석 카드에서 새로고침 버튼을 누르면 분석이 즉시 갱신된다.
  1. 분석 화면 첫 진입 시 자동 생성
  • 사용자가 해당 화면에 처음 진입했을 때 당일 분석이 없다면 자동으로 생성된다.

분석 로직과 결과 생성 방식은?

분석 로직의 세부 구현 내용은 이전 글에서 자세히 다루었다.
👉 단순 기록을 넘어, AI로 감정을 읽어주기까지 – 프렌즈 앱의 감정 분석 시스템

이 글에서는 분석 로직보다는 어떻게, 언제 분석이 트리거되고 사용자에게 어떤 흐름으로 전달되는지에 초점을 맞추었다.

  • 분석 결과는 MoodAnalysis 엔티티로 저장된다.
  • 동일한 날짜의 분석이 존재할 경우 해당 결과를 재사용한다.
  • 새로운 감정 기록 저장, 수동 새로고침, 또는 초기 접근 시에만 분석을 갱신한다.

UX를 고려한 메시지 및 동작 설계

상태 피드백 메시지

  • 감정 분석 로딩 중: "감정 분석을 불러오는 중입니다. 잠시만 기다려 주세요."
  • 감정 기록 저장 중: "감정 기록을 저장하는 중입니다... 잠시만 기다려주세요."
  • 기록이 없는 경우: "아직 감정 기록이 없어요. 오늘의 기분을 기록해보세요."
  • 분석 불가 시: "분석을 위한 감정 데이터가 없습니다. 인사이트를 보려면 감정을 기록해보세요!"
  • 로그인 필요: "감정 분석을 위해 로그인해주세요."

분석 결과 표현 방식

  • 분석 텍스트는 처음에 3줄까지만 노출되고 더보기 버튼을 통해 확장 가능하다.
  • 감정 상태는 모두 한글로 변환되어 노출된다. 예: very_happy매우 행복
  • AI 분석 메시지는 사용자를 직접적으로 지칭하는 어조로 작성된다.

시각화 및 액션 유도

  • 감정 분포, 활동-감정 관계, 시간대별 감정 변화 등 시각적 요소를 제공하여 사용자가 자신의 감정 흐름을 이해하기 쉽게 구성했다.
  • 감정 기록이 없을 경우에는 빈 카드와 함께 기분 기록하기 버튼을 제공하여 다음 행동을 유도한다.

정리

감정 분석이라고 해서 무조건 바로 보여주는 게 좋은 건 아니었다.
트리거 시점과 사용자 흐름을 잘 조율하지 않으면 오히려 분석 결과가 불필요하게 느껴질 수 있다는 걸 직접 겪으면서 알게 됐다.

그래서 프렌즈에서는 자동 분석과 수동 새로고침을 함께 제공하고 분석이 로딩 중이거나 조건을 만족하지 않을 땐 무리하게 보여주지 않도록 구성했다.

기능을 만드는 것도 중요하지만 그 기능이 언제 등장하고 어떤 타이밍에 사용자한테 의미 있게 느껴지는지가 훨씬 중요할 수 있다는 걸 배웠던 작업이었다.

다음에는 분석 결과를 조금 더 시각적으로 표현해보거나 피드백 스타일을 사용자마다 다르게 구성하는 것도 실험해볼 생각이다.

profile
우왓

0개의 댓글