들어가며: "베이지안이 무조건 좋다"는 말, 정말일까?

요즘 A/B 테스트 도구들을 보면 너도나도 베이지안 모드를 추가하고 있어요. GrowthBook, LaunchDarkly, PostHog, Statsig... 못 들어본 이름이 없을 정도죠. 마케팅 문구는 늘 비슷합니다. "베이지안은 현대적이고, 유연하고, 해석하기 쉽다." 심지어 "다중 검정이나 순차 검정 같은 빈도주의의 복잡한 문제들이 베이지안 사고방식에서는 자연스럽게 해결된다"고도 하죠.

여기서 잠깐. 정말 그럴까요? Spotify 엔지니어링 팀은 이 주장을 정면으로 반박합니다. 결론부터 말씀드리면, 베이지안 A/B 테스트는 '하나의 방법'이 아니라 '설정들의 집합'이며, 잘못 설정하면 빈도주의의 '엿보기(peeking)' 문제와 다를 바 없는 결과를 낳습니다.

이 글은 Spotify가 왜 자사 플랫폼에 베이지안 모드를 추가하지 않았는지, 그 의사결정 과정을 기술적으로 풀어낸 내용을 바탕으로 합니다. 근거자료는 Spotify Engineering 블로그에서 확인할 수 있어요.

실무에서 A/B 테스트를 설계하는 분들이라면, "베이지안이냐 빈도주의냐"라는 프레임 자체를 다시 생각하게 될 거예요.

Data scientist comparing Bayesian and frequentist A/B testing results on dashboard charts Technical Structure Concept

핵심 개념: 베이지안 A/B 테스트는 '만능 열쇠'가 아니다

1. 베이지안 추론은 하나가 아니라 '설정의 묶음'이다

베이지안 A/B 테스트를 도입하려는 회사들이 흔히 하는 실수는 이걸 하나의 도구로 생각하는 거예요. 하지만 실제로는 중단 규칙(stopping rule), 사전 분포(prior), 우도(likelihood) 세 가지로 정의되는 설정들의 집합입니다.

# 베이지안 A/B 테스트의 세 가지 핵심 구성 요소 (의사코드)
config = {
    "stopping_rule": "bayes_factor_threshold",  # 또는 posterior_probability_threshold
    "prior": "empirical_bayes_calibrated",      # 또는 flat_prior
    "likelihood": "normal_two_group"            # 대부분 정규 근사
}

문제는 온라인 담론이 이 세 가지를 뭉뚱그린다는 거예요. "베이지안은 다중 지표를 자동으로 처리한다"는 주장은 사실 **특정 설정(보정된 경험적 베이지안 사전 분포 + 베이즈 팩터 중단)**에서만 성립하는 이야기입니다. 기본값인 플랫 사전 분포(flat prior)에서는 전혀 성립하지 않아요.

2. '엿보기(Peeking)' 문제: 베이지안도 자유롭지 않다

"베이지안은 엿보기 보정이 필요 없다"는 주장, 많이 들어보셨죠? 이 말은 두 가지로 해석될 수 있어요.

  • 해석 A: "나는 위양성률(FPR)을 신경 쓰지 않는다." (목표에 대한 진술)
  • 해석 B: "나는 베이즈 팩터 중단을 써서 FPR이 자동으로 통제된다." (설정에 대한 진술)

이 둘은 완전히 다른 이야기인데, 담론에서는 이걸 "베이지안의 일반적 속성"으로 포장해버립니다. 특히 대부분의 상용 플랫폼 기본값인 플랫 사전 + 사후 확률 임계값 조합은 빈도주의의 엿보기와 동일한 위양성률을 재현합니다. 즉, 통계적으로 빈도주의 엿보기와 다를 바가 없어요.

3. 의외의 사실: 플랫 사전에서는 베이지안 = 빈도주의

