메인 콘텐츠로 건너뛰기

8주 동안 Langflix 쇼츠 추천 시스템을 만들며 배운 것

Jiyun Park, Growth Hackers/2026. 09. 23./한국어 · English

안녕하세요. 지난 여름, ThetaOne과 서울대학교 비즈니스 데이터 학회 Growth Hackers가 함께 Langflix의 쇼츠 추천 시스템을 개발하는 산학협력 프로젝트를 진행했습니다. Growth Hackers에서 PM으로서, 지난 8주동안 쇼츠 추천 시스템을 만들며 무엇을 배웠는지에 대해 이야기해 보려고 해요.

쇼츠 추천으로 리텐션을 높이려면?

이번 쇼츠 추천 시스템의 가장 큰 목표는 리텐션 개선이었습니다. Langflix 앱 내에서 진입 장벽이 낮은 콘텐츠인 쇼츠탭에 대해, 개인화된 추천 영상을 제공함으로써 흥미를 유발하고, 자연스럽게 학습 습관을 형성하여 리텐션을 높이자는 취지에서 프로젝트를 시작했어요.

Growth Hackers에서는 프로젝트를 시작하자마자 어떤 모델을 사용할지 리서치하기보다는, Langflix 유저의 행동 경향을 이해하여 프로젝트의 목적을 명확히 정의하는 데 시간을 썼습니다. 현재의 리텐션 수치, 유저의 세션 길이, 유저의 앱 사용 패턴 등을 분석한 뒤 프로젝트의 목표와 KPI를 확실히 한 뒤에 프로젝트를 진행하기 위함이었습니다.

본격적인 개발에 앞서 EDA를 수행한 결과, 쇼츠 탭에 접속한 이력이 있는 유저 중에서 학습 행동(오늘의 복습, 섀도잉, 리스닝, 표현 저장 등)을 한 유저가 단순히 시청만 한 유저에 비해 리텐션이 높다는 것을 확인했습니다. 또한 기존에 사용하고 있던 유효 행동 정의에 따르면, 단순히 시청만 하는 것도 유효 행동에 포함되었고, 실제로 유효 행동으로 집계되고 있던 대다수가 단순 시청만으로 유효 행동에 달성하였음을 알게 되었습니다. 이를 바탕으로, 리텐션을 높이기 위해서는 학습 행동을 자연스럽게 유발할 수 있는 콘텐츠를 추천하는 것이 좋겠다는 방향을 잡을 수 있었습니다.

EDA 이후, 언어 학습 앱이라는 점과 ThetaOne이 추구하는 방향을 고려하여 유효 행동을 재정의하기 시작했습니다. 유효 행동은 리텐션에 유의미한 상승 효과를 보여준 학습 행동들로만 정의하였고, 영상별 유효 행동률을 KPI로 잡아 이를 향상시킬 수 있는 추천 시스템을 구축하기로 결정했습니다.

만약 이러한 EDA 과정이 없었더라면, 추천 시스템의 방향이 크게 달라졌을 것이라고 생각합니다. 시청 시간 극대화만을 목표로 하는 시스템이었다면 언어 학습 앱이라는 정체성에 어긋났을 겁니다. 외국어를 배우러 온 유저들의 니즈를 충족시키지 못할 가능성도 컸을 것입니다.

목표를 명확히 설정하고 나니, 추천 시스템 개발에 있어 어떤 피처들을 새로 만들어야 할지 감이 잡히기 시작했습니다. 이를 통해, 프로젝트의 목적을 정확하게 설정하고 팀원들과 함께 방향을 맞추는 것이 얼마나 중요한 일인지 깨달을 수 있었습니다.

프로젝트 8주 로드맵: 데이터에서 A/B Test까지

이번 프로젝트는 8주 동안 진행되었습니다. Growth Hackers 팀원들의 여름 방학을 전부 투입해, 열심히 고민하며 진행한 프로젝트였어요.

프로젝트 킥오프와 함께 ThetaOne의 GitHub와 DB 등에 대한 접근 권한을 전달받은 뒤, 우선 현재 쇼츠탭 내 서비스의 플로우, DB에 적재되어 있는 데이터의 스키마, 이벤트 로그 등을 이해하는 시간을 가졌습니다. Langflix의 추천 시스템이 작동하는 흐름을 파악하고 EDA를 하면서 프로젝트의 방향을 맞춘 뒤, 본격적인 추천 시스템 개발을 준비하기 시작했습니다.

EDA를 하면서 Cold 유저와 Warm 유저를 분리한 추천 전략을 세우는 방향으로 의견이 모아졌고, 이에 맞추어 추천 시스템의 재료들을 준비하기 시작했습니다. ThetaOne에서 기존에 사용하고 있던 영상 임베딩과 클러스터링을 다듬어 정교화하고, 온보딩 설문 조사 기록과 유저의 유효 행동 이력을 반영하여 유저의 선호를 파악하는 피처도 새로 만들었습니다. 또한, 어휘 난이도, 발화 속도 등을 고려하여 쇼츠 난이도를 새롭게 계산하였고, 발화량이 적어 학습에 부적합한 영상은 사전에 필터링하는 로직을 추가하기도 했습니다.

이렇게 추천 시스템의 재료들을 준비한 뒤에는 추천 모델을 구현하였습니다. 프로젝트 기간 동안 2가지의 추천 모델을 개발하여 A/B Test를 진행했는데요. 첫 번째 모델은 코호트별 토픽 선호도 기반 모델입니다. 유저를 여러 코호트로 나누고, 코호트에서 전반적으로 선호하는 영상들로 후보 묶음을 구성한 뒤, 유저 개인의 영상 토픽 선호도에 따라 개인화하여 개별 영상을 추천하는 흐름으로 설계했습니다. 두 번째 모델은 Cold 유저와 Warm 유저에 대해 서로 다른 추천 시스템을 적용하는 하이브리드 모델입니다. Cold 유저에게는 콘텐츠 기반 협업 필터링(Content-based Collaborative Filtering)을 기반으로 한 추천 시스템을 적용하고, Warm 유저에게는 딥러닝 기반의 Two-Tower 추천 시스템을 적용했습니다.

