Code › tail-villain
학습 세션과 인터뷰 모드를 다시 나눈 이유
학습 세션 telemetry와 roadmap-level 인터뷰 허브 방향을 정리한 기록
study mode가 돌아가기 시작한 뒤에도 마음이 편하지 않았다. 대화는 남았지만, 사용자가 어디까지 왔는지와 무엇이 아직 빈틈인지까지 남아 있지는 않았기 때문이다. 채팅은 말을 쌓아 두지만, 학습 제품은 그보다 더 많은 상태를 기억해야 했다.
문제 링크 & 설명
이 글은 문제 풀이 글이 아니라 tail-villain의 학습 세션과 인터뷰 모드 구조를 다시 정리한 기록이다. 4월 19일에는 study mode에 telemetry를 붙여야 한다는 생각과, 인터뷰는 토픽 단위가 아니라 roadmap 단위로 다시 봐야 한다는 판단이 같이 나왔다.
처음에는 대화 로그만 잘 남기면 된다고 생각하기 쉬웠다. 그런데 실제로는 무슨 말을 했는가와 그래서 학습이 어디까지 진행됐는가는 다른 정보였고, 인터뷰도 토픽 하나만 붙잡고 있으면 실제 면접의 흐름을 제대로 담지 못했다.
접근 방법
study mode 쪽에서 가장 먼저 필요했던 건 대화 기록이 아니라 상태였다. learner level, current milestone, running summary, next focus, progress, confidence 같은 값이 있어야 사용자가 어디까지 왔는지 다음 턴에서 이어 갈 수 있었다. 로그는 과거를 보여 주지만, 상태는 다음 턴을 가능하게 만든다.
그래서 학습 세션은 단순 채팅이 아니라 누적되는 세션으로 다뤘다. 같은 사용자, 같은 토픽, 같은 coach 조합이면 새 세션을 만들기보다 기존 active session으로 돌아가게 하고, 빈 실패 세션은 active로 취급하지 않도록 정리했다. 그래야 사용자가 잠깐 나갔다 와도 다시 처음부터 시작하지 않는다.
인터뷰 모드도 같은 기준으로 다시 봤다. 실제 인터뷰는 한 토픽만 묻고 끝나지 않는다. 자기소개, 이력서, 기술 검증, 행동 질문, 마무리까지 한 흐름 안에 들어오는데, topic-scoped session은 그 구조를 담기에 너무 좁았다. 그래서 interview mode는 roadmap-level hub로 두고, 세부 토픽은 기술 드릴이나 검증 lane으로 남기는 쪽이 더 맞다고 봤다.
트러블 슈팅
가장 헷갈리기 쉬운 부분은 대화 로그와 학습 상태를 같은 것으로 보는 일이다. 로그가 있으면 무언가 남아 있는 것처럼 보이지만, 다음에 무엇을 물어야 하는지, 사용자가 어느 단계인지, 이번 세션이 끝났을 때 무엇을 기록해야 하는지는 따로 저장돼야 했다.
또 하나는 인터뷰라는 단어가 너무 넓게 쓰인다는 점이었다. 토픽 기반 연습도 인터뷰처럼 보일 수 있지만, 실제 인터뷰와는 성격이 다르다. 그걸 같은 화면에 같은 이름으로 얹으면 사용자는 기능을 쓰면서도 제품이 무엇을 돕는지 헷갈릴 수 있다.
그래서 telemetry는 학습 세션의 상태를 더 잘 읽기 위한 장치로, interview hub는 실제 면접 흐름을 담기 위한 구조로 분리했다. 이름을 나누는 일처럼 보였지만, 실제로는 제품이 기억해야 할 것과 사용자가 기대하는 흐름을 나누는 일이었다.
복잡도 분석
이 작업은 알고리즘 문제의 복잡도처럼 딱 떨어지지는 않지만, 상태를 나누는 기준은 분명했다.
-
학습 세션 상태
- 대화 로그만으로는 부족하고, 진행도와 다음 포커스를 따로 남겨야 한다.
- 그래야 AI가 이전 턴을 다시 읽을 때도 현재 위치를 잃지 않는다.
-
인터뷰 허브 구조
- 토픽 하나에 모든 인터뷰를 묶지 않고, roadmap 단위에서 세션을 바라본다.
- 실제 면접의 흐름이 넓기 때문에, 구조도 그 흐름을 따라가야 한다.
-
telemetry
- 얼마나 많이 말했는지가 아니라, 어떤 상태로 끝났는지를 남기는 쪽이 중요하다.
- 이 값이 있어야 다음 세션에서 이어 갈 수 있다.
구현 코드
이날의 핵심은 코드 한 조각보다 구조를 다시 나눈 쪽에 가까웠다. study mode는 상태를 기억해야 하고, interview mode는 roadmap 수준에서 다시 설계해야 했다.
세션에 남는 값과 대화에 남는 값을 분리하고, topic-scoped interview를 roadmap-level hub로 옮기는 방향을 정리하면서 제품의 언어도 같이 정리했다. 같은 화면에서 보이더라도 실제로는 학습, 검증, 면접이 서로 다른 흐름이기 때문이다.
요약 및 회고
이날 정리한 건 telemetry 한 줄이 아니라, tail-villain이 무엇을 기억해야 하는지였다. 대화는 남지만 학습은 상태로 남아야 하고, 인터뷰는 토픽이 아니라 실제 면접 흐름에 맞게 이어져야 했다.
결국 제품이 해야 하는 일은 사용자가 무슨 말을 했는지 저장하는 것만이 아니었다. 사용자가 어디까지 왔는지, 다음에 무엇을 물어야 하는지, 그리고 어떤 종류의 연습을 하고 있는지까지 구분해서 기억하는 쪽에 더 가까웠다.