메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

Beyond Experiments: 실험할 수 없는 결정 앞에서

2026-10-02

|

by 신진수

47

지난 글(바로가기)에서 마지막에 이런 이야기를 남겼습니다. 실험 문화의 완성은 실험을 더 많이 하는 것도 중요하지만, 실험이 불가능할 때 무엇을 해야 하는지 아는 것도 챙겨야 하지 않을까요?
 

지금까지의 이야기에는 전제가 하나 있었습니다. 실험 플랫폼을 통해 손쉽게 A/B 테스트를 돌릴 수 있다는 것이죠. 그런데 가격을 바꾸거나, 신규 프로덕트를 런칭하거나, 대규모 업데이트를 적용하는 일처럼 정말 중요한 결정일수록 그 전제가 깨질 가능성도 높습니다.
 

그래서 실험 문화가 잘 자리 잡은 조직에서 오히려 이상한 일이 벌어집니다. 실험할 수 있는 것만 열심히 검증하고, 정작 큰 결정은 여전히 회의실의 목소리로 정해지는 거예요. Diffusion 편에서 실험을 많이 한다는 것과 중요한 결정을 실험으로 내린다는 것은 전혀 다른 문제라고 했는데, 지금이 딱 그 간극에 빠진 상태입니다. 오늘은 그 자리에서 우리가 무엇을 할 수 있는지 이야기해 보려 합니다.

 

1. 먼저, 왜 안 되는지부터

"실험이 불가능하다"는 말을 들으면 저는 그게 정말 불가능한 건지, 아직 안 해본 건지부터 구분합니다. 제가 거쳐온 조직들에서는 “안 되는 이유”부터 찾기 시작하면 무엇을 하든 쉽지 않았거든요. 따져 보면 막히는 이유는 세 갈래로 모였습니다.

  1. 하나는 조직 문화입니다. 가장 흔하고, 가장 다루기 어렵습니다.
    사용자 절반에게만 먼저 내보내 확인해 보자고 하면 대체로 그럴 시간이 어디 있냐는 답이 돌아왔어요. 기술로도 정책으로도 못 할 이유가 없는데, 조직이 그 시간을 허락하지 않는 상태입니다.
     
  2. 다른 하나는 기술입니다. 사용자 단위로 나눌 수 없거나, 나눠도 한쪽에 준 변화가 다른 쪽에 영향을 주는 경우예요.
    클라이언트 빌드를 통째로 배포해야 한다면 애초에 사용자마다 다르게 줄 수가 없습니다. 유저끼리 거래하는 게임에서 실험군에 재화를 더 풀었더니 시세가 올라 대조군이 같은 물건을 더 비싸게 사야 했다고 해봅시다. 대조군은 아무것도 받지 않고 손해만 본 셈이라, 두 그룹의 차이는 모두에게 적용했을 때의 실제 효과보다 부풀려 보입니다.
     
  3. 마지막은 정책입니다. 나눌 수는 있는데 나눠서는 안 되는 경우죠.|
    동일한 상품을 특정 유저에게만 할인해서 파는 일을 실험이라는 이유로 정당화하기는 어렵습니다. 법이나 약관상 문제가 없더라도, 유저가 차별받는다고 느끼는 순간 제품 만족도 자체가 떨어질 수 있습니다. 목표로 한 주요 지표는 올랐는데 제품에 대한 신뢰가 깎이는 거죠. 이럴 때는 나눌 수 있느냐보다, 그 손상을 어떤 가드레일 지표로 잡아낼지를 먼저 정해야 합니다.

막힌 이유부터 가려내는 건 갈래마다 푸는 방식이 다르기 때문입니다. 조직 문화는 설득해야 하고, 기술은 설계를 다시 해야 합니다. 정책은 돌아갈 길을 찾아야 할 때가 많고요. 그래서 실험이 불가능하다고 판단했다면 그 이유를 세 갈래 중 하나로 적어두자고 제안하는 편입니다.
 

그것만으로 대화가 "그냥 안 돼요"에서 "우리 힘으로 풀 수 있는 문제인가, 풀 수 있다면 언제인가"로 바뀌거든요.

2. 실험이 안 돼도, 인과는 따질 수 있다

직관으로 내린 결정 자체가 잘못이라고는 생각하지 않습니다. 데이터로 일하는 사람이라면 누구나 그런 결정을 한 번쯤 지나왔을 거예요. 문제는 그게 기본값이 될 때입니다.

실험이 불가능하다는 것과 인과를 따질 수 없다는 것은 같은 말이 아닙니다. 무작위 배정은 목적이 아니라 수단입니다.
 

