Learn everyday/Product Design

[9월 TIL #8] Duolingo 리텐션 케이스 스터디: 스트릭이 끊긴 뒤도 UX 설계가 필요하다

besoluble 장은솔 2026. 9. 14. 17:27

이 글은 growth.design의 인터랙티브 케이스 스터디 8 User Retention Tactics Tested On 300 Million Users를 보고 정리한 공부 기록이다. growth.design은 UX 사례와 심리학을 인터랙션으로 풀어주는 사이트다. 앞쪽은 사례가 짚는 리텐션 장치를 위키처럼 정리했고, 뒤쪽 TIL에 왜 이걸 공부했고 무엇을 느꼈는지를 덧붙였다.

 

 

오랜만에 도착한 "You made Duo sad" 메일

케이스 스터디는 한동안 Duolingo를 쓰지 않던 사람의 이야기로 시작한다. 주인공은 JFK 공항에서 지연된 비행기를 기다리다가 받은편지함에서 Duolingo 메일 한 통을 발견한다. 제목은 "You made Duo sad"이고, 본문은 "오랜만이에요. 아직 스페인어를 배우고 싶나요? 지금 5분짜리 레슨을 해보세요"다.

 

이야기는 주인공이 앱으로 돌아와 스트릭(streak, 매일 연속으로 학습한 일수)을 켜고, 출장지에서 다시 앱과 멀어지기까지를 따라간다. 화면 왼쪽의 세로 게이지는 장면마다 주인공의 심리 에너지(Psych)가 얼마나 오르고 내리는지를 숫자로 보여준다. 아래는 이 여정에서 케이스 스터디가 짚는 장치들을 순서대로 정리한 것이다.

 

growth.design의 인터랙티브 케이스 스터디 8 User Retention Tactics Tested On 300 Million Users 캡처본

 

 

1. Internal & External Triggers (내부·외부 트리거) — 메일이 출장과 맞물린 순간

메일을 본 주인공의 첫 반응은 "마침 부에노스아이레스로 출장을 가는 길이고, 비행기를 타기 전까지 시간도 남는다"는 것이다. 게이지가 +15 오른다. 메일이 도착한 타이밍이 주인공의 상황과 맞았다.

 

케이스 스터디는 이 장면을 트리거로 설명한다. 트리거는 사용자가 행동하도록 만드는 계기이고, 두 종류가 있다.

  • 내부 트리거: 장소, 상황, 감정, 사람처럼 사용자 안에서 생기는 계기
  • 외부 트리거: 이메일, 푸시 알림, 옥외 광고처럼 밖에서 주어지는 계기

사람은 외부 트리거가 내부 트리거와 맞물릴 때 행동할 가능성이 높다. 실제로 Duolingo 학습자의 15~30%는 해외여행을 더 즐겁게 하려고 앱을 쓴다고 한다. 여행을 앞둔 사람에게 온 복귀 메일이 통한 이유다.

 

메일에 아쉬운 점도 있었다. 한눈에 들어오는 건 우는 Duo와 큰 파란 배너뿐이고, 정작 행동을 유도하는 문구는 작고 대비가 낮다. 이 부분에서 게이지는 -10 떨어진다.

 

"You made Duo sad" 복귀 메일. 출장을 앞둔 상황과 맞물려 게이지가 +15 오른다.

 

 

2. Hick's Law (힉의 법칙) — 알록달록한 홈에서 버튼 하나

탑승 줄에서 앱을 열자 홈 화면이 나온다. 맨 위에는 "Welcome back! 특별 복습 레슨으로 상자를 열어보세요"라는 카드와 START REVIEW 버튼이 있고, 그 아래로 색색의 레슨 아이콘이 줄지어 있다. 주인공은 알록달록한 요소가 너무 많다며 어지러워하고, 게이지는 -10 떨어진다.

 

힉의 법칙(Hick's Law)은 선택지가 많고 복잡할수록 결정하는 데 시간이 오래 걸린다는 원리다. 케이스 스터디의 팁은 선택지 하나를 강조했다면 나머지 요소가 그 선택지와 주의를 다투지 않게 하라는 것이다. 그래서 버튼을 제외한 나머지 화면을 어둡게 덮는 오버레이를 개선안으로 제시한다.

 

START REVIEW 버튼 자체는 좋은 점수를 받는다. 레슨을 고르는 데 에너지를 쓰지 않고 한 번의 탭으로 바로 시작할 수 있기 때문이다.

 

강조한 버튼 주변에서 다른 요소들이 주의를 다투는 홈 화면. 말풍선 위의 작은 화면이 오버레이 개선안이다.

 

 

3. User Shaming (사용자 망신 주기) — 로딩 화면의 한 문장

레슨이 로딩되는 동안 문구가 뜬다. "하루 15분이면 언어를 배울 수 있어요. 소셜 미디어 15분으로는 뭘 할 수 있죠?" 주인공은 로딩 화면에서까지 학습 행동을 강화하는 점은 좋다고 하면서도(+5), 마지막 문장의 은근한 비꼼은 불편하다고 말한다(-5). 게다가 주인공은 소셜 미디어를 거의 쓰지 않는다.

 

이 장면에는 윤리 인사이트(#ETHICAL INSIGHT)가 붙는다. 사용자가 스스로를 못나게 느끼게 만들어 행동을 바꾸려는 방식은 대부분 좋은 선택이 아니다. 거절 버튼에 죄책감을 주는 문구를 붙이는 컨펌셰이밍(confirmshaming) 같은 방식은 더 나쁘다. 케이스 스터디는 이런 마이크로 카피 자체를 피해서 다크 패턴(사용자를 속이거나 압박하는 UX)이 되지 않게 하라고 권한다.

 

로딩 화면 문구와 User Shaming 인사이트. 근거로 NN/g의 User Shaming(2017)을 든다.

 

 

4. Happy Path (해피 패스) — 복습 레슨이 유난히 쉬웠던 이유

첫 문제는 "우유(the milk)는 어느 것인가요?"였다. 열두 문제쯤 풀고 비행기 좌석에 앉을 무렵 레슨이 끝났고, 주인공은 "지난번에 썼을 때보다 이 복습 레슨이 훨씬 쉬운 것 같은데?"라고 말한다.

 

케이스 스터디는 이걸 해피 패스(Happy Path)로 설명한다. 사용자 흐름을 조금 손보더라도 난이도를 낮춘 단순한 경험을 먼저 주라는 것이다. 이 방식은 두 순간에 특히 효과가 있다.

  • 신규 사용자를 온보딩할 때 activation(처음 가치를 경험하는 비율)과 참여를 끌어올린다.
  • 오래 쉬었다가 돌아온 사용자(resurrected users)의 리텐션을 높인다.

오랜만에 돌아온 주인공에게 쉬운 복습 레슨이 먼저 주어진 것도, 다시 할 수 있겠다는 자신감을 먼저 주기 위한 설계였다.

 

쉬운 복습 레슨을 끝낸 뒤 붙은 Happy Path 팁.

 

 

5. Zeigarnik Effect (자이가르닉 효과) — 스트릭까지 한 레슨 남았을 때

레슨을 끝내자 "일일 목표까지 10 XP 남았어요"라는 화면이 나온다. 주인공은 스트릭 1일째를 켜고 싶어서 바로 다음 레슨으로 넘어간다.

 

자이가르닉 효과(Zeigarnik Effect)는 사람이 끝낸 일보다 끝내지 못한 일을 더 잘 기억한다는 원리다. 진행 바가 대표적인 예다. 조금만 더 채우면 되는 목표가 눈앞에 있으면 사람은 그걸 마저 채우고 싶어진다.

 

이 효과는 뒤에서 한 번 더 등장하는데, 이번에는 반대 방향으로 작동한다. 일일 목표를 이미 채운 뒤에도 레슨 맵에 미완료 레슨이 가득하자, 주인공은 "지금 앱을 닫으면 끝내지 않은 무언가를 버려두는 기분"이라고 말하고 게이지는 -10 떨어진다. 끝내지 못한 일은 동기가 되기도 하지만, 끝이 보이지 않을 만큼 많으면 부담이 되기도 한다.

 

스트릭을 켜기 직전 화면과 Zeigarnik Effect 인사이트.

 

 

6. User Segmentation (사용자 세그먼트) — 보석, 퀴즈, 팟캐스트가 연달아 끼어들 때

다음 레슨으로 가는 길은 생각보다 길었다. 보물상자를 열어 100젬을 받는 화면까지는 괜찮았다(+5). 곧이어 유료 플랜의 "실력 점수 올리기" 퀴즈 권유가 뜬다. 주인공은 아직 시험 볼 준비가 안 됐고 지금은 연습만 하고 싶다며 거절하고, 게이지는 -15 떨어진다. 그다음엔 스페인어 팟캐스트 홍보가 이어진다. 방금 전까지 'leche(우유)'를 다시 배우던 사람에게 스페인어 팟캐스트 한 편은 너무 큰 점프라는 반응과 함께 게이지가 다시 -10 떨어진다.

 

케이스 스터디는 적어도 두 세그먼트에는 팟캐스트를 권하지 않는 편이 낫다고 말한다.

  • Resurrecting: 한동안 쉬었다가 돌아오는 사용자
  • Beginners: 막 배우기 시작한 사용자

특히 돌아온 사용자에게 중요한데, Duolingo의 돌아온 사용자는 신규 사용자보다 리텐션될 가능성이 20% 낮다. 이렇게 권유 화면이 연달아 쌓이는 것을 케이스 스터디는 "splash screen stacking"이라고 부른다. 사용자 여정에서 가장 약한 순간에 사용자의 심리 에너지를 소모시킨다는 것이다.

 

방금 기초 단어를 다시 배운 사용자에게 뜬 팟캐스트 홍보. 게이지가 -10 떨어진다.

 

 

7. Streaks (스트릭) — 다시 오게 만들지만, 끊기면 그만두게도 만든다

레슨을 고르는 대신 아무 레슨이나 빠르게 끝내자, 드디어 "1일 연속 학습 중!" 화면이 나온다. 게이지는 +20 오른다.

 

케이스 스터디는 이 화면 바로 옆에 비하인드 카드를 붙인다. 제목은 "Streaks: Good Or Bad?"이고, Duolingo의 전 Head of Growth인 Gina Gotthilf의 말을 인용한다.

 

"스트릭은 사람들을 더 자주 돌아오게 만들지만, 스트릭을 잃는 것도 사람들이 그만두는 큰 이유다. 나도 작년에 독일어를 배우다가 80일 스트릭이 끊겼는데, 너무 속상해서 Duolingo를 그만 썼다. 그 일로 사용자들에게 더 공감하게 됐다."

 

스트릭을 만든 회사의 성장 책임자가 스트릭이 끊긴 뒤 앱을 그만둔 경험을 직접 이야기한다. 연속 기록이 길어질수록 그 기록을 잃었을 때의 상실감도 함께 커진다.

 

1일 스트릭 화면과 "Streaks: Good Or Bad?" 비하인드 카드. 인용 출처는 33 Voices Podcast(2017)다.

 

 

8. Sunk Cost Effect (매몰 비용 효과) — 스트릭을 켠 직후의 내기

스트릭을 켜자마자 새 제안이 나온다. "7일 동안 스트릭을 유지하면 50젬 내기를 두 배로 돌려드려요." 주인공은 앞으로 몇 주 동안 스페인어권 나라에 있을 테니 안전한 내기라며 50젬을 건다.

 

케이스 스터디는 보상 직후가 사용자에게 약간의 투자를 요청하기 가장 좋은 순간이라고 말한다. 투자한 사용자가 더 오래 머무는 이유는 두 가지다.

  1. 투자가 다음 트리거를 준비시킨다. 최근에 한 약속을 상기시키는 알림을 보낼 수 있게 된다.
  2. 사람은 노력이나 자원을 들인 것에 더 큰 가치를 둔다. 이것이 매몰 비용 효과(Sunk Cost Effect)다.

스트릭을 켠 직후 뜨는 7일 스트릭 내기. 주인공은 50젬을 걸고 챌린지를 수락한다.

 

 

9. Notification Auto-Filtering (알림 자동 필터링) — 먹히지 않는 알림을 앱이 먼저 멈춘다

비행기에서 잠든 주인공은 11시간 뒤 아르헨티나에 도착한다. 다음 날 회의에 늦어 뛰어가는 중에 "5분 있어요? 지금 스페인어를 연습하세요!" 알림이 온다. 출장은 점점 바빠졌고 "포기하지 마세요!" 같은 알림이 이어졌지만, 주인공은 결국 스페인어 연습 습관을 잃는다. 게이지는 기준선 아래로 내려간다.

 

며칠 뒤 부에노스아이레스 항구에서 잠깐 쉬던 주인공은 처음 보는 알림을 받는다. "알림이 도움이 안 되는 것 같네요. 당분간 보내지 않을게요." 주인공의 반응은 "드디어 내 시간을 존중하는 앱이 나왔다!"이고, 게이지는 +35 오른다.

 

케이스 스터디는 앱이 스스로 알림을 걸러낼 때의 이점을 세 가지로 정리한다.

  1. 사용자가 전반적으로 덜 짜증을 느낀다.
  2. 사용자가 알림을 영영 꺼버릴 위험을 줄인다. 한 번 꺼진 알림을 다시 켜게 만들기는 매우 어렵다.
  3. 나중에 더 적절한 순간에 사용자를 다시 불러올 기회를 남긴다.

"These reminders don't seem to be working. We'll stop sending them for now." 알림을 멈추겠다는 메시지에 게이지가 +35 오른다.

 

 

여정 전체를 한 장의 그래프로

이야기가 끝나면 케이스 스터디는 주인공의 여정을 심리 수준(Psych Level)과 사용자 여정(Customer Journey)을 축으로 한 그래프로 다시 그리고, Duolingo의 리텐션 장치를 8가지로 정리한다.

  1. Lifecycle Emails: 사용자의 상황과 맞물린 타이밍의 복귀 메일
  2. Reduce Friction: 레슨을 고르지 않고 바로 시작하는 버튼
  3. Lower Difficulty: 돌아온 사용자에게 먼저 주는 쉬운 레슨
  4. Welcome Back Reward: 끝내지 못한 스트릭과 100젬 복귀 보상
  5. Streaks: 매일 이어가는 연속 학습 기록
  6. Sunk-Cost Effect: 보상 직후에 거는 스트릭 내기
  7. Phone Notification: 학습을 상기시키는 푸시 알림
  8. Notification Auto-Filtering: 먹히지 않는 알림을 스스로 멈추기

그래프에서 선이 오른 구간은 대부분 사용자가 덜 고민하고, 덜 부담스럽고, 자기 상황에 맞는 것을 받았을 때다. 선이 떨어진 구간은 권유가 쌓이거나 사용자의 수준과 상황을 고려하지 않았을 때다.

 

여정 전체를 Psych Level × Customer Journey 그래프로 다시 그린 요약. 출장이 바빠지면서 선이 기준선 아래로 떨어진다.

 

 


 

TIL — 왜 이걸 공부했나

 

우리 제품에서 스트릭을 만들고 있다

지난 글 [9월 TIL #7] 프로덕팅(Producting) 알아보기에서 프로덕팅을 "유입부터 가치 경험, 공유와 재유입까지를 하나의 제품 경험으로 설계하는 것"으로 정리했다. 그 뒤로 우리 제품에서도 프로덕팅을 실제로 시도해보기 시작했고, 그중 하나로 스트릭 기능을 만들어 곧 배포할 예정이다.

 

지금은 빠르게 배포해서 사용자 반응을 보는 게 먼저다. 바이럴이나 친구 초대로 어떻게 이어지게 할지도 고민하고 있지만, 그 부분은 반응을 보고 디벨롭하면서 채워갈 생각이다. 스트릭을 만들다 보니 Duolingo가 떠올랐고, 스트릭을 오래 다뤄온 제품이 리텐션을 어떻게 설계했는지 알아보고 싶어서 이 케이스 스터디를 봤다.

 

 

끊긴 스트릭이 이탈의 이유가 되기도 한다

케이스 스터디에서 가장 오래 남은 건 Gina Gotthilf의 인용이었다. 스트릭은 사람을 다시 오게 만들지만, 스트릭을 잃는 것도 그만두는 큰 이유가 된다. Duolingo의 성장을 이끌던 사람도 80일 스트릭이 끊기고 앱을 그만뒀다.

 

케이스 스터디의 주인공도 비슷한 길을 간다. 스트릭을 켜고 7일 내기까지 걸었지만, 출장이 바빠지자 알림이 와도 앱을 열지 않았다. 스트릭을 켜게 만드는 것만큼, 스트릭이 끊겼거나 흐트러진 사용자를 어떻게 대하느냐가 리텐션에 영향을 준다는 생각이 들었다.

 

 

끊긴 뒤와 돌아온 뒤를 다루는 세 장면

그렇게 다시 보니, 스트릭이 끊긴 뒤나 사용자가 돌아온 뒤를 다루는 장면들이 눈에 들어왔다. 케이스 스터디에서 게이지가 가장 크게 오른 장면은 스트릭을 켠 순간(+20)보다 알림을 멈춘 순간(+35)이었다.

  • 먹히지 않는 알림은 앱이 먼저 멈춘다: 반응 없는 사용자에게 알림을 계속 보내면 사용자는 알림을 아예 꺼버릴 수 있고, 한 번 꺼진 알림은 다시 켜게 하기 어렵다. 앱이 먼저 멈추면 나중에 더 적절한 순간에 다시 부를 기회가 남는다.
  • 돌아온 사용자는 따로 설계한다: 돌아온 사용자는 신규 사용자보다 리텐션될 가능성이 20% 낮다. Duolingo는 이들에게 쉬운 복습 레슨과 복귀 보상을 먼저 줬고, 케이스 스터디는 여기에 퀴즈나 팟캐스트 같은 권유를 쌓지 말라고 지적했다. 다시 시작하기 쉬운 길을 먼저 주는 것이다.
  • 알림은 사용자의 내부 동기와 맞을 때 움직인다: 복귀 메일이 통한 건 주인공이 마침 스페인어권 출장을 앞두고 있었기 때문이다. 같은 알림이라도 사용자의 상황과 맞물리는 순간에 도착해야 행동으로 이어진다.

 

마무리

스트릭 기능을 만들 때는 이어지는 날들을 중심으로 생각하게 되는데, 케이스 스터디를 보고 나니 끊긴 날과 돌아온 날까지 합쳐서 하나의 기능이라는 생각이 들었다. 지난 글에서 공부한 프로덕팅이 유입부터 재유입까지를 하나의 경험으로 보는 것이었다면, 이번에는 그 안에서 재방문 쪽을 조금 더 구체적으로 들여다본 것 같다. 배포하고 나서 사용자들이 어떻게 반응할지 궁금하다. 굿!