Class101 · 2022 – 2024
전사 BM 전환 프로젝트에서 S&D 도메인을 이끌고, 이후 Commerce 도메인으로 이동해 그룹 구독 설계, 개별판매 전환율 개선, 해지 방어 실험을 주도했습니다.
Led the S&D domain during the company-wide subscription pivot, then moved to Commerce to design the group plan, improve individual sales conversion, and run churn defense experiments.
Overview
COVID-19 특수가 꺼지면서 클래스101은 구조적인 성장 위기에 직면했습니다. 회사는 단건 판매 모델에서 월 ₩19,000 구독으로 전사 BM을 전환했고, 8개월의 재구축 끝에 3개국 동시 출시를 완료했습니다. 이후 커머스 도메인으로 이동해 구독자 수 정체 돌파, 개별판매 생태계 회복, 해지율 감소라는 세 가지 과제를 실험 기반으로 풀었습니다.
As COVID tailwinds faded, Class101 faced a structural growth crisis. The company pivoted from individual class sales to a ₩19,000/month subscription model and relaunched across 3 markets after 8 months of rebuilding. I then moved to the Commerce domain to tackle three problems: breaking the subscriber plateau, reviving the individual sales ecosystem, and reducing churn through experimentation.
Chapter 01
구독 전환 · S&D
Subscription Launch · S&D
다크테마 도입과 개인화 추천 섹션으로 콘텐츠 몰입도 및 전환율 개선. 8개월 리빌드 중 디자인 시스템과 Search & Discovery 도메인 단독 담당.
Improved content immersion and conversion through dark theme and personalized recommendations. Sole IC on design system and S&D during the 8-month rebuild.
Chapter 02
그룹 구독
Group Subscription
정체된 구독자 수를 돌파하기 위한 신규 플랜 0→1 설계. 멀티 디바이스 데이터와 이탈 설문을 연결해 그룹 구독 가설을 직접 도출.
Designed a 0→1 group plan to break the subscriber plateau. Independently derived the hypothesis by connecting multi-device usage data with exit survey signals.
Chapter 03
개별판매 2.0
Individual Sales 2.0
구독 전환 이후 위축된 PDP 전환율 회복. 3종 A/B 실험으로 "가격 노출 우선 UI"가 유효함을 확인하고 미리보기 기능 재도입.
Recovered PDP conversion shrunk after the subscription pivot. Confirmed "price-first UI" effectiveness through 3-variant A/B test and revived the preview feature.
Chapter 04
해지 방어
Churn Defense
수동적 해지 플로우를 분석하고 어피니티 다이어그래밍 워크샵으로 이탈 사유 6개 클러스터 분류. 두 가지 실험으로 해지율 최대 2.9% 감소.
Analyzed a passive cancellation flow, ran affinity diagramming workshops to classify 6 churn clusters. Two experiments reduced churn by up to 2.9%.
Chapter 01 of 04
COVID-19 이후 성장 둔화와 레거시 기술부채를 한 번에 해결하기 위한 전사적 BM 전환. 8개월 리빌드 동안 디자인 시스템과 Search & Discovery 도메인을 단독 담당.
A company-wide pivot to address post-COVID slowdown and accumulated tech debt simultaneously. Sole IC on design system and S&D domain across the 8-month rebuild.
Context & My Work
단건 구매 → 구독 전환 이후 "무엇을 들어야 할지 모르겠다"는 이탈을 막는 것이 S&D 도메인의 핵심 과제였습니다.
After the individual purchase → subscription shift, the core S&D challenge was reducing dropoff from users who said "I don't know what to watch."
Design System
다크테마 도입 및 색상 토큰 정의
Dark theme & color token system
브랜드팀 협업
Cross-team with Brand
콘텐츠 몰입감 강화를 위해 다크테마를 제안하고 이해관계자 설득을 거쳐 추진했습니다. 브랜드 디자인팀과 협업해 다크 환경에 맞는 브랜드 어셋을 제작하고, 라이트/다크 색상 토큰 시스템을 정의했습니다. 전체 컴포넌트의 테마 대응 기준이 됐습니다.
Proposed dark theme for deeper content immersion and drove it through stakeholder alignment. Collaborated with brand design to produce dark-environment assets, then defined the light/dark color token system — which became the theming standard for all components.
S&D Domain
4,000개 클래스 탐색 경험 재설계
Discovery UX for 4,000+ classes
단독 IC
Sole IC
구독 전환 후 콘텐츠 과잉으로 인한 이탈을 줄이기 위해 사용자 관심 기반 개인화 추천 섹션을 추가했습니다. 프로덕트 카드 내 정보를 단순화해 빠른 파악이 가능하도록 했고, IA를 직관적으로 재설계했습니다.
Added interest-based personalized recommendation sections to reduce dropoff from content overload after the subscription shift. Simplified product card information for faster scanning and redesigned IA for intuitive browsing.
Chapter 02 of 04
2년간의 가격 실험 데이터와 두 개의 독립된 행동 신호를 연결해 그룹 구독 가설을 직접 도출하고, 플랜 구조 설계부터 진입 플로우까지 전체를 담당했습니다.
Connected two years of pricing experiment data with two independent behavioral signals to independently derive the group subscription hypothesis — then owned the full scope from plan structure to entry flow design.
Background — 2년간의 가격 실험
구독 전환 이후의 구독자 정체를 풀기 위해 2년간 여러 가격 구조를 실험했지만, 일시적 변화만 있을 뿐 근본 원인에 닿지 못했습니다. 답은 가격 자체가 아닌 다른 곳에 있었습니다.
Two years of pricing experiments trying to break the subscriber plateau yielded only short-term shifts. The answer wasn't in price itself.
2020
구독 BM 검토 시작. 크리에이터 수익 안정화와 사용자 유지율 개선을 위해 구독 전환 논의 시작.
Subscription model exploration begins. Discussions start around creator revenue stability and user retention improvement.
2021
연간 구독 베타 출시 및 가격 실험. 다양한 가격대와 프로모션을 A/B 테스트. 월 플랜 미제공 정책 확정 — 연간 단일 플랜으로 운영.
Annual subscription beta and pricing experiments. A/B tested various price points and promotions. Confirmed no monthly option — annual-only plan.
2022
전사 구독 BM 전환 완료. 대다수 클래스가 구독 번들로 이동. 160K 구독자·96% 유지율로 출시. 이후 구독자 수 140K대 정체 진입.
Full subscription pivot complete. Majority of classes moved to subscription bundle. Launched with 160K subscribers and 96% retention. Subscriber count then plateaued around 140K.
2023
Commerce 도메인으로 이동, 그룹 구독 기획 착수. 가격 실험 한계 인식 후 행동 데이터와 이탈 리서치를 병행 분석해 공유 니즈를 정량화하고 그룹 플랜 설계 진입.
Moved to Commerce domain, group subscription planning begins. Recognized limits of pricing experiments, ran behavioral analytics and cancellation research in parallel to quantify sharing demand.
01 — Problem
구독자 수 정체
Subscriber plateau
연간 구독 전환 이후 구독자 수가 140K 내외에서 멈췄습니다. 신규 유입 대비 이탈이 균형을 이루는 구간에 진입했고, 단순 가격 인하로는 이 정체를 깰 수 없었습니다.
After the annual subscription pivot, subscriber count stagnated around 140K. Acquisition and churn reached equilibrium. Simple price reduction couldn't break the plateau.
연간 결제의 심리적 장벽
Psychological barrier of annual commitment
월 플랜이 없는 환경에서 연간 구독 결제는 큰 심리적 장벽으로 작용했습니다. 특히 신규 유저에게 "1년치 콘텐츠를 다 소비할 수 있을지"에 대한 불확실성이 높았습니다.
Without a monthly option, the annual subscription was a significant psychological barrier. New users especially faced high uncertainty: "Will I consume enough to justify a year's payment?"
핵심 신호 — 직접 발견
Key signal — independently identified
반기 접속 로그 분석 중 구독자의 23%가 3개 이상의 기기에서 접속 중임을 발견. 이탈 설문에서는 42%가 "가족·지인과 함께 쓰고 싶어서"를 이탈 이유로 선택. 공유 니즈는 있지만 구조가 없었다.
While analyzing 6-month access logs, found that 23% of subscribers used 3+ devices. Exit surveys showed 42% cited "want to share with family/friends" as their cancellation reason. The demand existed — the structure didn't.
02 — Hypothesis
Hypothesis
1년 안에 다 소비하지 못해 "손해"로 인식되는 콘텐츠를, 공유 구독의 할인 혜택으로 재프레이밍하면 더 많은 유저가 연간 구독으로 전환할 것이다.
If content that feels like a "loss" because it can't be fully consumed within a year is reframed as a discount benefit through shared subscriptions, more users will convert to paid subscriptions.
월 플랜이 없는 정책 하에서도 연간 결제 부담을 줄이는 구조가 핵심. 일반 OTT와 달리, 함께 구독할 멤버를 언제든 자유롭게 변경할 수 있는 유연한 방식으로 설계.
Even without a monthly option, the key was structurally reducing the perceived burden of the annual commitment. Unlike typical OTT models, designed for flexible group membership — easy to add or change at any time.
03 — Solution & Design Decisions
OTT 패밀리 플랜과의 차별화, 연간 결제 장벽 해소, 전환율 최적화를 위한 세 가지 핵심 결정.
Three core decisions: differentiating from OTT family plans, reducing annual payment friction, and optimizing conversion.
Decision 01
개별 계정 + 독립 수강 진도
Individual accounts + independent progress
OTT "공유"와의 포지셔닝 차별화
Differentiated from OTT "sharing"
일반 OTT 패밀리 플랜과 달리, 그룹 내 각 멤버는 개별 로그인과 독립된 수강 진도를 유지합니다. 학습 플랫폼 특성에 맞게 "공유"가 아닌 "함께 구독"으로 포지셔닝했습니다 — 콘텐츠 소비 맥락이 각자 다름을 전제로 설계.
Unlike typical OTT family plans, each group member retains individual login and independent progress. Positioned as "subscribing together" rather than "sharing" — designed around the premise that each member consumes content in their own context.
Decision 02
그룹 오너 중심 관리 + 멤버 자유 변경
Owner-centric management + flexible membership
결제 부담 구조적 해소
Structural reduction of payment burden
월 플랜이 없는 환경에서 연간 결제 부담을 낮추기 위해 멤버를 언제든 자유롭게 추가·교체할 수 있도록 설계했습니다. 처음부터 4인을 채우지 않아도 시작 가능하고, 그룹 구성이 바뀌어도 구독은 유지됩니다. 오너 이탈 시 그룹 전체 구독이 종료되는 구조로 자연스러운 갱신 책임이 생성됩니다.
To lower annual payment friction without a monthly option, designed flexible membership — members can be added or swapped at any time. A group can start without filling all 4 slots. If the owner churns, the entire group's subscription ends, creating natural renewal accountability.
Decision 03
가격 선택지 2개 제한
2-option pricing limit
행동경제학 기반 전환율 최적화
Behavioral economics-driven conversion optimization
가격 선택지를 최대 2개(2인, 4인)로 제한했습니다. 선택지가 늘어날수록 결정 피로가 증가하고 이탈 가능성이 높아진다는 행동경제학 원리를 근거로, 단순 가격 구조를 제안하고 관철했습니다. 인원수에 따라 1인당 단가가 명확하게 떨어지는 구조로 설계.
Limited pricing options to a maximum of 2 (2-person, 4-person). Proposed and drove the simplified pricing structure based on behavioral economics: more choices increase decision fatigue and dropout. Designed so per-person cost clearly decreases as group size increases.
04 — Results
My Contribution
Chapter 03 of 04
대부분의 클래스가 구독 번들로 이동하면서 개별 구매 전환율이 낮아진 문제를 3종 A/B 실험과 미리보기 기능 재도입으로 접근했습니다.
As most classes moved into the subscription bundle, individual purchase conversion dropped. Addressed through a 3-variant A/B test and preview feature revival.
01 — Problem
크리에이터 동기 저하
Creator motivation drop
대부분의 클래스가 구독 번들에 포함되면서 개별 판매 수익이 크게 감소했습니다. 크리에이터 입장에서 신규 클래스 제작 동기가 저하되고 플랫폼 이탈 리스크가 증가했습니다.
As most classes moved into the subscription bundle, individual sales revenue dropped significantly. Creators lost motivation to produce new classes, increasing platform departure risk.
PDP 유입 대비 낮은 전환율
Low conversion despite PDP traffic
개별 판매 클래스 PDP는 유입이 있지만 실제 구매 전환율이 낮았습니다. 구독 유저는 "이미 포함됐다"고 인식하고, 비구독 유저는 가격 확인 경로가 불명확해 이탈했습니다. 같은 UI가 두 세그먼트 모두에게 작동하지 않았습니다.
Individual sale class PDPs received traffic but had low purchase conversion. Subscribed users assumed it was "already included," while non-subscribers couldn't find pricing clearly and bounced. The same UI wasn't working for either segment.
문제의 핵심
Core issue
PDP가 구독 유저와 비구독 유저를 구분하지 않고 같은 UI를 보여주고 있었다. 비구독 유저에게는 "살 수 있다"는 사실을 명확히 전달해야 했다.
The PDP showed the same UI to subscribed and non-subscribed users. For non-subscribers, the page needed to clearly communicate: "this is purchasable."
02 — Experiment
구매 CTA 영역을 중심으로 세 가지 방향의 UI를 직접 설계하고 A/B 테스트를 진행했습니다. 실험 목표는 비구독 유저의 개별 구매 전환율 향상.
Designed three directional UI variants for the purchase CTA area and ran the A/B test. Experiment goal: improve individual purchase conversion for non-subscribed users.
Control
기존 UI
Existing UI
구독 CTA와 개별 구매를 병렬 노출. 가격 정보는 아래쪽 보조 텍스트로만 표시. 비구독 유저가 구매 경로를 인지하기 어려운 구조.
Subscription CTA and individual purchase shown in parallel. Price info only in secondary text. Purchase path unclear for non-subscribers.
Variant A
구독 우선 유도 UI
Subscription-first UI
구독 전환 CTA를 주 버튼으로 배치. 개별 구매는 보조 옵션으로 하단에. 단기 구독 전환에는 유리하나 개별 판매 생태계에는 기여하지 못함.
Subscription CTA as primary button; individual purchase secondary. Better for short-term subscription conversion but doesn't support the individual sales ecosystem.
Variant B — Winner
가격 노출 우선 UI
Price-first UI
개별 판매 가격을 상단에 명확히 노출하고 구매 버튼을 메인으로 배치. 비구독 유저의 의사결정 맥락에 직접 대응.
Individual sale price prominently at top, purchase as primary CTA. Directly addresses non-subscriber decision-making context.
전환율 우위 · Winner실험 결과 해석
Result interpretation
가격을 숨기거나 모호하게 처리하는 UI는 구매 의지가 있는 유저조차 이탈시킨다. 정보 투명성이 전환율을 높인다는 것을 실험으로 재확인. 이 원칙은 이후 커머스 도메인 전반의 설계 기준으로 적용됐습니다.
UIs that hide or obscure pricing drove away even users with purchase intent. The experiment reconfirmed that information transparency improves conversion — and this principle became a design standard across the Commerce domain.
03 — Solution
Decision 01
가격 노출 우선 PDP 전체 배포
Price-first PDP full rollout
Variant B 기반 전체 적용
Full rollout based on Variant B
실험에서 전환율이 높았던 가격 노출 우선 UI를 전체 개별 판매 PDP에 적용했습니다. 구독 CTA는 보조 옵션으로 유지하되, 개별 구매 경로와 가격을 상단에 명확히 강조. 구독 유저와 비구독 유저의 분기 경험 흐름도 재설계했습니다.
Applied the winning price-first UI across all individual sale PDPs. Subscription CTA kept as secondary option, while the individual purchase path and pricing are clearly emphasized at the top. Also redesigned the branched experience flow for subscribed vs. non-subscribed users.
Decision 02
미리보기 기능 재도입
Preview feature reintroduction
구독 전환 시 제거됐던 기능 복원
Restoring a feature removed during the pivot
구독 전환 시점에 제거됐던 무료 미리보기 기능을 재설계하여 부활시켰습니다. 비구독 유저가 클래스 퀄리티를 직접 경험하고 구매 결정을 내릴 수 있는 경로를 마련했습니다. 클립 선택 기준과 플레이어 UX를 새로 정의하고, 크리에이터에게도 자신의 클래스를 알릴 인센티브를 제공했습니다.
Redesigned and revived the free preview feature removed during the subscription pivot. Created a path for non-subscribers to experience class quality before purchasing. Defined clip selection criteria and player UX from scratch, also giving creators an incentive to showcase their content.
My Contribution
Chapter 04 of 04
어피니티 다이어그래밍 워크샵으로 이탈 사유를 6개 클러스터로 분류하고, 사유별 맞춤 개입 전략을 두 차례 실험으로 검증했습니다.
Classified churn reasons into 6 clusters through affinity diagramming workshops, then validated reason-matched intervention strategies through two experiments.
01 — Problem
수동적 해지 플로우
Passive cancellation flow
기존 해지 플로우는 "구독 해지" 버튼 클릭 한 번으로 완료됐습니다. 사유를 묻는 단계도, 유저가 재고할 수 있는 정보도 없었습니다. 이탈 방어 로직이 전무한 상태였습니다.
The existing cancellation flow completed with a single button click. No step to ask for reasons, no information to help users reconsider. Zero churn defense logic in place.
이탈 사유의 다양성
Diversity of churn reasons
이탈 사유가 단일하지 않았습니다 — "바빠서", "원하는 클래스가 없음", "가격 부담", "사용 빈도 낮음" 등 복수. 단일 개입으로는 모든 사유를 커버할 수 없었습니다.
Churn reasons were diverse — "too busy," "no desired classes," "price burden," "low usage frequency," and more. A single intervention couldn't address all reasons.
설계 방향
Design direction
이탈 이유를 먼저 파악하고, 그 이유에 맞는 정보나 혜택을 제시하는 개입 구조가 필요하다. 일방적 리텐션 메시지가 아닌, 사유 기반 대화.
The intervention structure needed to first understand the cancellation reason, then present matched information or benefits. Not one-sided retention messaging — reason-based dialogue.
02 — Research
이탈 설문 데이터 수집 및 정제
Exit survey data collection & refinement
Quantitative
기존 이탈 설문 응답 데이터를 정제하고 빈도 기준으로 정렬해 패턴 파악을 시작했습니다. 선택형 응답 외 자유 기술 답변도 분석에 포함해 맥락을 확보했습니다.
Refined and sorted existing exit survey data by frequency to identify patterns. Included free-text responses alongside multiple-choice answers to capture context beyond surface-level selections.
팀 어피니티 다이어그래밍 워크샵
Team affinity diagramming workshop
Qualitative · Collaborative
PO, 디자이너, CS팀과 함께 해지 응답 데이터를 개별 포스트잇으로 작성하고 어피니티 다이어그래밍을 진행했습니다. 이탈 사유를 6개 클러스터로 분류했습니다: 시간 부족 / 콘텐츠 부재 / 가격 부담 / 낮은 이용 빈도 / 기기 전환 / 기타.
With PO, designer, and CS team, wrote cancellation data on individual post-its and ran affinity diagramming. Classified churn reasons into 6 clusters: time shortage / missing content / price burden / low usage frequency / device switch / other.
개입 가능 사유 필터링
Filtering actionable reasons
Analysis
6개 클러스터 중 플랫폼이 직접 개입 가능한 사유와 외부 요인(경제 상황, 개인 일정 등)을 분리했습니다. "시간 부족·낮은 이용 빈도"는 수강 예정 클래스 노출로, "가격 부담"은 조건부 쿠폰으로 대응하는 실험 방향을 수립했습니다.
Separated platform-actionable reasons from external factors (economic conditions, personal schedule, etc.). Defined experiment directions: "time shortage / low usage" → upcoming class nudges; "price burden" → conditional coupons.
03 — Experiments
실험 1 — 수강 예정 클래스 노출 (시간 부족 · 낮은 이용 빈도 클러스터 대응)
Experiment 1 — Upcoming class exposure (for time shortage & low usage clusters)
해지 플로우 내에 유저가 찜해두었거나 관심 카테고리의 오픈 예정 클래스를 노출했습니다. "이런 클래스가 곧 나옵니다"라는 정보 제공으로 해지 의사 재고를 유도하는 방식. 찜 목록 기반 노출(A안)과 관심 카테고리 기반 노출(B안) 두 가지로 진행했습니다.
Displayed upcoming classes from saved lists or interest categories within the cancellation flow. The mechanic: "these classes are coming soon" — information designed to prompt reconsideration. Ran two sub-variants: saved list-based (A) vs. interest category-based (B).
실험 2 — 쿠폰 제공 (가격 부담 클러스터 대응)
Experiment 2 — Coupon offer (for price burden cluster)
해지 확인 단계에서 구독 연장 쿠폰을 제시하고 해지 의사 변화를 측정하는 실험. "가격 부담" 클러스터를 직접 겨냥한 접근.
Presented a subscription extension coupon at the cancellation confirmation step and measured change in cancellation intent. A direct response to the "price burden" cluster.
결과: 부분 효과 — 쿠폰 수령을 위한 해지 패턴 발생
Result: Partial win — cancellation-for-coupon behavior emerged
쿠폰 개입이 일부 유저에게는 효과적이었지만, 해지 후 쿠폰만 수령하는 행동 패턴이 발생했습니다. 단순 쿠폰으로는 장기 유지에 한계가 있음을 확인. 이후 첫 번째 해지 시에만 적용하는 조건부 쿠폰 구조로 정제됩니다.
Coupon intervention worked for some users but created a pattern of cancelling specifically to claim coupons. Confirmed that simple coupons have limits for long-term retention. Later refined to a conditional coupon structure — first cancellation only.
04 — Solution
Step 01
해지 사유 수집 단계 신설
New churn reason collection step
이탈 전 대화 시작
Starting dialogue before exit
해지 버튼 이후 이탈 사유를 선택하는 단계를 새로 추가했습니다. 선택 결과에 따라 이후 플로우가 분기됩니다 — 단순 확인 버튼으로 끝나던 구조에서 사유 파악 후 맞춤 응답을 제공하는 구조로 전환.
Added a new step after the cancel button to collect the cancellation reason. The subsequent flow branches based on the selection — transitioning from a simple confirm structure to a reason-aware matched response.
Step 02
사유별 3가지 대응 유형
3 response types by reason
6개 클러스터 → 3개 대응
6 clusters → 3 response types
① 시간 부족 / 낮은 이용 빈도 → 수강 예정 클래스 노출 + 일시 정지 옵션 안내. ② 가격 부담 → 조건부 쿠폰(첫 해지 시에만). ③ 콘텐츠 부재 / 외부 요인 → 크리에이터 요청 채널 연결 또는 일시 정지 안내 후 해지 허용.
① Time shortage / low usage → upcoming class exposure + pause option. ② Price burden → conditional coupon (first cancellation only). ③ Missing content / external factors → creator request channel or pause option before allowing cancellation.
My Contribution
Commerce Domain — Key Outcomes