목적은 "이 변화를 겪지 않은 우리"를 만들어 비교하는 것이죠. 실험군이 그 변화를 겪지 않았더라면 어땠을지, 그 반사실(Counterfactual)에 최대한 가까운 대조군을 찾는 일입니다. A/B 테스트는 그 일을 가장 확실하게 해주는 수단이고요. 무작위 배정을 쓸 수 없다면, 그 확실함을 우리가 세운 가정으로 대신 채워야 합니다.

그러니 사용자 단위 무작위 배정이 막혔을 때 던질 질문은 하나예요.
 

변화가 없었다면 두 그룹이 같은 흐름을 보였을 거라고, 무엇을 근거로 말할 수 있는가.


어려운 추정 방법보다 이 질문에 답하는 게 먼저입니다. 비교할 두 집단을 잘못 고르면 뒤의 정교한 추정도 소용없으니까요. 제가 가장 먼저 보는 건 나누는 단위를 바꿀 수 있는지입니다.

사용자 단위로는 못 나눠도 서버나 지역 단위로는 나눌 수 있는 경우가 생각보다 많습니다. 서버끼리 경제가 분리된 게임이라면 앞에서 말한 시세 문제도 함께 줄어들고요. 다만 단위가 커지면 나눌 수 있는 개수가 줄어서, 결과가 더 크게 흔들리고 작은 효과는 잡아내기 어려워집니다. 이베이의 유명한 사례가 이 구조입니다.
 

검색 광고가 매출을 만든다고 오래 믿었지만, 사용자 단위로 광고를 껐다 켤 수는 없었어요. 대신 무작위로 고른 일부 지역에서만 광고를 끄고 나머지 지역과 비교했더니, 매출은 거의 줄지 않았습니다.


일부 검색 엔진에서만 브랜드 검색어 광고를 멈췄을 때는 더 분명했습니다. 광고가 사라지자 사람들이 바로 아래 자연 검색 결과를 눌러 들어왔거든요. 광고가 만든 것처럼 보였던 매출의 상당 부분은, 광고가 없었어도 일어났을 매출이었죠.


단위를 바꿔도 나눌 수 없다면, 이미 나뉘어 있는 곳을 찾습니다. 우리가 나누지 않았지만 바깥 사정으로 갈라진 상황을 빌려 쓰는 것, 자연실험(Natural Experiment)이죠. 국가나 플랫폼, 서버별로 적용 시점이 달랐다면 아직 적용되지 않은 쪽을 대조군으로 둡니다. 각 그룹의 적용 전후 변화를 구한 뒤, 그 변화끼리 한 번 더 빼는 방식입니다(이중차분, Difference-in-Differences). 단, 시점이 결과와 상관없는 이유로 갈렸어야 합니다. 지표가 이미 오르고 있던 지역부터 적용했다면, 그건 자연실험이 아니라 선택이니까요.


시점 대신 기준선이 집단을 갈라놓기도 합니다. 정해진 기준을 넘느냐로 혜택이 갈린다면, 기준선 바로 위와 바로 아래의 유저는 거의 같은 사람들일 테니 둘을 비교합니다(회귀 불연속, Regression Discontinuity). 그런 경계조차 없으면 대조군을 직접 만듭니다. 적용되지 않은 비슷한 서버 여럿을 섞되, 적용 전 흐름이 실험군과 최대한 겹치도록 가중치를 고르는 식이죠(통제집단합성법, Synthetic Control). 이름은 달라도 하는 일은 같습니다. "이 변화를 겪지 않은 우리"에 최대한 가까운 비교 대상을 만드는 것.


방법마다 기대는 가정과, 그 가정이 깨지는 지점은 조금씩 다릅니다. 그 이야기는 제 강의「데이터 실무자의 사고력 강화 : AI 인과추론 실무」(바로가기)에서  자세히 다뤘으니 함께 보셔도 좋겠습니다.

 

3. 정책 때문에 막혔을 때

이 방법들을 제가 실제로 꺼내 든 건 대부분 마지막 갈래인 정책 때문이었어요.
 

정책상 빌드가 모든 유저에게 동일하게 나가야 하는 경우가 있습니다. 개인정보 동의 문구처럼 누구에게는 A 버전, 누구에게는 B 버전을 보여줄 수 없는 것들이죠. 유저가 차별적인 대우를 받지 않아야 한다는 요건이 걸린 경우도 마찬가지고요.
 

다만 모두에게 같은 버전을 줘야 한다는 것이지, 반영되는 시점까지 똑같아야 하는 건 아니었습니다. 국가별 시행 일정이나 플랫폼별 심사 일정 때문에 먼저 받는 쪽과 나중에 받는 쪽이 자연스럽게 생깁니다.