모델의 로직과 설계를 마치고, 추천 서빙을 위해 인프라도 새로 다듬었습니다. 비교적 간단한 모델이었던 코호트별 토픽 선호도 기반 모델은 기존 TypeScript 기반 서버에서도 잘 작동했지만, 딥러닝을 기반으로 하는 Two-Tower 추천 시스템의 경우에는 Python 서버를 필요로 했습니다. AWS의 사용을 요청드려 S3와 DynamoDB를 활용해 Two-Tower 모델이 원활히 작동할 수 있는 환경을 구축한 뒤, 실제 모델을 서비스에 올렸습니다. 이후에는 두 가지의 추천 모델에 대해 모두 A/B Test를 진행하며 PostHog 대시보드로 KPI와 여러 보조지표들을 모니터링하였고, 특히 Two-Tower 모델에서 유의미한 KPI 상승을 확인할 수 있었습니다.

추천 시스템 구현 과정에서 고민한 것들

학교에서 추천 시스템에 대해 배울 때는 작동 원리를 이해하는 데 초점을 두곤 하지만, 실제로 추천 시스템을 개발해보니 고민해야 할 것들이 정말 많았습니다. 유저와 아이템의 피처를 어떻게 설계할 것인지, 추천 정책 측면에서 원칙을 어떻게 설정할 것인지와 ThetaOne에서 프로젝트가 종료된 후에도 추천 시스템을 계속 사용하기 위해선 어떻게 협업해야 하는지 등.. 이번 프로젝트 기간 동안, 추천 시스템을 개발할 때에는 모델의 작동 원리를 이해하고 모델 성능을 높이는 것외에도 원활한 운영이 가능하도록 설계하는 것이 중요함을 몸소 깨달았습니다.

또한, 새로운 추천 시스템을 도입할 때에는 “무엇을 만들까?”에 대한 고민도 중요하지만, 그만큼 “만든 것을 어떻게 평가할까?”에 대한 고민도 중요합니다. 유저의 시청 이력은 기존에 제공되던 추천 시스템에 영향을 받기에, 편향이 존재합니다. 이번 산학협력 프로젝트에서도, 추천 시스템 분야에서 일반적으로 사용되는 평가 지표인 Recall과 NDCG를 사용할 경우 기존의 인기/최신 순으로 영상을 정렬하는 모델에 가장 높은 점수를 주는 문제를 마주했습니다. IPS/SNIPS 분석을 도입하는 것을 고려했으나, 기존 추천 시스템 하에서 Propensity 정보가 없어 분석이 어려웠습니다. 이에 프로젝트 목적에 부합하는 새로운 오프라인 평가 지표로 Cold Recall(노출 이력이 없는 상태에서 추천되었음에도 유저가 선호한 아이템을 얼마나 잘 포함하는지), Ordinal Accuracy(유저의 시청 이력을 선호 순으로 재정렬하는 성능) 등을 정의하여 평가에 사용했습니다.

Agent로 코딩하는 시대, 더 중요해진 기획

감사히도 ThetaOne 측에서 Codex를 제공해주셔서 프로젝트 기간 동안 코딩 에이전트를 자유롭게 사용할 수 있었습니다. 코딩 에이전트를 사용하니 생각해둔 구조를 코드로 직접 구현하거나 서버와 연결하는 등의 작업을 쉽고 빠르게 진행할 수 있었습니다.

코딩 에이전트로부터 많은 도움을 받았지만, 한편으로는 코딩 에이전트에게 모든 것을 맡겨서는 안되겠다는 생각을 하게 되었습니다. 기획 측면에서의 판단이 요구되는 지점들을 맡기고 무작정 ‘해줘’를 외칠 경우, 성과물이 어딘가 모자랐습니다. 겉으로 보기에는 그럴싸하지만, 내부적으로 뜯어보면 의도를 파악하기 어렵거나, 인간의 휴리스틱과 어긋나는 경우가 많았습니다.

추천 성공에 대한 정의, Cold/Warm 유저로 분리하는 전략 수립, 성능과 사용자 경험이 충돌하지는 않는지에 대한 점검 등에 대해서는 코딩 에이전트가 대신할 수 없었습니다. AI의 구현 능력은 매우 뛰어나지만, AI가 구현해야 할 내용을 인간이 꼼꼼히 설계하고 기획하는 것이 우선이며, PRD가 잘 만들어져 있을 때 비로소 AI를 효율적으로 사용할 수 있음을 느꼈습니다.

산학협력 프로젝트를 진행하는 PM이자 Langflix의 사용자로서, 지난 여름을 추천 시스템 개발에 몰두했습니다. 그 과정에서 추천 시스템은 단순히 정답을 맞히는 모델 하나가 아니라, 프로덕트 안에서 유저를 이해하고 제품의 목표에 맞는 결과를 유도하는 일이라는 것을 배웠습니다. 이번에 개발한 추천 시스템이 Langflix 사용자들의 더 나은 학습 경험을 만드는 데 도움이 되었길 진심으로 희망합니다 🙂

Jiyun Park
Growth Hackers 산학협력 프로젝트 PM | 서울대학교 자유전공학부(경제학, 산업공학 전공)
Growth Hackers
서울대학교 데이터분석학회