Frontend '알아가는 중' 단계, 대화량 대신 지식 수준 반영으로 개선하기
사용자 단계가 대화량만으로 결정되는 문제점을 해결하고, 실제 지식 수준을 반영하는 새로운 접근 방식을 소개합니다.
Frontend '알아가는 중' 단계, 대화량 대신 지식 수준 반영으로 개선하기
사용자 단계가 실제 지식 수준을 반영하지 못하고 단순히 대화량만으로 결정되는 문제, 겪어보셨나요? 이런 경우, 사용자는 자신이 아는 것보다 더 낮은 단계로 분류되어 답답함을 느낄 수 있습니다. 이 글에서는 이런 문제를 어떻게 해결했는지, 그리고 같은 함정에 빠지지 않도록 어떤 점을 주의해야 할지 공유하려 합니다.
시도와 함정
처음에는 사용자 단계 관리 시스템의 기존 로직을 그대로 따랐습니다. 사용자가 특정 주제에 대해 얼마나 많은 대화를 나누었는지에 따라 단계가 결정되는 방식이었죠. 하지만 이게 실제 지식 수준과는 거리가 멀다는 것을 금방 알게 되었습니다.
예를 들어, 어떤 사용자는 특정 주제에 대해 질문만 몇 번 하고도 이미 상당한 지식을 습득한 상태일 수 있습니다. 그런데 시스템은 대화량이 적다는 이유로 여전히 '초급' 단계로 분류하는 거죠.
// 기존 로직 (가상 예시)
function getUserLevelByConversation(user, topic) {
const conversationCount = user.getConversationCount(topic);
if (conversationCount < 5) {
return 'Beginner';
} else if (conversationCount < 20) {
return 'Intermediate';
} else {
return 'Advanced';
}
}
이런 식으로 단순히 대화량만 측정하니, 실제 지식 수준을 제대로 반영하지 못하는 문제가 계속 발생했습니다. 3시간 동안 이 부분을 파고들었지만, 결국 대화량만으로는 한계가 명확했습니다.
원인
문제의 근본적인 원인은 사용자 단계 산정 기준이 '활동량'에만 집중되어 있었기 때문입니다. 사용자의 실제 '지식 수준'을 객관적으로 측정할 수 있는 메트릭이 부족했던 거죠. 대화량은 사용자의 참여도를 나타낼 수는 있지만, 학습 정도를 직접적으로 보여주지는 않습니다.
해결
그래서 저희는 사용자 단계 기준을 '대화량'에서 '실제 지식 수준'으로 변경했습니다. 이를 위해 관련 UI 컴포넌트 및 훅, 그리고 라이브러리 로직을 수정했습니다.
새로운 접근 방식은 사용자가 특정 주제에 대해 얼마나 많은 개념을 이해하고 있는지, 관련 퀴즈를 얼마나 잘 맞추는지 등을 종합적으로 고려하는 것입니다.
// 수정된 로직 (가상 예시) function getUserLevelByKnowledge(user, topic) { const knowledgeScore = user.getKnowledgeScore(topic); // 새로운 지식 점수 측정 로직 const quizAccuracy = user.getQuizAccuracy(topic); // 퀴즈 정확도
if (knowledgeScore < 0.4 || quizAccuracy < 0.5) { return 'Beginner'; } else if (knowledgeScore < 0.8 || quizAccuracy < 0.8) { return 'Intermediate'; } else { return 'Advanced'; } }
이처럼 사용자의 실제 학습 성과를 반영하는 지표를 도입함으로써, 단계 분류의 정확도를 높일 수 있었습니다.
결과
- 사용자의 실제 지식 수준을 더 정확하게 반영하는 단계 기준을 마련했습니다.
- '알아가는 중' 단계 사용자들의 만족도가 높아졌습니다. (정성적 변화)
- 단계별 콘텐츠 추천 정확도가 향상되어 학습 효율이 증대되었습니다. (정성적 변화)
정리 — 같은 함정 안 빠지려면
- [ ] 사용자 단계 산정 시 '활동량' 외에 '실제 성과'를 측정할 수 있는 지표를 반드시 포함하세요.
- [ ] 새로운 지표 도입 시, 기존 로직과의 비교 테스트를 통해 정확도를 검증하세요.
- [ ] 사용자 피드백을 꾸준히 수집하여 단계 기준을 지속적으로 개선하세요.
태그