돌아갈 길은 거기 있었습니다. 저는 그 시차를 비교에 썼습니다.
 

설계에서 가장 먼저 정한 건 두 가지입니다. 어떤 지표가 오르기를 기대하는지, 그리고 무엇이 망가지면 안 되는지. 무작위로 나누지 못할 뿐, 무엇을 볼지는 미리 정할 수 있으니까요. 얼마나 올라야 효과로 볼지, 전후 기간을 어떻게 잡을지도 결과를 보기 전에 정했습니다. 그리고 숫자를 열기 전에 네 가지를 확인했습니다.
 

  • "왜 먼저 받았는가" - 일정이나 심사처럼 결과와 상관없는 바깥 사정으로 갈렸다면 쓸 수 있지만, 원래 지표가 좋아지고 있던 곳을 골라 먼저 적용했다면 비교가 성립하지 않습니다.
  • "적용 전에 나란히 움직였는가" - 변화가 들어가기 전 몇 주 동안 두 그룹의 지표가 같은 기울기로 움직였는지 봅니다. 이게 어긋나 있으면, 적용 뒤에 벌어진 차이가 우리 때문인지 원래 흐름 때문인지 구분할 수 없습니다.
  • "두 그룹이 서로 영향을 주지 않는가" - 먼저 받은 쪽의 변화가 나중에 받는 쪽으로 흘러 들어가거나, 나중에 받는 쪽이 소식을 미리 듣고 움직이지 않는지 봅니다.
  • "같은 시기에 한쪽에만 들어간 변화는 없는가" - 이벤트, 마케팅, 다른 업데이트가 한쪽 그룹에만 겹치지 않았는지 달력부터 맞춰 봅니다.


대시보드는 먼저 받은 쪽과 아직 안 받은 쪽의 적용 전후 변화를 그대로 나란히 놓고 보고 있었습니다. 이 네 가지를 통과하는 대조군을 새로 잡아 다시 계산했더니, 대시보드에서 보던 효과의 4분의 1이 사라졌습니다.

우리가 적용한 변화에 효과가 없었다는 뜻은 아닙니다. 적용 전 구간으로 거슬러 올라가 보니, 대시보드가 비교하던 두 그룹은 처음부터 다른 기울기로 움직이고 있었습니다. 새로 잡은 대조군은 적용 전 흐름이 실험군과 거의 겹쳤고요. 사라진 4분의 1은 우리가 만든 변화가 아니라, 두 그룹이 원래부터 다르게 움직이던 몫이었던 겁니다. 그대로 갔다면 그 흐름까지 우리 성과로 계산해 다음 분기 계획을 세웠겠죠.

이 방식을 처음 제안했을 때 협업 팀의 구성원들은 반신반의하지 않았습니다. 데이터로 이야기하는 방식이 이미 자리 잡혀 있었거든요. Commitment 편과 Diffusion 편을 거치며 쌓아온 것들이 여기서 제값을 했습니다.


질문은 오히려 결과가 나온 뒤에 왔습니다.
 

설계 때는 조용하다가 숫자가 나오면 "그때 업데이트 때문 아닌가요?", "그 시기에 비슷한 장르 신작이 나왔잖아요" 같은 이야기가 나왔어요


게임은 업데이트, 이벤트, 마케팅, 시즌이 동시에 돌아가서 지표가 움직이면 원인 후보가 늘 대여섯 개라, 충분히 나올 법한 질문입니다. 다만 그 질문은 주로 결과가 자기 예상과 다를 때 등장했습니다.

그럴 때 저는 그 요인이 왜 영향이 없었는지를 설명하려 들지 않았습니다. 대신 그게 얼마나 영향을 줬어야 결론이 뒤집히는지를 따졌어요. 업데이트가 두 그룹에 비슷하게 영향을 줬다면, 두 그룹의 전후 변화를 빼는 과정에서 지워집니다. 효과를 통째로 설명하려면 한쪽 그룹에만 치우쳐, 그것도 우리가 본 효과만큼 크게 작용했어야 하죠.
 

저는 그 크기를, 지난 업데이트나 비슷한 장르 신작이 나왔을 때 같은 지표에서 바로 이 두 그룹 사이가 실제로 얼마나 벌어졌는지와 비교했습니다. 이렇게 물으면 반박이 확인할 수 있는 질문이 됩니다. 여기에 두 가지를 더 확인했습니다.
 

  • "상관없는 지표도 흔들렸는가" - 신작이 나오면 함께 흔들릴 만하지만, 우리가 바꾼 것과는 관계없는 지표를 하나 골라 봅니다. 정말 신작 때문이라면 그 지표에서도 두 그룹 사이가 벌어졌어야 합니다. 거기가 조용하다면 신작으로 설명하기는 어려워지는 거죠.
  • "아무 일도 없던 구간에서도 효과가 나오는가" - 아무것도 적용하지 않은 지난 구간에 가짜 적용 시점을 두고 같은 계산을 돌려 봅니다. 거기서도 효과가 나온다면, 방식 자체가 바깥의 흔들림을 효과로 읽고 있다는 뜻이니까요.


