피드로 돌아가기
Why We Use Separate Tech Stacks for Personalization and Experimentation
Spotify EngineeringSpotify Engineering
Backend

Why We Use Separate Tech Stacks for Personalization and Experimentation

Spotify가 개인화(Personalization)와 실험(Experimentation)을 별도의 기술 스택으로 분리하여 58개 팀이 연 520개 실험을 동시에 독립 실행

Spotify Engineering2026년 1월 7일8intermediate

Context

개인화 시스템과 실험 시스템의 기술적 기초가 유사해 보이지만(contextual bandits가 personalization과 유사), 두 도메인의 목표와 제약 조건이 근본적으로 다르다. Personalization은 개별 사용자를 위한 최적의 경험을 학습하는 것이 목표이며, Experimentation은 평균적 성능을 측정하거나 개인화 시스템 전체의 개선을 평가하는 것이 목표다.

Technical Solution

  • ML/AI 스택과 Experimentation 스택을 물리적으로 분리: Personalization 팀은 deep neural networks, LLMs 같은 고급 ML 모델을 ML 플랫폼에서 관리하고, Experimentation 팀은 이를 평가하는 별도의 Confidence 실험 플랫폼 운영
  • 두 스택 간 느슨한 결합 유지: API 통합과 UI 기반 통합을 혼용하여 Personalization 팀이 ML 플랫폼에서 모델을 배포한 후, 필요시 Confidence에서 실험 평가 수행
  • Multi-armed bandits에서 Contextual bandits로의 단계적 진화: 초기 A/B 테스트(모든 사용자에게 동일 변수)→ Multi-armed bandits(성능 기반 트래픽 재할당)→ Contextual bandits(사용자 특성 기반 개인화)로 체계화
  • ML 플랫폼과 Experimentation 플랫폼 간 seamless 통합: 광고(ads), 인앱 메시지(in-app messages) 등 타 시스템과도 custom 통합을 통해 팀들이 외부 UI나 API 호출만으로 실험 설정 가능
  • 낮은 레이턴시 특성 계산과 빠른 추천 연산을 위한 인프라 최적화: Personalization 스택은 rich feature sets 처리와 실시간 추천 생성에 특화된 ML 플랫폼으로 구성

Impact

지난 1년간 모바일 앱 홈페이지만 58개 팀이 520개 실험 동시 운영

Key Takeaway

여러 팀이 동시에 혁신할 수 있는 환경을 만들려면, 유사한 기술 기초를 가진 도메인도 목표와 제약이 다르면 스택을 분리하고 느슨한 결합으로 통합하는 것이 각 팀의 속도를 해치지 않으면서도 전사 차원의 확장성을 확보할 수 있다.


개인화 추천 시스템과 A/B 테스트를 운영하는 조직에서는 두 시스템의 목표(개별 최적화 vs 평균 성능 측정)를 명확히 분리하고, ML 플랫폼과 Experimentation 플랫폼을 별개의 기술 스택으로 유지한 뒤 API 또는 UI 기반 통합으로 느슨하게 연결하면, 각 팀이 서로 간섭 없이 동시에 실험하면서도 infrastructure 복잡도를 제어할 수 있다.

원문 읽기