수학적으로 흥미로운 지점은, 플랫 사전 + 정규 근사 조건에서 베이지안과 빈도주의 절차가 수치적으로 동일하다는 겁니다.

  • 사후 평균 = 최대우도추정량(MLE)
  • B가 A를 이길 사후 확률 = 1 - p-value
  • 95% 사후 확률 임계값 = 단측 기각역
# 플랫 사전에서의 수치적 동등성 (개념 예시)
# 빈도주의: p_value = 0.03
# 베이지안(플랫 사전): P(B > A | data) = 1 - 0.03 = 0.97

p_value = 0.03
posterior_prob = 1 - p_value
print(f"사후 확률: {posterior_prob:.2f}")  # 0.97
# → 같은 데이터, 같은 결론, 다른 어휘

이게 의미하는 바는 명확합니다. 베이지안을 쓴다고 해서 더 '고급' 통계를 쓰는 게 아니라는 거예요. 해석의 편의성은 얻지만, 그 대가로 사전 분포 유지·관리라는 복잡성을 떠안습니다.

Server infrastructure diagram showing experiment analysis pipeline with statistical configurations Programming Illustration

실무 주의사항: 경험적 베이지안의 함정

1. 경험적 베이지안 사전 분포, 유지하기 생각보다 어렵다

베이지안의 진짜 장점은 **잘 보정된 경험적 사전 분포(well-calibrated empirical Bayes prior)**에 있습니다. 이걸 쓰면 위너스 커스(winner's curse) 편향을 줄이고, 위발견률(FDR)을 자동으로 통제할 수 있어요. 그런데 문제는 이 사전 분포를 '제대로' 추정하는 게 매우 까다롭다는 점입니다.

요구사항실무 현실
200개 이상의 대표성 있는 실험 코퍼스초기 스타트업은 불가능
지표별·프로그램별 분리 추정새 지표 생길 때마다 과거 실험 백필 필요
교환가능성(exchangeability) 가정시간에 따라 효과 분포가 변함
승자 편향 없는 아카이브실패한 실험은 기록 안 되는 경우 많음

특히 "승리한 실험만 아카이브에 쌓는" 실수는 치명적이에요. Spotify 시뮬레이션에 따르면, 이런 편향된 사전 분포는 오히려 기준선인 그룹 순차 검정(GST)보다 정밀도와 검출력이 더 나빠집니다. 사전 분포가 없느니만 못한 상황이 되는 거죠.

2. 지표를 뭉뚱그리면 안 되는 이유

가입률(sign-up rate)과 추천 클릭률(CTR)을 하나의 코퍼스로 풀링하면 어떻게 될까요? 가입률은 대부분 실험에서 거의 안 움직이고, 클릭률은 쉽게 움직입니다. 이 둘을 합치면 사전 분포의 분산이 가입률에는 너무 넓고, 클릭률에는 너무 좁아져요. 어느 지표에도 맞지 않는 사전 분포가 만들어지는 겁니다.

# 잘못된 풀링의 예 (의사코드)
# ❌ 나쁜 예: 서로 다른 효과 분포를 가진 지표를 하나로 합침
pooled_prior = fit_prior([signup_rate_data, ctr_data])

# ✅ 좋은 예: 지표별로 분리 추정 (단, 백필 비용 발생)
signup_prior = fit_prior(signup_rate_data)
ctr_prior = fit_prior(ctr_data)

3. 결정 이론과 오류율 통제는 생각보다 가깝다

"우리는 결정 이론적 접근을 원해서 베이지안이 필요하다"는 주장도 흔한데요. 재미있는 건, 일반적인 비용 함수(위양성·위음성·샘플링 비용의 합)에서는 최적 중단 규칙이 베이즈 팩터 임계값으로 나온다는 점입니다. 그리고 그 임계값은 동시에 오류율 보장도 제공하죠. 즉, 결정 이론과 오류율 통제는 같은 규칙의 두 가지 파라미터화인 셈입니다.

예외는 있어요. Stucchio가 제안한 기대 손실 중단(expected-loss stopping)은 사후 분포가 충분히 좁아지면 중단하는데, 효과가 없어도 결국 새 변형을 출시합니다. 플랫 사전에서는 위양성률이 약 50%에 달하죠. 단, 무효과 변형을 배포하는 게 진짜 비용 0이라면 이게 최적입니다. 비용이 실제 효과 크기의 몇 %를 넘어서는 순간 이 규칙은 최적이 아니게 되고요.

결국 다시 돌아오는 질문은 "우리 실험 프로그램의 목표가 무엇인가" 입니다.

Developer reviewing A/B testing documentation and decision-making framework on laptop Software Concept Art

결론: Spotify의 선택과 우리의 적용

Spotify는 왜 베이지안을 추가하지 않았나

Spotify의 실험 프로그램 목표는 명확했습니다.

  1. 비즈니스 의사결정을 해치는 실험 최소화
  2. 실험 증거에 대한 신뢰 확보
  3. 팀·부서 간 해석 오류 방지
  4. 계획과 설정은 쉽게, 오설정은 어렵게

여기서 핵심은 "두 가지 모드를 동시에 지원하는 비용" 이었어요. 계획, 모니터링, 해석, 출력 형식이 모두 달라져야 하니까요. 반면 실질적 이득은 제한적이었습니다. 결국 "두 번째 프레임워크의 이득이 비용을 넘지 않는다"는 결론에 도달한 거죠.

한국 개발 생태계에서의 적용 맥락

국내 환경에서는 이 논의가 특히 중요한데요. 많은 국내 스타트업과 SI 프로젝트에서 A/B 테스트 도구를 도입할 때 "베이지안이 최신이니까" 라는 이유만으로 선택하는 경우가 많습니다. 하지만 실험 볼륨이 절대적으로 부족한 초기 단계에서는 경험적 베이지안 사전 분포를 유지할 코퍼스 자체가 없어요. 이 경우 플랫 사전 기본값을 쓰게 되는데, 그건 빈도주의와 수치적으로 동일하면서 해석만 다르게 포장한 셈입니다.

실무 조언: 도구 선택 전에 "우리 프로그램의 목표가 위양성률 통제인가, FDR 통제인가, 아니면 의사결정 비용 최소화인가"를 먼저 문서화하세요. 그다음에 그 목표를 달성하는 설정이 무엇인지 역산하는 순서가 맞습니다.

이 기술의 한계

  • 베이지안이 '더 정확한' 추론을 보장하지 않습니다. 플랫 사전에서는 빈도주의와 동일합니다.
  • 경험적 사전 분포의 이득은 코퍼스 품질에 100% 의존합니다. 잘못된 풀링은 오히려 성능을 악화시킵니다.
  • "해석이 쉽다"는 장점은 실재하지만, 그 대가로 사전 분포 유지·설명 비용이 발생합니다.

다음 단계 학습 방향

  1. 그룹 순차 검정(GST) 과 mSPRT의 관계를 먼저 이해하세요. 베이즈 팩터 중단과 수학적으로 연결됩니다.
  2. 위발견률(FDR) vs 위양성률(FPR) 의 차이를 명확히 하세요. 다중 지표 문제의 핵심입니다.
  3. 실험 프로그램의 목표 → 설정 → 보장 순서로 사고하는 프레임워크를 연습하세요.

베이지안과 빈도주의는 대립이 아니라 겹치는 영역이 많은 두 언어입니다. 중요한 건 어느 진영에 서느냐가 아니라, 우리 프로그램이 어떤 보장을 필요로 하는지 아는 것이에요.


함께 보면 좋은 글

본 콘텐츠는 신뢰할 수 있는 출처를 바탕으로 AI 도구를 활용하여 초안이 작성되었으며, 편집자의 검토를 거쳐 발행되었습니다. 전문가의 조언을 대체하지 않습니다.