-
Notifications
You must be signed in to change notification settings - Fork 0
/
3step-ab-test.html
476 lines (341 loc) · 36 KB
/
3step-ab-test.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
<!DOCTYPE html>
<html lang="ko"><head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-E4YBHG63E3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-E4YBHG63E3');
</script>
<!-- Meta Tag for Basic Setting -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="locale" content="ko_KR">
<meta name="google-site-verification" content="Q1Gkv54gFGh2MxaT7ehKmua6BROtBIJR_ki_z_1_EwE" />
<meta name="naver-site-verification" content="d9a8213816d39cd0b58123c579fb50704ab632a8"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="theme-color" content="#ffffff">
<meta name="mobile-web-app-capable" content="yes">
<meta name="referrer" content="always"><meta property="og:title" content="매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드 | 매거진 입맛">
<meta property="og:url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="og:type" content="article">
<meta property="og:site_name" content="매거진 입맛">
<meta property="og:description" content="AB 테스트가 좋은 건 알겠는데 막막하지 않나요? 가설 수립부터 결과 분석까지 3단계로 살펴봅니다.">
<meta property="og:image" content='https://dewberry9.github.io/assets/images/design/3step-ab-test/01.jpg'>
<meta name="by" content="이준환"><meta name="twitter:title" content="매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드 | 매거진 입맛">
<meta name="twitter:description" content="AB 테스트가 좋은 건 알겠는데 막막하지 않나요? 가설 수립부터 결과 분석까지 3단계로 살펴봅니다.">
<meta name="twitter:image" content='https://dewberry9.github.io/assets/images/design/3step-ab-test/01.jpg'>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://dewberry9.github.io/3step-ab-test">
<meta name="twitter:site" content="매거진 입맛">
<meta name="twitter:label1" content="Category">
<meta name="twitter:data1" content="">
<meta name="twitter:label2" content="Topic">
<meta name="twitter:data2" content="A/B 테스트">
<!-- Other Basic Meta Tag -->
<meta name="title" content="매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드 | 매거진 입맛">
<meta name="description" content="AB 테스트가 좋은 건 알겠는데 막막하지 않나요? 가설 수립부터 결과 분석까지 3단계로 살펴봅니다.">
<meta name="author" content="이준환">
<meta name="article:media_name" content="매거진 입맛">
<meta property="article:mobile_url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="article:pc_url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="article:mobile_view_url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="article:pc_view_url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="article:talk_channel_view_url" content="https://dewberry9.github.io/3step-ab-test">
<meta property="article:pc_service_home" content="https://dewberry9.github.io">
<meta property="article:mobile_service_home" content="https://dewberry9.github.io">
<!-- Post Date Tag -->
<meta property="article:published_time" content="2020-11-11T00:00:00+09:00">
<meta property="article:modified_time" content="2020-11-11T00:00:00+09:00">
<meta property="og:regDate" content="20201111000000">
<script type="application/ld+json">
{
"@context":"https://schema.org/",
"@type":"BlogPosting",
"mainEntityOfPage":{
"@id":"https://dewberry9.github.io/3step-ab-test"
},
"url":"https://dewberry9.github.io/3step-ab-test",
"headline":"매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드 | 매거진 입맛",
"description":"AB 테스트가 좋은 건 알겠는데 막막하지 않나요? 가설 수립부터 결과 분석까지 3단계로 살펴봅니다.",
"author":{
"@type":"Person",
"name":"이준환",
"url":"https://dewberry9.github.io",
"email":"[email protected]"
},
"publisher":{
"@type":"Organization",
"name":"매거진 입맛",
"logo":{
"@type":"ImageObject",
"url":"https://dewberry9.github.io/assets/images/logo.png"
},
"url":"https://dewberry9.github.io",
"email":"[email protected]"
},
"image":{
"@type":"ImageObject",
"url":"https://dewberry9.github.io/assets/images/design/3step-ab-test/01.jpg"
},
"datePublished":"2020-11-11T00:00:00+09:00",
"dateModified":"2020-11-11T00:00:00+09:00"
}
</script><!-- Fonts -->
<link rel="stylesheet preload prefetch" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/static/pretendard-dynamic-subset.css" />
<link rel="stylesheet preload prefetch" type='text/css' as="style" crossorigin href='/assets/fonts/stylesheet.css'>
<!-- Favicons -->
<link rel="apple-touch-icon" sizes="180x180" href='/assets/favicons/apple-touch-icon.png'>
<link rel="icon" type="image/png" sizes="32x32" href='/assets/favicons/favicon-32x32.png'>
<link rel="icon" type="image/png" sizes="16x16" href='/assets/favicons/favicon-16x16.png'>
<link rel="mask-icon" href='/assets/favicons/safari-pinned-tab.svg' color="#363059">
<link rel="manifest" href="/manifest.json">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="msapplication-TileColor" content="#da532c">
<link rel="stylesheet preload prefetch" as="style" type="text/css" href='/assets/post.css'>
<link rel="dns-prefetch" href="https://res.cloudinary.com"><!-- ETC -->
<link rel="canonical" href="https://dewberry9.github.io/3step-ab-test">
<link rel="alternate" href="https://dewberry9.github.io/feed.xml" type="application/atom+xml" title="Atom 0.3">
<title>매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드 | 매거진 입맛</title>
<script data-ad-client="ca-pub-7525347021497850" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head><body>
<header class="top-nav" id="nav">
<nav>
<a href="/" title="Magazine Epmat" class="logo">
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.655 0h-1.31v9.557L6.567 1.28l-1.134.655 4.779 8.277-8.277-4.779-.655 1.134 8.277 4.778H0v1.31h9.557L1.28 17.433l.655 1.134 8.277-4.779-4.779 8.277 1.134.655 4.778-8.277V24h1.31v-9.557l4.778 8.277 1.134-.655-4.779-8.277 8.277 4.779.655-1.134-8.277-4.778H24v-1.31h-9.557l8.277-4.778-.655-1.134-8.277 4.779 4.779-8.277-1.134-.655-4.778 8.277V0Z" fill="#816CF8"/>
</svg>
<span class="nosvg">매거진 입맛</span>
</a>
<div class="dynamic-nav">
<ul>
<li>
<a id="btn-article" href="/article" title="매거진 입맛 • 프로덕트 디자인" class="op75">프로덕트 디자인</a>
</li>
<li>
<a id="btn-review" href="/review" title="매거진 입맛 • 마시다" class="op75">마시다</a>
</li>
<li>
<a id="btn-read" href="/read" title="매거진 입맛 • 읽다" class="op75">읽다</a>
</li>
<!-- <li>
<a href="https://shouk.today?utm_source=mag_epmat" target="_blank" class="op75"><span class="mobile-disappear">인사이트 커뮤니티</span> 슉</a>
</li> -->
</ul>
</div>
</nav>
</header>
<div id="content">
<script>
document.getElementById('nav').classList.add('show')
</script>
<section class="post-content-container space-container">
<div class="space-left">
<div class="post-content-side-container">
<h3 class="post-share-title rise-target">매거진 입맛, 자유롭게 공유하세요.</h3>
<p class="post-share-description rise-target">개인 블로그, 메모, 사내 래퍼런스 공유 채널, 어디든지 좋습니다.
인사이트는
나눌 수록 커지니까요.
</p>
<button id="post-share" class="rise-target copy">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-subtract"><path d="M0 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v2h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-2H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2z"/></svg>이 글의 공유 링크 복사
</button>
<a rel="noreferrer" class="outerlink-container rise-target" target="_blank" href="https://forms.gle/wvj73q8MWBv2j44h7" title="매거진 입맛 뉴스레터 구독 신청">
<h3>뉴스레터 구독 신청</h3>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-arrow-right-short"><path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"/></svg>
</a>
<a rel="noreferrer" class="outerlink-container rise-target" target="_blank" href="https://forms.gle/26d5yuzwQB3D44zm7" title="콘텐츠 주제 제안">
<h3>콘텐츠 주제 제안</h3>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 16 16" fill="currentColor" class="bi bi-arrow-right-short"><path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"/></svg>
</a>
</div>
</div>
<!-- 본문 -->
<div class="space-right">
<div class="post-content">
<h1 class="post-title">매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드</h1>
<p class="infor"><strong>AB 테스트 가이드라인 시리즈</strong><br />
1부 - <a title="매거진 입맛 - 인간 VS AI 카피라이팅 대결" href="/human-vs-ai-copywriting-competition" rel="noopener">인간 VS AI 카피라이팅 대결</a><br />
2부 - 매출 만드는 AB 테스트, 시작이 막막한가요? 3단계 가이드<br />
3부 - <a title="매거진 입맛 - 처음 시작하는 구글 옵티마이즈 + AB 테스트 실무 팁" href="/starting-google-optimize" rel="noopener">처음 시작하는 구글 옵티마이즈 + AB 테스트 실무 팁</a></p>
<p class="full-size"><img src="https://cdn.jsdelivr.net/gh/dewberry9/dewberry9.github.io/assets/images/design/3step-ab-test/02.jpg" alt="AB Test in Many Apps" title="이미 많은 기업에서 활용 중인 AB 테스트" loading="lazy" /></p>
<p>한때 스타트업 업계에 유행이 돌았던 그로쓰 해킹(Growth Hacking)에 대해 조금이라도 관심이 있는 분이라면 AB 테스트라는 방법론 역시 모르는 바가 없지는 않을 겁니다. 룰렛 기능을 도입하여 특정 횟수 이상 운행한 사용자를 23% 늘린(결과적으로 전체 운행 수가 증가하게 됩니다.) <a href="https://engineering.grab.com/grabbing-growth-a-growth-hacking-story" title="Grab's Roulette AB Test">그랩(Grab)의 사례</a>, 사용자 맞춤으로 유명한 넷플릭스(Netflix) 섬네일 알고리즘의 모태가 된 <a href="https://netflixtechblog.com/selecting-the-best-artwork-for-videos-through-a-b-testing-f6155c4595f6" title="Netflix's Movie Artwork Optimizing">AB 테스트</a>, 에어비앤비(Airbnb)의 <a href="https://goodui.org/leaks/airbnb-gets-creative-in-this-multiple-variation-homepage-experiment/" title="Airbnb's Landing Page AB Test">랜딩 페이지 AB 테스트</a> 등 데이터 좀 다룬다 싶은 회사는 모두 AB 테스트 성공담 하나씩을 가지고 있습니다. AB 테스트가 서비스의 성장과 회사의 매출에 도움을 주는 확실한 방법론이라는 것은 명료해 보입니다.</p>
<p>AB 테스트가 좋은 건 알겠는데 시작하려니 막막하지 않나요? 큰 그로쓰 해킹 팀이 있는 것도 아니고, 테스트 문화나 맞춤 툴도 없는 상태일 수도 있습니다. 그야말로 허허벌판에서 새로 시작해야 하는 겁니다. 이런 상황에서 AB 테스트로 성장과 매출을 끌어낼 수 있을까요? 그전에 제대로 된 테스트를 한번 진행할 수나 있을까요?</p>
<h2 id="ab-테스트-저도-할-수-있을까요">AB 테스트 저도 할 수 있을까요?</h2>
<p>제 대답은 ‘누구라도 가능하다.’입니다. AB 테스트와 데이터 분석에 대한 이해와 적절한 실행 방법만 알고 있으면 큰 그로쓰 팀이 없어도, 그렇기는커녕 회사에 누구 하나 AB 테스트에 대해 알고 있는 사람이 없어도 충분히 해내고도 남습니다. 실제로 저는 AB 테스트에 대한 정보 없이 약간의 데이터 분석과 개발 지식만을 가지고 AB 테스트를 시작해서 1년 반 동안 100개에 가까운 AB 테스트를 거의 혼자 해냈습니다. 이 글을 보는 누구라도 해낼 수 있는 일입니다. 2부로 구성된 이번 가이드가 AB 테스트를 시작하려는 여러분께 도움이 되길 바랍니다.</p>
<p class="normal-size"><img src="https://cdn.jsdelivr.net/gh/dewberry9/dewberry9.github.io/assets/images/design/3step-ab-test/03.jpg" alt="AB Test Cycle" title="AB 테스트 사이클" loading="lazy" /></p>
<p>AB 테스트는 크게 다음과 같은 3단계를 따릅니다.</p>
<ol>
<li>가설 수립</li>
<li>실험 진행</li>
<li>결과 분석</li>
</ol>
<p>AB 테스트에서는 셋 중 하나라도 빠질 수 없는 핵심 단계입니다. 이번 가이드 1부에서는 위 3단계를 훑어보며 무엇을 하는 단계인지, 주의할 점이 무엇인지 살펴보겠습니다. 다음 2부에서는 AB 테스트 툴 중 하나인 구글 옵티마이즈(Google Optimize)를 실제로 서비스에 설치하고 1부에서 설명했던 과정에 따라 진행하고 실무적인 팁을 알려드리겠습니다.😎</p>
<h2 id="테스트의-시작-가설-세우기">테스트의 시작, 가설 세우기</h2>
<p>앞서 말한 3단계가 모두 중요하다지만 그중에서도 가설을 세우는 단계는 무엇보다도 중요합니다. 가설을 세우고 → 실험하고 → 결과를 얻고 → 결과에서 비롯된 인사이트를 바탕으로 새 가설을 세우고… 이런 연속적인 과정으로 진행되는 AB 테스트의 특성상 한 사이클을 시작하는 가설 세우기 단계에서 쭉 뻗은 고속도로를 만나느냐, 빙빙 돌아가는 산길을 만나느냐가 결정됩니다.</p>
<p>AB 테스트의 가설은 핵심적인 아이디어와 함께 어떠한 요소를 어떤 방식으로 바꿔서(혹은 추가하거나 제거해서) 어떤 지표를 바꿀 것인지 특정해야 합니다. 예를 들어 이름과 이메일 주소를 한 페이지에서 한꺼번에 받는 회원가입 퍼널이 있다고 해봅시다. 현재 이탈률은 60%입니다. 이탈률의 원인을 찾는 방법은 여러 가지가 있습니다. 직접 사용자를 앉혀놓고 왜 회원가입을 진행하지 못하는지 관찰하고 설문할 수도 있고, Hotjar와 같은 레코딩 툴을 이용해서 여기서 이탈하는 사용자가 어떤 행동을 하는지 관측할 수도 있습니다. 여기서 도출된 문제를 해결하면 당연히 회원가입 비율도 늘어날 것입니다. 이 부분에서 중요한 것은 리서치로 합당한 문제를 찾아내서 그것을 토대로 가설을 만드는 일도 좋지만, 리서치 비용이 크다거나 시간이 오래 걸릴 일이 되는 경우에는 과감하게 생략하고 머릿속으로 합리적인 가설을 세우는 것만으로 충분하다는 점을 염두에 두어야 합니다. <strong>AB 테스트의 목적은 전환율 개선이지 문제 파악이 아닙니다.</strong> 보통 파악한 문제를 해결하게 될 경우 전환율이 개선되기 때문에 가설 수립 전 리서치에 힘을 쏟게 되는 경우가 많습니다. 그러나 리서치에 많은 리소스가 필요하다면 깔끔하게 생략하는 것이 낫습니다. 어차피 리서치로 찾아낸 문제가 진짜인지, 해결한다면 전환율을 개선할 수 있는지 확인하려면 AB 테스트를 거칠 수 밖에 없습니다. AB 테스트의 우선순위를 항상 높게 잡아두고 될 수 있는 한 많이, 자주 반복하는 게 중요합니다. 이에 대해서는 결과 분석 단계에서 설명하겠습니다.</p>
<p class="normal-size"><img src="https://cdn.jsdelivr.net/gh/dewberry9/dewberry9.github.io/assets/images/design/3step-ab-test/04.jpg" alt="Structure of the AB test hypothesis" title="AB 테스트 가설의 구조" loading="lazy" /></p>
<p>위 예시에서는 ‘한꺼번에 많은 정보를 요구하기 때문에 이탈률이 높다.’라고 문제를 생각해보겠습니다. 좀 더 글자 수가 적어 입력하기 쉬운 이름 정보를 먼저 받고, 다음 화면에서 이메일 주소를 받는 퍼널을 구상합니다. 가설은 <strong>‘이름과 이메일 주소를 한 페이지에서 입력받는 현재의 퍼널 A를 / 이름을 먼저 입력받고 다음 페이지에서 이메일 주소를 입력받는 퍼널 B로 바꾸면 / 회원 가입률이 / 높아질 것이다.’</strong>가 됩니다. 가설 수립 단계에서 어떻게 데이터를 수집할지 미리 생각해두어야 합니다. 지금과 같은 가설이라면 회원 가입률을 어떻게 추적할지 알아둬야 합니다. 이번 목차에서는 가설 수립에 대한 내용만 다루고 데이터 수집 등 보다 자세한 내용은 후에 결과 분석 단계에서 설명하겠습니다.</p>
<p>가설 수립 단계에서 AB 테스트에 대한 리포트 역시 준비하게 되는데
<a title="AB Test Templete on Notion" href="https://dewberry9.notion.site/dewberry9/AB-bd3ad2cfce654938b50e4e04f915c0c7" target="_blank" rel="noopener">이런 형태의 노션(Notion) 템플릿</a>으로 미리 만들어놓고는 합니다. (복제해서 활용하세요!) 템플릿에 맞춰서 AB 테스트를 준비하면 불완전했던 가설과 계획의 구조를 다듬을 수 있습니다.</p>
<h2 id="실험-진행">실험 진행👨🔬</h2>
<p>가설이 수립되면 실험 진행을 준비합니다. 실험 진행 단계 역시 3가지 요소로 나눠볼 수 있습니다.</p>
<ol>
<li>분기</li>
<li>구현</li>
<li>지표 추적</li>
</ol>
<p>분기는 수립된 가설에 따라 각각 원본 A와 대안 B를 보여줄 트래픽을 분리하는 작업입니다. AB 테스트 기능을 직접 개발하는 경우라면 DB의 PK 값처럼 고유한 식별자가 그 기준이 될 겁니다. PK가 홀수인 사용자는 원본 A를 보여주고, 짝수라면 대안 B를 보여주는 식입니다. <a href="http://optimize.google.com" title="Google Optimize">구글 옵티마이즈</a>, <a href="https://www.hubspot.com/" title="Hubspot">허브스팟(Hubspot)</a>, <a href="https://vwo.com/" title="VWO">VWO</a>, <a href="https://www.optimizely.com/" title="Optimizelay">옵티마이즐리(Optimizely)</a>, <a href="https://unbounce.com" title="Unbounce">언바운스(Unbounce)</a> 등 많은 AB 테스트 툴에서 기본적으로 제공하는 기능이니 기술적인 부분에서는 별로 고민할 것이 없습니다.</p>
<p class="normal-size"><img src="https://cdn.jsdelivr.net/gh/dewberry9/dewberry9.github.io/assets/images/design/3step-ab-test/05.jpg" alt="Notes for when traffic diverges" title="분기 시 주의점" loading="lazy" /></p>
<p>AB 테스트를 하려고 트래픽을 분기할 때 고려해야 하는 가장 중요한 사항은 나누는 트래픽이 해당 실험에 대해 얼마나 순수한지입니다. 가령 위에서 예시로 든 회원가입 퍼널 실험을 진행하는데 회원가입 폼이 나오기 전에 랜딩 페이지가 있다고 해봅시다. 랜딩 페이지에서 회원가입 퍼널 단계로 진입하는 비율과 회원 가입률 역시 개선하기 위해 AB 테스트를 진행하고 있습니다. 이럴 때 회원가입 퍼널 실험까지 동시에 진행하게 되면 결과적인 지표인 회원 가입률의 <strong>데이터가 뒤섞여 어떤 실험의 대안 때문에 회원 가입률이 변했는지 알 수 없어집니다.</strong> 이미 진행하고 있는 랜딩 페이지에서의 실험이 끝난 후에 회원가입 퍼널 실험을 진행하는 것이 맞습니다.</p>
<p>물론 위의 상황에서도 다양한 변주가 가능합니다. 랜딩 페이지에서부터 트래픽을 나눠서 랜딩 페이지 실험용과 회원가입 퍼널 실험용으로 처음부터 분리하던지, 랜딩 페이지 실험의 원본 트래픽과 대안 트래픽에 각각 회원가입 퍼널 실험 분기를 적용해서 4가지 서로 다른 조합이 나오는 MVT(다변수 실험; Multivariate Test)을 진행할 수도 있습니다. 실험에 적용된 각 안의 데이터가 섞여서 오염되는 일만 없도록, 상황에 맞는 방식을 선택하면 됩니다.</p>
<p>AB 테스트에 동원된 트래픽이 계획대로 분기됐다면 각각 원본과 대안을 적용해주면 됩니다. 이때의 구현은 AB 테스트라고 해서 특별한 규칙이 있는 것은 아닙니다. 그냥 버그가 없도록 꼼꼼하게 만들면 됩니다. 예전에 했던 AB 테스트 중에 대안의 전환율이 큰 폭으로 하락한 적이 있었는데, 알고 보니 특정 브라우저에 대안을 적용하면 기능이 작동하지 않는 문제가 있었습니다.😅 이처럼 가설과 무관한 데이터를 받지 않도록 주의해서 대안을 구현하면 됩니다.</p>
<p>마지막으로 보고자 하는 지표를 추적할 수 있도록 준비가 필요합니다. 직접 개발한 경우라면 지표를 DB에서 볼 것인지, 그렇다면 어떤 쿼리를 사용해서 확인할 것인지, 아니면 엠플리튜드(Amplitude)나 믹스패널(Mixpanel)과 같은 외부 추적 툴을 사용할 것인지, 그렇다면 지표를 추적하기 위한 이벤트는 잘 심겨 있는지 확인해야 합니다. 앞에서 언급한 AB 테스트 툴을 사용한다면 해당 툴에 맞는 지표 추적 방식을 따르는 게 좋습니다.</p>
<p>여기까지 마쳤다면 AB 테스트의 모든 준비가 끝났습니다!🎉 이제 AB 테스트를 시작하고 현황을 추적하면 됩니다.</p>
<h2 id="수확-거두기---결과-분석">수확 거두기 - 결과 분석</h2>
<p>실험 진행 단계에서 지표 추적 준비를 잘 마치셨다면 AB 테스트 시작 직후 속속 들어오는 데이터를 확인할 수 있을 겁니다. AB 테스트 시작 초기에는 리포트를 정리하는 것 외에는 별달리 만질 수 있는 부분이 없지만, 종종 데이터를 체크하면서 문제가 있지는 않은지 체크해줍니다.</p>
<p><strong>AB 테스트를 처음 진행하는 분이 실수하는 것 중 가장 흔한 일은 AB 테스트를 너무 빨리 끝내는 것입니다.</strong> 위의 예시에서 AB 테스트 시작 후 하루 동안 데이터를 모은 결과 원본 A의 회원 가입률이 40%(20명 중 8명), 대안 B가 20%(25명 중 5명)라고 나왔습니다. 원본 A가 나은 걸까요? 이 시점에서는 확신할 수 없습니다. 마치 똑같은 동전을 각각 10번씩 던졌는데 한번은 앞면이 2번 나오고, 다른 경우에는 8번 나온 경우와 같습니다. 10번이 아니라 100번, 1,000번을 던진다면 앞면이 나오는 횟수는 점차 비슷해질 것입니다. 데이터가 적기 때문에 우연이 적용할 수 있는 시점이라는 의미입니다. 그렇다면 결론을 내릴 때를 어떻게 알 수 있을까요?</p>
<p class="normal-size"><img src="https://cdn.jsdelivr.net/gh/dewberry9/dewberry9.github.io/assets/images/design/3step-ab-test/06.jpg" alt="AB Test Calculator" title="AB 테스트 계산기" loading="lazy" /></p>
<p>AB 테스트 결과의 통계적 유의성을 계산하는 계산기가 웹상에 이미 많이 있습니다. 보통 신뢰구간 90%, 95%, 99% 이렇게 나눠서 어떤 신뢰구간에서 유효한 결과인지 체크해주는데요, 95% 신뢰구간에서 유효한 결과라면 실제로 유의미한 차이가 있는 데이터라고 결론 내리고는 합니다. 통계적 유의성, P값(P-Value)에 관해 설명하려면 글이 너무 길어질 듯싶고, 제대로 설명할 수 있을지나 의문이라서 직접 알아보시는 것을 추천해 드립니다.</p>
<p>이렇게 해서 가설 수립부터 실험 설계, 진행에 지표를 확인하는 것까지 AB 테스트의 큰 과정이 끝났습니다. 다이나믹한 차이를 보이는 결과가 나오면 좋겠지만 사실 그런 일은 거의 일어나지 않습니다. 대부분의 실험이 10%p대의 개선은커녕 유효한 차이도 못 내고 끝납니다. 차라리 대안의 지표가 유효한 차이로 떨어져서 명확한 인사이트라도 얻을 수 있다면 좋을 텐데, 그런 경우도 드뭅니다. 이 때문에 AB 테스트를 최대한 많이, 자주 돌리는 일이 중요한 것입니다. <a href="https://hbr.org/2020/03/building-a-culture-of-experimentation" title="Utility of Booking.com's AB Tests">Booking.com의 수만 가지 AB 테스트에서 10% 정도만이 성공적인 개선을 이뤄냈습니다.</a> 구글에서도 엄청나게 많은 AB 테스트를 진행했지만 90%가 아무런 변화도 주지 못하고 끝났습니다. AB 테스트는 절대 실패하지 않는 방법입니다. 그러나 성공하기도 어려운 방법입니다. 이러한 AB 테스트의 본질을 깨닫고 나면 무얼 해야 하는지 확실해집니다. 더 많이, 더 자주. 그러다 대박이 몇 번 터지고 나면 슬슬 감이 잡힐 겁니다.</p>
<p>게다가 단순히 최종적인 지표가 별 차이가 없다고 해서 결과 또한 마찬가지라는 이야기는 아닙니다. 전환율은 개선하지 못했지만, 다음 AB 테스트를 위한 가설에 기여하는 AB 테스트도 상당히 많습니다. 계속 언급했던 예시에서 이름과 이메일 주소 입력란을 두 화면으로 분리했던 대안을 떠올려봅시다. 해당 대안의 회원 가입률은 40%로 원본과 달라진 게 없습니다. 그런데 자세히 뜯어보니 무언가 다릅니다. 이름 입력 단계의 이탈률은 10%가 안 되지만 이메일 주소 입력 단계는 45%에 달합니다. 결국 문제는 이메일 주소였다는 이야기입니다. 이 AB 테스트를 진행하지 않았더라면 몰랐을 사실입니다.</p>
<p>이렇게 새로운 인사이트가 도출되고, 가설이 수립됩니다. 다시 한번 AB 테스트가 시작됩니다.</p>
<h2 id="실험-종료-다음-실험-시작">실험 종료, 다음 실험 시작</h2>
<p>이번 글은 AB 테스트를 해보고 싶지만 해본 경험도, 알려줄 만한 곳도 마땅치 않아 고민하고 계신 분들을 위해 쓰인 글입니다. 빈약한 경험이나마 도움이 될까 정리해봅니다.</p>
<p>다음 2부에서는 실제로 제가 썼던 툴인 구글 옵티마이즈를 사용해서 설치부터 AB 테스트 진행까지 해보는 내용으로 찾아뵙겠습니다.</p>
</div>
<div class="post-feedback">
<p>이번 글은 어땠나요? 피드백을 나눠주세요.</p>
<a href="https://forms.gle/EMf71iYTEXAbEL868" target="_blank" rel="noopener noreferrer" title="좋았어요 피드백 남기기">👍 좋았어요!</a>
<a href="https://forms.gle/bXJA17sczKPTqtLR7" target="_blank" rel="noopener noreferrer" title="별로였어요 피드백 남기기">👎 별로였어요.</a>
</div>
<!-- <a class="shouk-container" target="_blank" href="https://shouk.today?utm_source=mag_epmat&utm_medium=content_banner">
<div class="container-left">
<h3>적게 읽고 많이 알아가세요.<br>인사이트 요약 커뮤니티 슉</h3>
<p>
팟캐스트, 영문 뉴스레터, 아티클, 1분 내외 분량 단순명료 요약
</p>
</div>
<div class="container-right">
<img src="/assets/images/shouk_banner.png" alt="banner">
</div>
</a> -->
</div>
</section>
<!-- 관련된 포스트 목록 -->
<section class="post-list related-post-list three-row">
<!-- 동일 카테고리 -->
<!-- 2-1 -->
<a title="그림판 난이도로 만드는 3D 일러스트. Spline" href="/introduce-spline-3d" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/introduce-spline-3d/01.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>그림판 난이도로 만드는 3D 일러스트. Spline</h3>
<p class="post-excerpt">이렇게 쉬우면서 HTML Canvas 출력, 인터랙션까지 가능한 무료 3D 일러스트 툴, Spline을 살펴보고 감각적인 일러스트를 만들어봅니다. (윈도우/맥 호환)</p>
</div>
</div>
</a>
<a title="처음 시작하는 구글 옵티마이즈 + AB 테스트 실무 팁" href="/starting-google-optimize" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/starting-google-optimize/01.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>처음 시작하는 구글 옵티마이즈 + AB 테스트 실무 팁</h3>
<p class="post-excerpt">옵티마이즈로 AB 테스트 해봅니다. 타 트래킹 툴과 같이 쓰는 법, SPA에서 쓰는 법, 팁도 알려드립니다.</p>
</div>
</div>
</a>
<a title="인간 VS AI 카피라이팅 대결" href="/human-vs-ai-copywriting-competition" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/design/human-vs-ai-copywriting-competition/01.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>인간 VS AI 카피라이팅 대결</h3>
<p class="post-excerpt">인간의 카피와 GPT-3의 카피라이팅 대결. 누가 승리했을까요?</p>
</div>
</div>
</a>
<div class="ads-container ads-container-mobile-feedcard rise-target">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7525347021497850" crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6h+cl+f-1w+d1"
data-ad-client="ca-pub-7525347021497850"
data-ad-slot="9019438848"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<!-- 비동일 카테고리 -->
<a title="한겨울의 과수원. 발베니 더블우드 12년" href="/balvenie-doublewood-12" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/daily/balvenie-doublewood-12/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>한겨울의 과수원. 발베니 더블우드 12년</h3>
<p class="post-excerpt">과즙 풀장에서 헤엄치고 싶다면. 싱글 몰트 스카치 위스키 발베니 더블우드 12년 리뷰.</p>
</div>
</div>
</a>
<a title="다이어트한 셰리 위스키. 글렌드로낙 포그 10년" href="/glendronach-forgue" class="post-list-item rise-target sequential-rise-target">
<div class="post-thumbnail">
<div class="img-source" style="background-image: url('/assets/images/daily/glendronach-forgue/00.jpg')"></div>
</div>
<div class="post-description">
<div class="post-intro">
<h3>다이어트한 셰리 위스키. 글렌드로낙 포그 10년</h3>
<p class="post-excerpt">여전히 훌륭한 셰리 오크통 숙성 위스키. 그러나 저숙성의 벽 앞에서 무너져버린 감미로운 여운. 싱글 몰트 스카치위스키 글렌드로낙 포그 10년 리뷰.</p>
</div>
</div>
</a>
<div class="ads-container ads-container-relative-feedcard rise-target third-position">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7525347021497850" crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6h+cl+f-1w+d1"
data-ad-client="ca-pub-7525347021497850"
data-ad-slot="9019438848"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
</section>
<script src="/assets/post-share.js"></script>
<script>document.getElementById('btn-article').classList.remove('op75');
document.getElementById('btn-article').classList.add('nav-item-act');</script>
</div>
<footer id="footer" class="">
<section>
<div class="link-group"><a id="home-page" href='/' title="Main">매거진 입맛</a></div>
<div class="link-group">
<p class="group-title">Category</p>
<a href="/article" title="매거진 입맛 • 프로덕트 디자인">프로덕트 디자인</a>
<a href="/review" title="매거진 입맛 • 마시다">마시다</a>
<a href="/read" title="매거진 입맛 • 읽다">읽다</a>
</div>
<div class="link-group">
<p class="group-title">Social</p>
<a rel="noreferrer" id="fb-link" href="https://www.facebook.com/magepmat" title="Facebook" target="_blank">Facebook</a>
<a rel="noreferrer" id="insta-link" href="https://www.instagram.com/mag_epmat/" title="Instagram" target="_blank">Instagram</a>
<a rel="noreferrer" id="rss-link" href="/feed.xml" title="RSS" target="_blank">RSS</a>
</div>
<div class="link-group">
<p class="group-title">Contact</p>
<a id="mail-link" href="mailto:[email protected]" title="Email">Email</a>
<a href="https://www.linkedin.com/in/junhwanlee" target="_blank" rel="noopener noreferrer">LinkedIn</a>
<a href="https://www.rocketpunch.com/@junhwanlee" target="_blank" rel="noopener noreferrer">Rocketpunch</a>
</div>
<div class="link-group">
<p class="group-title">Request</p>
<a href="https://forms.gle/wvj73q8MWBv2j44h7" target="_blank" rel="noopener noreferrer">뉴스레터 구독</a>
<a href="https://forms.gle/26d5yuzwQB3D44zm7" target="_blank" rel="noopener noreferrer">주제 제안</a>
</div>
</section>
</footer>
</body>
<script src="/assets/scroll-animation.js"></script>
</html>