대부분은 이 확인을 거치고 나면, 결론을 뒤집을 만큼 한쪽에 쏠린 영향은 현실적이지 않다는 데 합의하며 정리됐습니다. 결과를 공유할 때도 결론만 올리지 않았습니다. 이 숫자가 어떤 조건에서 성립하는지, 우리 프로덕트의 어떤 맥락과 함께 읽어야 하는지를 데이터와 유저 이야기로 함께 보여줬어요.

그러자 회의의 질문이 Trustworthy Numbers 편에서 이야기한 "그래서 이 숫자, 믿어도 되나요?"에서
 

"그럼 이 결과를 바탕으로 다음엔 뭘 해볼까요?"

로 바뀌더라고요. 반박을 막는 게 목적이 아닙니다. 반박을 데이터로 검증 가능한 형태로 바꾸는 게 목적입니다.

 

4. 완벽하지 않아도, 감보다는 낫다

그래도 끝까지 남는 반박이 하나 있습니다.
 

그 방법은 100% 확실한 게 아니잖아요.


맞습니다. 같은 조건이라면, 실험 없이 한 분석은 무작위 배정을 통한 A/B 테스트보다 확신이 약할 수밖에 없습니다. 문제는 무엇과 비교하느냐입니다.

대안이 완벽한 실험이라면 당연히 실험을 해야죠. 그런데 대안이 "그냥 감으로 결정하기"라면, 가설과 전제를 드러내고 최선을 다해 추정한 숫자가 훨씬 낫지 않을까요?
 

제 기준은 가능하면 실험을 하되, 안 되면 왜 안 되는지를 세 갈래 중 하나로 적어두고, 최선의 비교 대상을 만들어 전제를 밝힙니다. 그것마저 어려우면 최소한 우리가 무엇을 모르는지라도 적어둡니다. 모르고 내리는 결정과 모른다는 걸 알고 내리는 결정은 다르거든요. 후자는 적어도 어디를 지켜봐야 하는지를 압니다.


실험 문화의 완성은 실험 건수에 있지 않다고 생각합니다.
 

실험할 수 있는 것은 실험하고, 실험할 수 없는 것 앞에서도 "그럼 어떻게 확인하죠?"라는 질문을 포기하지 않는 것.

 

5. 다음 글에서는

이제 마지막 한 편이 남았습니다. 오늘 이야기한 결정들에는 공통점이 하나 더 있어요.
 

유저를 두 그룹으로 나눠 미리 확인해볼 수 없는 결정은, 대개 모두에게 한 번에 나가는 결정이기도 합니다. 일부에게 먼저 내보내고 거둬들일 수 있었다면 애초에 실험을 했겠죠. 가격은 되돌려도 그사이 유저가 느낀 불신까지 돌아오지는 않고, 대규모 업데이트는 롤백해도 유저가 이미 겪은 경험이 남습니다. 검증하기 가장 어려운 결정이, 되돌리기도 가장 어려운 결정인 셈입니다.
 

이런 결정일수록 결론만큼이나, 그 결론이 무엇을 근거로 누구의 판단으로 내려졌는지가 남아야 합니다. 오늘 이야기한 전제와 조건을 드러내는 일도 결국 그걸 남기는 일이었고요.


그런데 요즘은 그 근거를 만드는 자리에 AI가 들어오기 시작했습니다. 분석도, 요약도, 권고까지 적힌 결정 문서도 AI가 먼저 써 옵니다. 시리즈의 마지막 글 Decisions in the Age of AI는 이 질문에서 시작합니다.
 

해당 액션을 그대로 승인했다면, 과연 그 결정은 누가 내린 걸까요?


 

함께 보면 좋은 강의

『데이터 실무자의 사고력 강화 : AI 인과추론 실무』는 크래프톤 데이터 분석가 신진수님과 함께 상관관계와 인과관계를 구분하는 사고 방식, 그리고 실무에서 실제로 활용되는 실험과 판단의 기준을 다루는 강의입니다.

단순히 분석하는 것을 넘어, “무엇이 무엇을 움직였는가”를 고민해보고 싶다면 추천드립니다.

크래프톤 DA 신진수의 AI 인과추론 실무

 ? 『데이터 실무자의 사고력 강화 : AI 인과추론 실무』 보러 가기 

 

TAG :
댓글 입력