Lucy Seo

Lucy Seo님의 아티클

Lucy Seo

Lucy Seo

초보 팀장이 빠지는 함정 5가지

다른 책 찾지 말고 이것만 기억하세요

어느 날 내 명함으로 팀장이 들어왔다

모든 일은 예기치 않게 찾아옵니다. 팀장 역시 마찬가지입니다.

저는 첫 직장을 퍼포먼스 마케팅 에이전시 매니저로 커리어를 시작해서 인하우스 마케터로 커리어를 그려왔습니다. 그리고 그 전문성을 살려 딜라이트룸에도 퍼포먼스 마케터로 입사했죠. 그렇게 딜라이트룸에서 1년이 지난 저에게 갑자기 마케팅팀 리드 역할이 주어졌습니다.

“리드(팀장)는 무엇을 하는 사람이죠..?”

지금까지 직장을 다니면서 많은 팀장님들을 경험했지만 제가 직접 리딩을 하는 것은 전혀 다른 문제였습니다. 제가 겪어보지 않았던 새로운 상황들이 생겼고 저는 다시 아무것도 모르는 주니어로 돌아간 느낌이었습니다.

리딩에 관한 수많은 책에는 너무나 정보가 많아 오히려 혼란스러웠고, 회사와 딜라이트룸 다른 리드분들에게 많은 조언을 구했지만 결국 팀 내에서 일어나는 상황은 내가 가장 잘 알기에 스스로 해결 방법을 찾아야 했죠. 그렇게 3분기에 걸쳐서 수많은 실패를 했습니다.

저는 지난 3분기 동안 막막함 속에서 실패를 반복했지만, 다른 분들은 더 수월하게 초보 시절을 보낼 수 있으면 좋겠다는 마음에 ‘초보 팀장을 위한 5가지 핵심’을 정리했습니다. 초보 팀장님들은 우선 이것만 시도해 보셔도 충분합니다.

함정1. 팀원들의 모든 의견을 수용해야 한다

첫 팀장이 된 저는 팀원들의 의견을 최대한 존중하는 이상적인 팀장이 되고 싶었습니다. (분명 불가능하다는 주변의 경고를 받았는데도 무시했죠) 그래서 모든 팀원의 의견이 고려된 결정을 하려 노력했습니다. 하지만 그러다보니 목적이 서로 다른 프로세스가 양립하는 경우도 발생했고, 그제야 뭔가 잘못되었다는 것을 깨달았습니다.

팀원의 의견을 경청하는 것은 중요하지만, 모두 수용할 수는 없습니다. 결국 팀장의 판단으로 하나의 선택을 헤야합니다.

이게 바로서지 않은 채 팀원의 의견을 어떻게든 반영하는 데에만 집중한다면 오히려 팀의 방향을 잃을 수 있습니다. 팀의 방향과 우선순위는 팀장이 지켜야 합니다. 그렇지 않으면 팀은 망망대해로 흘러갈 수 있습니다.

함정2. 팀원에게 개선 피드백을 주는 것은 관계를 해치는 일이다

팀원에게 개선점을 말해주면 오히려 성장 의지가 꺾이지 않을까? 나를 점점 더 어려워하면 어떡하지? 라는 생각이 충분히 드실 수 있습니다. 하지만 팀원에게 개선 피드백으로 성장 방향성을 알려주는 것은 매우 중요하고, 이게 바로 팀장의 역할입니다.

목적은 여러 가지일지라도 많은 팀원들은 성장하고 싶어 합니다. 하지만 어떤 부분이 부족한지, 어디로 가야 할지 모르면 성장할 수 없죠. 성장하지 않는다고 느끼면 팀원의 동기부여는 급격하게 떨어지고 이는 결국 팀에도 좋지 않은 영향을 끼치게 됩니다. 개선 피드백은 바로 팀원과 팀의 성장으로 연결되는 좋은 도구입니다.

개선 피드백을 전달하는 것 자체가 문제는 아닙니다. 보통 개선 피드백이 관계를 해치는 경우는 개선 피드백을 전달하는 방식이 잘못된 경우입니다.

함정3. 팀원의 모든 문제를 내가 해결해야 한다

팀원이 어려운 상황에 빠졌을 때 나타나서 마법사처럼 해결해 주는 존재가 나라면 얼마나 멋있을까요? 하지만 그건 완벽한 판타지라는 점을 기억해야 합니다. 팀장은 팀의 모든 문제를 해결해 주는 사람이 아닙니다.

현재 실무를 진행하는 팀원이 상황을 가장 잘 알고 있다고 인정해야 합니다. 그래서 사실 현재 상황에 대한 해답도 팀원이 알고 있는 경우가 많습니다. (아직 팀원이 독립적인 실무 능력을 갖추지 못했다면 빠르게 역량을 키워주는 단계도 필요합니다.)

여기서 팀장의 역할은 팀원이 실무에 갇혀서 보지 못한 다른 관점의 view를 봐주고, 그들에게 생각해 볼 포인트를 던져주는 사람입니다. 다시 한번 정리하면, 팀장은 팀원의 문제 해결을 도와줄 수는 있지만, 결국 문제를 해결하는 사람은 팀원이어야 합니다.

함정4. 카리스마가 있어야 팀원들이 따른다

카리스마 있는 사람을 떠올리면 왠지 모르게 쉽게 대하기 어렵고 센 이미지가 떠오를 겁니다. 초보 팀장 때는 팀을 더 잘 리드하기 위해 이런 센 이미지가 필요하다고 생각할 수 있습니다. 하지만 이게 본질이 아닙니다.

카리스마의 사전적 의미를 찾아보면 다음과 같습니다.

  • 카리스마: 다른 사람을 매료시키고 영향을 끼치는 능력

센 이미지도 카리스마를 발휘하는 하나의 방법일 수는 있습니다. 하지만 진정한 카리스마는 팀장인 ‘나의 가치관/비전’이 바로 서 있기만 하면 충분합니다. 나의 생각이 정리 되어있고, 이를 팀원에게 명확하게 제시할 줄 알면 자연스레 리더십이 생깁니다. 의견을 전달하는 방식이 꼭 세거나 강압적이지 않아도 충분합니다.

함정5. 마이크로 매니징은 최소화해야 한다

마이크로 매니징은 팀원의 자율성을 해치기 때문에 조심 해야 한다라는 말을 많이 들어봤을 거예요. 여기서 핵심은 ‘마이크로 매니징은 무조건 나쁘다’가 아닌, ‘레벨에 맞는 매니징이 필요하다’입니다.

저는 마이크로 매니징은 ‘티칭 (teaching)’이라고 생각합니다. 아무것도 모르는 팀원은 스스로 독립적으로 업무를 진행하기조차 힘듭니다. 그래서 팀원의 역량에 따라 [티칭-매니징-리딩] 단계로 적절하게 가이드 해야 합니다.

기억하세요. 마이크로 매니징도 필요한 곳에 사용하면 훌륭한 도구가 될 수 있습니다.

오늘도 헤매고 있는 초보 팀장님들께

서점이나 인터넷에는 이미 리더십에 관한 수많은 강의와 책이 있습니다. 저도 팀장이 된 이후로 정말 많은 책을 읽어봤어요. 하지만 책에서는 추상적인 개념 위주로 소개되어 있어서, 아무것도 몰랐던 제가 당장 어떤 것부터 시도해 봐야 할지 감이 잘 잡히지 않았습니다. 그래서 저처럼 고민이 많은 초보 팀장님들이 이것만은 기억하면 좋겠다 생각하는 5가지만 정리해 봤습니다.

팀을 리딩하는 방법에는 정답이 없습니다. 결국 팀장의 성향 그리고 우리 팀의 상황에 따라 적절한 방법이 수만 가지입니다. 그래도 초보 팀장일 때 겪는 어려움은 어느 정도 비슷할 거라 생각해서, 저의 경험에 따른 레슨을 공유해 봅니다. 고민을 같이 나누고 싶은 분들이 있다면 편하게 연락해 주세요. 티타임은 언제나 열려있습니다.

p.s. 티타임 원하시는 분들은 sophie@delightroom.com 으로 연락 부탁드립니다.

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

7
1
Lucy Seo

Lucy Seo

동작가능을 넘어 사랑가능한 제품으로 성장하기

빠르게 가설검증이 가능한 MVP

일 잘하는 스타트업을 떠올리시면 어떤 모습이 생각나시나요?
정해진 스프린트내에 뾰족한 문제정의와 해결방법으로 빠르게 출시하고 성장하는 모습을 생각하지 않을까 싶습니다. 기능의 최소 범위 구현으로 사용자의 니즈를 찾아가며 빠르게 가설 검증을 하는데요. 알라미 팀도 마찬가지였습니다. 빠른 구현을 통한 가설검증 문화 덕분에 지금까지 다양한 경험들을 축적하며 성장해왔습니다.

작고 귀여운 알람여정에서 거대한 수면/아침여정으로

알라미는 유틸리티앱으로써 알람 그자체에 집중하며 성장해왔었습니다. 작고 귀여운 알람 설정 여정에서의 미덕은 우리의 가설을 확인시켜줄 빠른 기능 구현이였습니다. 더 나은 알람 설정 방법을 고민하고 더 나은 구매페이지를 고민하는 것과 같이 좁은 여정에서 다양한 시도로 성장들을 만들었습니다.

성장을 지속하던 알라미는 알람을 넘어 성공적인 아침을 만드는 서비스로서의 더 큰 성장을 목표로 삼았습니다. 기존 핵심 여정인 알람설정 앞뒤로 새로운 여정이 확장되었고 새로운 기능들이 설계되기 시작했습니다. 사용자는 알람설정이상의 새로운 기능들을 학습해야했고, 새로운 정보들을 인지해야했습니다. 많은 정보들이 사용자들에게 쏟아지기 시작했고 사용자들이 알았으면 하는 정보와 사용자들이 알고있는 정보간에 갭이 생기기 시작했습니다.


특히 기상여정 자체에만 집중하여 이해하고 있던 사용자들에게는 수면이라는 여정은 정말 미지의 세계였습니다. 그들은 기상하기 위해 왜 수면이 중요한지 인지하지못할뿐만 아니라 수면 분석이 왜 필요한지도 왼벽히 이해하지 못했습니다.

이때부터 문제가 시작되었습니다. 사용자들은 저희 제품 내 기능들을 어렵다고 느끼기 시작했습니다. 혼란을 겪은 건 사용자 뿐만이 아니었습니다. 내부에서도 기획이 명확히 떨어지지 않기 시작했습니다. 사용자들이 쉬운 기능으로 느끼게 하는 기획 설계는 전보다 논의가 길어지고 작업자들은 뭔가를 놓치고 있는 거 처럼 찜찜해 했습니다.

성장하는 제품내 지식 격차

알라미팀이 경험했던 것 처럼 사용자가 알고 있는 지식과 제품이 이끌어 나가고자 하는 지식 사이에 격차가 생기는 이 현상은 제품이 급격히 성장할때 우리 모두 누구나 마주할 수 있습니다. Jared Spool이 발표한 “사용자가 원하는 것” 에서 제시한 바에 따르면 해당 격차를 Knowledge Gap이라고 칭했는데요.

지식 격차는 스펙트럼의 두 지점, 즉 현재 지식과 목표 지식 사이의 격차입니다. 지금까지 우리는 목표지식을 염두하고 기능을 만들고 있었습니다. 아무리 쉬운 동작으로 설계해도 사전지식이 없는 사용자들에게는 어려울 수 밖에 없었습니다.
알라미의 주 사용자는 기상에 뾰족하게 집중되어있습니다. 사실 그들은 수면엔 문외한일 수 있습니다. 그들은 왜 수면 시간을 확보하기 위한 취침시간알림을 써야하는지, 렘수면 단계에서 일어나야 개운한지, 아니 렘수면단계가 당최 무엇인지도 알지 못할 수 있었습니다.


이 현상의 인지는 빠른 속도로 기능을 구현하고 출시하는 것에 익숙했던 알라미팀에게 브레이크를 밟게 했습니다.

지식 격차를 줄이며 사용자와 함께 성장하기

이제까지 빠른 구현에 집중했다면 지금부터는 느리게 가더라도 사용자가 지식 격차없이, 성장하는 제품을 따라올 수 있도록 하는 것에 집중해야했습니다. 그동안 처럼 사용자의 진짜 문제를 파악하는데 집중하는 것은 기본이고 더 많은 고민들이 함께 진행되어야 한다는 걸 모두가 알기 시작했습니다. 알라미팀은 사용자에 진심이지만 이번에 다시 한번 초심을 찾고 또 사용자에게 집중하기 시작했습니다.

기획강화 | 사용자의 상황과 니즈 그리고 사용자의 제품 이해도 체크

기획설계시 사용자의 상황 그리고 니즈를 문제 중심으로 기존보다 더 구체화 하기 시작했습니다. 모든 작업자는 직무를 가리지 않고 모두가 한 마음으로 기획에 동참하여 사용자를 구체화하는데 함께 하게 되었습니다.

기획단 사용자 상황 묘사 강화
기능의 타켓을 구체화 하기 위해 그리고 필수 구현 범위를 정하기 위해, 사용자의 상황 맥락을 파악하여 기획에 녹이기 시작했습니다. 앱내 상황을 넘어서 앱밖 상황까지 더 디테일하게 묘사합니다. 더 이상의 묘사가 어려울때는 사용자 인터뷰를 진행하여 많은 구체적 상황들을 수집합니다. 이렇게 사용자의 대한 묘사가 구체적일수록 구현방법은 더 뾰족해질 수 있었습니다.

타겟의 제품 숙련도 및 이해도
기능의 타겟을 설정한 후에는 타겟의 제품 내 숙련도 및 사전 지식이 무엇이여야하는지 체크하기 시작했습니다. 새로운 기능을 사용하기 위해 제품내 어떤 기능 경험이 있어야 하는지, 어떤 정보를 알고 있어야 하는지 체크하기 시작했습니다.

지식격차를 줄이는 단계별 학습
타겟의 제품 이해도와 문제의 임팩트에 따라 해당 타겟을 어떤 단계를 통해 최종 가치를 경험하게 될지 타겟의 로드맵을 싱크하기 시작했습니다. 이를 통해 기능의 최종 방향성까지 자연스럽게 싱크될 수 있었으며, PBI간 진행순서도 더 쉽게 나열되기 시작했습니다.

검증강화 | 사용성 테스트는 필수, 지식격차를 줄이기 위한 다양한 UXUI 시도

앞단의 기획을 아무리 강화하더라도 검증 단계를 게을리해서는 안된다는 것도 잊지 않았습니다. 실제 사용성 테스트에서 새로운 씨드들이 지속 발견되었던 그동안에 경험에 따라 내부 테스트는 필수 과정으로 더 자리잡게 되었습니다. 디자이너들은 더 긴밀하고 세세하게 설계하고 검증하는 단계를 반복하게 되었습니다. 그러다보니 자연스럽게 사용자의 이해를 돕기 위해 다양한 방법들을 동원할 수 있도록 내부적으로 시간도 확보되었습니다. 인터랙션, 그래픽, 애니메이션등 다양한 디자인적 시도들은 더 늘어나게 되었습니다.

자연스럽게 변하는 팀 내 출시 기준

예전 내부 구현 문화는 기능동작이 곧 출시기준이었던때도 있었습니다. 서비스로서 확장해나가며 많은 레슨을 느낀 알라미팀은 구현 그 이상의 출시여야만 사용자를 잡을 수 있다는 것을 압니다. 새로운 기능 출시 시 디자이너뿐만 아니라 개발자들도 사용성에 대한 논의를 활발히 하게 되었습니다. 기능동작의 오류없음을 넘어서 가치전달 기능으로서도 오류가 없는지에 대해 같은 온도로 제품을 바라봅니다.

가치전달과 만족감의 정성포인트에 집중하니 사용자가 느낄 느낌적인 느낌 마저도 편안하게 이야기하며 정성적인 포인트에도 더 집중하기도 합니다. 제품 구현이 끝나서도 팀내에서는 숙성의 기간을 갖습니다. 잠시 공급자 역할을 던지고 사용자로서의 역할에충실해져 보며 실제 사용자로서 가치를 느낄 수 있는지도 천천히 돌아봅니다. 이렇게 알라미의 서비스로서의 확장 도전은 당연한 품질을 넘어서 매력적 품질로 나아가야 한다는 작업 방향성을 던져주었습니다.

결국 실행 가능(MVP)을 넘어 사랑가능(MLP)한 제품으로

제품이 성장하는 단계마다 사용자의 마음을 사로잡는 방법도 달라진다고 생각합니다. 알라미의 지난 단계에서는 당연한 품질에 집중하여 최소 구현 범위 산정에 집중했다면 현재는 가치전달을 만족시키는 최소 구현 범위로 확장되어 소통을 나눕니다. 지금 알라미팀은 미니멈한 동작 가능의 기준에서 미니멈한 사랑 가능한 기준인가로 출시 기준을 바라보고 있는습니다.

빠른 전달도 중요하지만 그 안에 가치전달이 빠진다면 아무 의미없이 제품만 비대해지겠죠. 그렇다고 가치전달에 잘못빠져 무결성에 집착하다 아무 출시도 진행하지 못해서도 안됩니다. 늘 우리만의 밸런스를 찾아 가야합니다.

제품의 폭풍 성장을 몸소 겪으신 작업자분들도 비슷한 경험들이 많으셨을텐데요. 다양한 이야기를 함께 나누고 싶은 분들이 계시다면 bom@delightroom.com으로 편하게 연락주시면 감사하겠습니다.


혹은! 함께 폭풍성장하며 레슨을 함께 하고 싶은 디자이너분이 계시다면 딜라이트룸에 조인해주세요 :) 채용에 관한 다양한 이야기도 언제든 환영입니다!

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

13
2
Lucy Seo

Lucy Seo

구독 서비스의 성장 지표 확인하기 #1

안녕하세요, 딜라이트룸 Data Analyst로 일하는 Leo입니다.

딜라이트룸에 입사하고 꽤 낯설었던 점은, 구독 서비스의 데이터 구조가 그동안 제가 경험한 보통의 커머스와는 전혀 다르다는 점이었습니다. 그러다보니 지표 분석 프레임워크를 설계하는 부분에서도 이런저런 시행착오를 겪었던 것 같아요. 가령 매출 분석을 한다고 할 때, 일반적인 커머스에서는 일자별 거래액을 구매자나 상품에 대한 여러 dimension으로 쪼개서 보는 것만으로도 꽤 의미있는 결과를 얻을 수 있는데요.

구독 서비스의 경우 구독자의 리텐션, 구독상품의 변화, Trial의 존재 여부 등 여러 가지 새로운 변수들을 추가로 고려해야 합니다. 구독(Subscription) 모델을 가지고 있는 서비스의 지표 분석은 어떤 프레임워크로 할 수 있을까요?

구독 서비스의 성장 지표는 두 가지 측면에서 살펴볼 수 있습니다.

  • 구독자(Subscriber) 중심으로

  • 매출(Sales) 중심으로

두 가지가 무슨 차이인가 궁금해하시는 분이 계실 것 같습니다. 어차피 구독자가 늘면 매출이 늘거고, 매출이 줄어든다면 그건 구독자가 감소하는 거랑 다를 바 없는데… 뭐가 다른거지? 라고 생각할 수도 있는데요.

이 구분이 중요한 이유는 다음과 같습니다.

  1. 구독 서비스에서 발생하는 이벤트 중 일부는 구독자와 매출 중 하나의 지표에만 영향을 미칩니다. 특정 이벤트가 발생했을 때 이 두가지 지표가 항상 같이 움직이는 것은 아닙니다.

  2. 구독 서비스에서의 매출 지표는 구독자 지표 대비 미묘하게 후행하는 특성을 가집니다.

  3. 구독자와 매출의 변화가 서로 연결되지 않는 케이스도 얼마든지 발생할 수 있습니다.

1) 특정 이벤트가 구독자와 매출 중 하나의 지표에만 영향을 미칠 수 있음

매달 1000원이 결제되는 구독 상품을 판매하는 서비스가 있다고 가정해 보겠습니다.

  • 신규 구독 이벤트 발생 → 구독자 1 증가. 매출도 1000원 증가.

위 경우에는 구독자와 매출이 함께 움직입니다. 하지만 다음 케이스는 어떨까요?

  • 체험 사용(Trial) 이벤트 발생 → 구독자 1 증가. 매출은 변화 없음.

  • 체험 사용(Trial) 기간 종료로 결제 이벤트 발생 → 구독자 수 변화 없음. 매출은 1000원 증가.

  • 구독 연장(Renew) 이벤트 발생 → 구독자 수 변화 없음. 매출은 1000원 증가.

  • 구독 연장 거부(Turn_off_auto_renew) 이벤트 발생 → 구독자 수 1 감소. 매출은 변화 없음. (이미 발생한 매출에 영향은 없고, 단지 향후에 결제 이벤트가 발생하지 않음)

이처럼 구독자 변화와 매출 변화가 서로 다른 시점에 트리거링 된다는 특성이 있기 때문에 구독 서비스의 건전성을 매출 중심으로만 보는 것은 바람직하지 않습니다. (MRR 같은 형태로 매출을 쪼개서 보더라도 마찬가지입니다.) 현재 진행하고 있는 실험이나 서비스 개선의 임팩트를 측정할 때 결제건수나 매출의 변화에만 초점을 맞추면 안되는 이유가 여기에 있습니다.

2) 구독자 지표와 매출 지표의 시간차

구독 서비스에서의 매출 지표는 구독자 지표 대비 미묘하게 후행하는 특성을 갖습니다. 체험 사용(Trial) 유저가 생기면 일정 기간 이후에 실 구독으로 전환되면서 매출이 발생하고, 구독 연장거부 이벤트가 발생하면 일정 기간 이후에 ‘결제를 하지 않음으로써’ 매출에 간접적인 영향을 미칩니다. (마이너스 매출이 발생하는 것이 아니므로, 영향을 미친다고 판단하는 것 자체가 좀 애매하기도 합니다) 이처럼 결과적으로는 양쪽 모두 영향을 받더라도, 구독자와 매출은 트리거링 되는 시점이 서로 다를 수 있습니다.

3) 구독자수와 매출이 연결되지 않는 케이스

구독자수가 전혀 변하지 않더라도 매출이 변화하는 케이스를 얼마든지 생각해 볼 수 있습니다. 대표적으로는 상품의 가격을 변화시키는 것을 들 수 있겠네요. 상품의 가격이 달라지면 구독자 수가 똑같더라도 당연히 매출이 달라집니다. 구독자들이 선택하는 상품의 옵션이 달라지는 경우도 마찬가지인데요. 구독 상품을 업그레이드하거나 다운그레이드하는 이벤트가 발생하면, 구독자 수에는 변화가 없지만 매출이 달라질 수 있습니다.

사진: Unsplash의 Austin Distel

결과적으로 구독 서비스 지표는 구독자(Subscriber)와 매출(Sales)을 각각 독립적으로 살펴보고, 각각에 영향을 미치는 선행 지표를 살펴보는 것과 함께 둘 간의 연결고리를 이해할 수 있어야 합니다. 이번 아티클에서는 이 중에서 구독자(Subscriber) 지표를 중심으로 이야기를 해 보겠습니다.

구독자 관련 지표 중 가장 핵심이 되는 지표는 무엇일까요? 많은 분들이 구독자 수 라고 생각하실 것 같은데요. 결과적으로 구독자 수가 중요한 건 맞지만, 구독자 수 자체는 저량(Stock)에 해당하는 지표이므로 단독으로 활용하기에는 해상도가 너무 낮습니다. 특정 기간 동안의 구독자 변화나 성장 기울기를 보다 직관적으로 보기 위해서는 유량(Flow)에 해당하는 구독자 수 증감(Diff) 지표를 보는 것이 더 좋습니다.

이때 유의해야 하는 점은 ‘유료’ 구독자에 대한 지표를 봐야한다는 점입니다. (Trial을 포함한 전체 구독자 수와는 다름) Trial은 아직 완전히 value-add 되기 전 사용자이므로, 유료 구독자 수에 영향을 미치는 변수 중 하나이긴 하지만 그 자체를 유료 구독자 수와 통합해서 사용해서는 안됩니다. Trial 구독자의 증감은 유료 구독자의 증감과는 다른 의미를 가집니다. 예를 들면 Trial 구독자의 증가는 긍정적인 신호이지만, Trial 구독자의 감소는 그 자체로는 긍정/부정을 논하기 어려운 중립적인 지표입니다. (유료 구독으로 전환되면서 Trial 구독자가 감소했다면 긍정적인 지표로 볼 수 있지만, Trial 기간이 만료되면서 구독자가 감소한 거라면 부정적인 지표로 해석해야 함) 따라서 서비스가 잘 성장하고 있는지를 보는 목적이라면, Trial을 제외한 유료 구독자 수의 증감을 보는 것이 가장 좋습니다. (그냥 ‘구독자’라고만 하면 혼동하시는 분들이 있을 것 같아서, 앞으로는 유료 구독자 혹은 Paid Subscriber 라는 용어를 사용하겠습니다.)

그렇다면 유료 구독자 수 증감에 영향을 주는 요인은 무엇일까요? 생각해보면 유료 구독자 수 증감에 영향을 주는 요인은 딱 두 가지 밖에 없습니다. (너무 당연…)

  • 신규 유료 구독자의 증가

  • 기존 유료 구독자의 이탈

신규 유료 구독자가 한 명도 없다고 하더라도, 기존 유료 구독자의 이탈이 없다면 유료 구독자 수는 변하지 않습니다. 10명의 신규 유료 구독자가 생겼고 5명의 기존 유료 구독자가 이탈했다면 최종적으로 유료 구독자 수는 5명 증가하게 됩니다. 이처럼 유료 구독자 수의 변화는 신규 유료 구독자의 증가, 기존 유료 구독자의 이탈이라는 단 두 가지 변수의 움직임으로 결정됩니다. 예를 들면 Install, SignUp, DAU, Retention, ARPU 등의 지표들은 (다른 요인들과 조합해서) 유료 구독자 수에 간접적인 영향을 줄 수는 있겠지만, 그 자체가 유료 구독자 수에 직접적으로 영향을 미치는 변수는 아닙니다.

→ 결과적으로 신규 유료 구독자의 증가, 기존 유료 구독자의 이탈 이라는 두 가지 변수만 잘 쪼개서 살펴보면 유료 구독자 수의 증감을 확인하고 관리할 수 있습니다.

신규 유료 구독자의 증가는 어떻게 이루어질까요? 신규 유저(정의하기 나름이지만, 당일 앱을 인스톨한 유저라고 해 보겠습니다)가 유료 구독으로 전환되거나, 기존 유저가 유료 구독으로 전환되는 케이스로 구분해서 볼 수 있겠네요. 서비스에 따라 다르지만 신규 유저에게는 일정 기간 무료로 사용할 수 있는 Trial 기간을 주는 경우가 많은데, Trial을 거쳐서 유료 구독으로 전환되는 케이스와 Trial을 거치지 않고 바로 전환되는 케이스를 더 나눠볼 수도 있습니다.

기존 유료 구독자의 이탈은 어떻게 이루어질까요? 현재 유료 구독 상태인 유저들 중에서 구독을 취소하는 숫자만큼 이탈하게 됩니다. 단순히 구독 취소자 숫자를 집계할 수도 있지만, 기간에 따른 변화를 보려면 ‘구독’에 대한 Retention을 보는 것이 더 좋습니다.

이상 설명한 내용을 다이어그램으로 나타내면 위 그림과 같습니다. 이러한 프레임워크를 기반으로, 구독자 지표의 건전성을 체크하기 위해 구체적으로 모니터링 할 수 있는 지표를 정리해 보겠습니다.

Flow 지표: 특정 기간 동안의 변화량을 보는 지표

[User]

  • A → 유료 구독자 증감 (유료 구독자 수의 변화. B-C 로 구할 수 있음)

  • B → 신규 유료 구독자

  • C → 유료 구독자 중 구독 취소자

  • D → 신규 Trial 구독자

  • E → 신규 유저 (가입 혹은 인스톨 등으로 기준 정의)

[Conversion]

  • 1 → Install to Paid Subscription Conversion (인스톨 대비 유료 구독 전환율. 딜라이트룸에서는 I2P 라는 용어 사용)

  • 2 → Install to Trial Conversion (인스톨 대비 Trial 전환율. 딜라이트룸에서는 I2T 라는 용어 사용)

  • 3 → Trial to Paid Subscription Conversion (Trial 대비 유료 구독 전환율. 딜라이트룸에서는 T2P 라는 용어 사용)

  • 4 → 기존 유저의 Paid Subscription Conversion (일반적으로 전환율로 집계하지만, 전환율이 매우 낮아서 변화량을 관리하기 어렵다면 절대 숫자로 집계하는 것도 괜찮음)

  • 5 → 유료 구독자의 구독 취소 (전체 유료 구독자 기준의 구독취소율을 볼 수도 있지만, 월 단위의 구독 유지율로 쪼개서 보는 것이 더 좋음)

Stock 지표: 특정 시점의 스냅샷을 보는 지표

  • F → (신규 유저가 아닌) 기존 유저 중 미구독 상태인 유저

  • G → 구독 상태인 유저

실제로 딜라이트룸에서 활용하고 있는 Alarmy 구독 대시보드는 위에서 언급한 Flow와 Stock에 해당하는 지표들을 국가별, OS별로 효과적으로 쪼개서 살펴보도록 구성되어 있습니다. 유료 구독자의 일별 증감 지표를 가장 우선적으로 확인한 후, 신규 구독자 증가와 기존 구독자 감소에 대한 선행지표들을 촘촘하게 살펴볼 수 있도록 만들어져 있습니다.

Alarmy 구독 대시보드 예시

이상으로 구독자에 대한 지표 분석 프레임워크를 살펴봤습니다. 개념적으로는 명확해 보이지만 실제로 이 프레임워크에 맞게 앱스토어에서 쌓이는 원천 데이터를 기반으로 필요한 데이터 마트를 만들고, 대시보드와 지표를 정리하는 작업은 그것대로 또 쉽지 않은데요. 이 이야기는 추후에 기회가 되면 따로 정리해 볼 예정입니다. (Google Play와 iTunes Connect에서 확인 가능한 구독 관련 데이터들은 플랫폼마다 데이터 포맷, 라벨링, 상태값이 모두 다르고, 집계 기준이나 형태로 제각각이라… 이 데이터 전처리하는 과정이 꽤 험난했어요 -_-;;;)

그럼 다음 편에서 매출(Sales) 지표에 대한 프레임워크 내용으로 돌아오겠습니다. ^^

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

5
0
Lucy Seo

Lucy Seo

딜라이트룸이 좋은 인재와 함께 하기 위해 집중하기 시작한 것

2년 동안 열심히 OO 운영한 후기

딜라이트룸에 지원한 후보자 분들이 자주 하는 말은 무엇일까요? 🤔

“알라미는 들어봤는데 딜라이트룸은 몰랐어요.”
“채용 공고로 처음 알게 됐는데 정보를 더 찾아보니
너무 매력적이라서 지원하게 됐어요.”

우리,, 모르시는구나,,,

약 2년 전만 해도 면접에서 실제로 많이 들었던 말이에요. 알라미는 알아도 딜라이트룸은 모르거나, 아예 알라미 조차도 처음 들어본 분들이 생각보다 많았습니다.

알라미는 확실하게 깨워주는 좋은 서비스로 입소문이 나서 워낙 오가닉하게 유입되는 유저들이 많아 마케팅이나 PR을 적극적으로 하지 않았고, 전체 유저 중 해외 유저가 85%나 차지하고 있는 만큼 국내에서 알라미나 딜라이트룸을 알리는 활동을 활발하게 하지 않았어요.

그런데!
서비스와 회사가 점점 커져가면서 딜라이트룸과 핏이 맞는 좋은 인재를 모셔오려고 하니 일단 우리 회사와 서비스가 이렇게 빠르게 성장하고 있고, 좋은 인재들이 함께 하며 시너지 낼 수 있는 곳이라는 걸 널리 알려야겠다는 필요성을 느꼈습니다🔥.🔥

이곳 저곳에 숨어있을 좋은 인재들이 딜라이트룸을 찾아오려면 일단 딜라이트룸이라는 매력적인 기업이 있다는 것을 알아야 할테니까요.

널리 알리는 방법은 여러가지가 있겠지만 그 중에서도 많은 사람들에게 딜라이트룸의 프로덕트, 비즈니스 성과, 조직문화 등 다양한 매력을 신뢰도 있게 전달하기에는 PR이 적합하다고 판단했습니다.

그래서 PR을 본격적으로 파보기로 했죠.💪

CEO Jay와 함께 칠판에 그렸던 딜라이트룸 PR의 정의와 목적

처음에는 CEO인 Jay와 P&C가 함께 딜라이트룸에서 하고자 하는 PR이 무엇인지, 왜 하는지, 어떤 걸 알리고 싶은지 싱크하고 나서 직접 기사를 작성했습니다. 직접 작성한 원문은 기사로 나가기 적합하게끔 윤문 서비스를 받아, 배포 플랫폼을 통해 배포했어요.

직접 작성한 기사가 나가기까지의 과정이 흥미롭고 배울 점도 많았지만 이미 딜라이트룸과 알라미가 가지고 있는 다양한 PR 소재들을 더 빠르게, 좋은 퀄리티로 영향력 있는 매체에 내보내고 싶었어요. 그래서 좋은 업계 네트워크와 전문성을 가지고 있는 PR 대행사의 도움을 받아 딜라이트룸과 알라미의 빠른 성장 속도에 맞춰 소재, 형태, 인터뷰이 등을 다각화하며 액티브하게 PR을 운영해온지 어느덧 2년정도 되었습니다.

2년을 다시한번 되돌아보니 확실히 이전과 달리 다양한 방향으로 알라미와 딜라이트룸의 인지도가 높아진 것을 체감하고 있습니다. 특히 딜라이트룸과 알라미 이야기를 듣고 싶다며 감사하게도 딜라이트룸을 먼저 찾아와 취재, 인터뷰 문의를 주시는 경우도 정말 많이 늘었답니다🔥(야호)

이렇게 열심히 PR활동을 한 덕에 2년간 발행된 기사가 벌써 약 470 건이나 돼요! 그 중에서 연도별로 중요하게 다뤄졌던 PR 소식들을 소개드려볼게요!🙌

2021년도

- 많이 알려져 있지 않았던 알라미의 글로벌 성과
- 딜라이트룸의 탄탄한 비즈니스 모델, 기술력 등을 보여주는 투자, 연구 협약, 수상 소식

2022년도

- 기존 성과 위주의 소식에서 비즈니스 / 프로덕트 / 컬쳐 로 카테고리 다각화
- CEO 인터뷰, 구성원 기고문, 연간 리포트 등 형태 다각화

2023년도

- 인터뷰이 다각화(CEO 인터뷰 위주에서 각 분야 전문가 딜라이터 인터뷰)
- 지속적인 성장 소식들(머니워크 투자 / 신규 기능-수면트래킹 출시)
- 컬쳐 면에서도 괄목할 만한 성과 — 잡플래닛 평점 1위

이렇게 연도별로 쭉 살펴보니 회사와 서비스가 성장하면서 소재가 훨씬 더 다채로워진 걸 알 수 있네요.🤩

위에 소개드린 연도별 굵직한 소식들 외에도 최신 소식까지 더한 다양한 소식들은 아래 링크를 통해 직접 확인하실 수 있어요!

👉딜라이트룸 뉴스 보러가기👈

그래서, PR이 진짜 효과 있었는지는 어떻게 알아요? 🧐

마케팅이 효과가 있었는지는 마케팅 콘텐츠의 클릭율, 전환율을 살펴볼 수 있습니다. 그럼 PR의 효과는 뉴스 기사의 댓글이나 조회수로 알 수 있느냐,,,!

아쉽게도 언론 매체들은 조회수, 공유수와 같은 콘텐츠 반응 지표를 공개적으로 제공하는 경우가 거의 없고, 뉴스 독자들도 웬만큼 자극적인 콘텐츠가 아니라면 SNS처럼 좋아요나 댓글 등의 반응을 거의 하지 않습니다.

그래도 레슨을 얻고 더 개선하기 위해서 꼭 해야하는 임팩트 체크! ✅ 딜라이트룸은 이렇게 PR의 효과를 체크해보고 있어요.

1. 네이버 뉴스 섹션 혹은 각 매체 메인에 걸리는지 여부

2. 네이버 키워드 검색량 그래프

3. 업계 커뮤니티나 블로그에서 남기는 기사에 대한 리뷰

+ 지원자, 외부 지인, 내부 구성원들의 이야기

특히, 뉴스 독자의 90% 이상이 네이버를 이용하기 때문에 네이버 키워드 검색량을 기사 발행일에 맞춰 꼭꼭 챙겨보고 있습니다.

2021년부터 2023년도까지의 알라미, 딜라이트룸 네이버 키워드 검색량 그래프

위 그래프를 보시면 검색량이 오르는 빈도수가 2022년도부터 확연하게 늘었고, 기사가 발행된 시점에 검색량이 올라가는걸 확인할 수 있어요. 또한, 기존에는 ‘알라미‘에 대한 검색량이 ‘딜라이트룸’을 매번 웃돌았는데, PR 업체와 손잡고 본격적으로 PR 활동을 했던 2022년도부터는 엇비슷하게 그래프가 이어지고 있습니다. 이제는 알라미 만큼 딜라이트룸도 검색이 많이 되고 있다는 의미겠죠? 🤩

위 그래프를 기반으로 그동안 딜라이트룸이 발행했던 기사들 중 임팩트가 컸던 기사들을 꼽아보았어요.

- 전세계 450만명의 아침을 바꾸는 한국 앱 서비스
- ‘차세대 유니콘'이라는 카테고리로 알라미의 웰니스앱으로의 서비스 범위 확장 포부를 밝히는 기사
- 투자 한푼 받지 않고 수백억 매출을 내는 스타트업
- 한국의 넷플릭스로 소개해준 기사

…등등 다양한 소재로 유력한 매체에, 누구나 궁금해할만한 매력적인 내용으로 나간 기사들이었습니다. (왕뿌듯 😏)

그치만 무엇보다도, PR에 집중하고 있는 이유가 딜라이트룸에 적합한 핵심 인재를 모셔오는 것에 있는 만큼 지원자 분들을 통해 채용 브랜딩 효과를 체감하고 있어요.

지원자 분들께 첫인상 서베이를 통해서나 혹은 면접 과정에서 이야기를 들어보면 기사를 통해 딜라이트룸을 알게 되었고, 기사에서 말하는 딜라이트룸의 미션과 비전에 흥미를 느끼고 지원하게 되었다는 이야기를 많이 해주시고는 합니다.

그리고 PR 및 브랜딩 활동을 하기 전과 비교해보면 지원자수가 22년 1분기 200명대에서 23년도 4분기에는 1200명대로 6배 이상 늘어났어요. 또 채용으로도 이어져 20명도 안되던 인원에서 30명 규모로 약 1.5배 늘어나기도 했답니다! 👨‍👩‍👧‍👦

지원자가 회사를 인지하고, 지원하게 되기까지 정말 많은 요소들이 영향을 끼치겠지만, PR 활동을 하기 전과 후를 비교하니 확실히 사실을 기반으로 회사 외부인의 시각에서 객관적으로 작성된 기사로 접하는 부분들이 신뢰도와 임팩트가 크다는 것을 알게 됐습니다.️🙋‍♀️

또 다른 임팩트도 있었는데요, 바로 내부 브랜딩이었어요.
딜라이트룸은 매 분기 모든 구성원이 서베이를 통해 나, 팀, 그리고 회사에 대한 만족도를 여러 항목을 가지고 리뷰하는데, 감사하게도 대부분의 항목에서는 높은 점수를 주셨지만 매번 ‘브랜딩'에 대한 항목만큼은 다른 항목 대비 점수가 낮았어요. 행복하게 잘 다니고 있는 좋은 회사인데 인지도가 낮은 것이 내심 속상하다는 의미였습니다. 🥹

그래서!
PR 활동을 하며 결과물이 나올 때마다 구성원들에게 꾸준히 공유하며 좋은 소식을 열심히 나누었어요. 💪

슬랙 #딜라이트룸_자랑하기 채널에 공유하면 이모지와 댓글로 넘나 좋아해주시는 리액션 장인 딜라이터들

우리 잘 성장하고 있고 이렇게나 많이 알아준다! 그러자 브랜딩에 대한 만족도 점수가 꾸준히 올랐고, 21년 2분기 리뷰에서 5점 만점에 2.9점이었던 점수가 지난 분기에는 4.6점을 찍기도 했습니다 🥹(울컥) 여기에 브랜딩 효과 체감 플러스! 딜라이터들이 일상에서 주변 지인들에게도 알라미와 딜라이트룸에 대한 좋은 이야기를 많이 듣는다고 좋아해주셨어요! (((P&C팀 어깨 솟는 중)))

앞으로도 딜라이트룸의 핵심인재상과 잘 맞는 좋은 인재와 함께 하고, 내부 구성원들에게도 우리가 잘 성장하고 있다는 것을 잘 알리기 위해 딜라이트룸의 다양한 소식, 성장하는 과정을 PR을 통해 활발하게 하려고 하니 많은 관심 부탁드려요. 🥰 🙌

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

5
0
Lucy Seo

Lucy Seo

구독의 최종 관문, 구매화면(페이월)

귀납적인 접근으로 생각보다 쉽게 뛰어넘을 수 있는 벽

구독 상품(기간, 가격 등)은 어떻게 구성할지, 구독을 어느 시점에 유도할지 얼추 정해졌다면, 이제 그 구독을 유도하는 시점에 띄울 구매화면(Paywall)을 기획해야 한다. 구매화면은 말 그대로 유저가 구매 행위를 하는 곳이다. 우리는 그들이 구매화면을 방문했을 때 망설임 없이 구매를 할 수 있게끔 만들어야 한다.

여느 기획과 마찬가지로 우리 유저들의 VoC, 유저 인터뷰, 제품 데이터에서 문제를 발굴하여 Bottom-up으로 기획하는 것이 좋을까? 또는 수많은 ‘카더라’에 기반하여 구독 전환에 좋다고 하는 요소들을 가져다가 붙이는 것이 좋을까? 둘 다 아니다.

구매화면은 제품 내 다른 화면들과 다르게 공급자 관점에서의 최적화가 중요한 화면이다. 백화점에 창문이 없고 시계가 없는 것은 소비자들이 원한 기획이 아니다. 시장 내 많은 가격표들이 10,000원이 아니라 9,900 원과 같이 표기되는 것도 소비자들이 원한 기획이 아니다. 구매화면도 마찬가지이다. 소비자가 아니라 공급자의 관점에서, 잠재 구독 유저들의 소비 심리를 이용할 수 있는 최적의 기획을 찾아야 한다.

‘카더라’에서 시드를 찾는 것도 하나의 방법일 수 있으나 우리 제품에 맞지 않는 방법일 가능성이 크다. 실제 구독 전환에 도움이 얼마나 되는지 간단한 실험이라도 진행하여 확인해 보는 것이 옳다.

우리 제품 구독에 딱 맞는 구매화면을 어떻게 찾아가면 좋을지 살펴보도록 하자.

귀납적으로 접근하기

구매화면은 귀납적으로 최적의 변수들을 조합해 가기 참 좋은 지면이다.

1. 보통 앱을 처음 설치한 모든 유저들이 반드시 거치다 보니 실험 모수가 금방 쌓이는 지면이다.

2. 실험을 빈번히 진행해도 앱 전반 핵심 사용성에 영향을 덜 끼치는 지면이다.

3. 구매화면 내 실험들은 디자인 및 개발 공수가 굉장히 적게 드는 작업들이다.

구매화면 그로스 실험의 예시

막말로 한 스프린트는 타이틀만 검증해 보고, 다음 스프린트는 메인 이미지(일러스트/이미지/실사)만 검증해 보고, 그다음 스프린트는 소구방식(유저 리뷰, 숫자 강조 등만 검증해 보고…. 하다 보면 한 분기 내에 6개 남짓 실험을 통해 얼추 최적의 구매화면 찾을 수 있다. 3개의 위너를 발굴해서 구독 전환율을 30% ~ 50% 씩만 개선해도 2배 이상의 전환율을 만들어 낼 수 있는 것이다. (그로스가 덜된 시점일수록 실험 타율도 높고 개당 증분도 클 것이다.) 우리 제품도 작년 한 해 동안 누적 30개 내외의 실험군을 거쳐오며 최적의 구매화면을 찾아왔다.

머리 싸매고 최적의 구매화면 기획에 한 달 공들일 시간에, 하루라도 일찍 간단한 실험을 돌리는 게 효율적인 지면인 것. 물론 여기서도 중요한 것은 각 실험이 이기든 지든 간에, 레슨이 잘 쌓일 수 있게끔 변수를 잘 통제하며 실험을 설계해야 한다는 점이다. 그래야 기존 그로스 증분이 유실되지 않고 착실하게 누적될 수 있으니.

변칙적인 실험 병행하기

위와 같이 누적으로 레슨을 쌓아가다 보면 자칫 부분 최적화 오류에 빠질 수도 있다. 더 큰 그로스를 만들어 낼 수 있는 다른 길이 있는데, 이미 접어든 골목 내에만 머물면서 그 안에서의 최적화에 그칠 수 있다는 뜻이다. 만약 구매화면 실험에서의 증분을 10% 도 만들어내기 어려워지는 시점이 왔다면, 이제 슬슬 아예 색다른 구매화면을 과감히 시도해 보는 것이 좋을 시점이 온 것이라 할 수 있다.

2019년 -> 2020년 -> 2021년 -> 2022년 구매화면 메인 테마

돌아보니 우리 제품의 구매화면은 꾸준히 그로스 실험을 진행하면서 동시에, 변칙적인 변화도 주기적으로 있어 왔다. 변화 시도 자체는 더 빈번했을 텐데, 변칙 실험군 중 위너가 발굴되는 것이 1년 주기 정도 되는 것 같다. 가장 우측에 위치한 실험군은 정말 자신 없었던 변칙 실험군이었는데, 기존 대조군 대비 1.4 배의 전환율을 내주었던 고마운 실험군이 되었다. 이제는 당당하게 우리의 강력한 대조군으로서 자리하고 있고, 이를 기반으로 또 새로운 그로스 기획들이 진행 중이다.

이러한 변칙 전략은 여러 실험군을 도출해 내기가 쉽지 않은데, 이때 그로스를 잘하고 있는 타사들의 구매화면을 참고하곤 한다. 생각지도 못했던 참신한 아이디어를 얻을 때도 있지만, 오히려 은근히 등잔 밑이 어둡다고 ‘진작 테스트해봤어야 하는데!’ 싶은 요소들을 발견할 때가 많다.

한편으론 리서치 과정에서 우리 제품의 구매화면을 참고한 것 같은 구매화면을 발견할 때도 많다. (알라미 구매화면의 21년도 9월 버전을 발견할 때도 있고, 23년 초 버전을 발견할 때도 있다.) 내심 뿌듯하기도 하고, 잘 실험해 본 후에 자체적으로 소화시킨 걸까라는 염려가 들기도 하고.. 모쪼록 구독 전환에 도움이 되었길 바란다.

변칙 실험에 효과적인 타사 레퍼런스 활용. 알라미 구매화면을 참고한 것으로 보이는 타사 사례들

그렇게 다양한 실험군을 테스트해봤음에도, 여전히 구매화면 관련 백로그는 쌓여있다. 안타깝게도 이미 누적 그로스 증분이 상당하다 보니 후속 백로그들의 예상 임팩트가 크질 못하다. 최근 들어서는 구매화면 밖 제품 영역에서의 기획들의 임팩트가 훨씬 크기에, 해당 부분에 자연스럽게 우선 순위가 밀리고 있다.

그럼에도 구매화면은 테스트해서 손해 볼 게 없는 지면이라는 점, 작업 공수가 적게 든다는 점에서 현재 상태로 가만히 두고 있는 것 자체가 퍽 아쉬운 것도 사실이다. 모듈화 & 자동화라도 해서 상시 테스트를 돌리고 싶은 지면이랄까… (혹시 이미 본인만의 방식으로, 효율적으로 구매화면 최적화하고 계신 분이 계시다면 배움 나눔 부탁드립니다..!)

만약 현재 제품 내 구매화면이 아무런 테스트 없이 방치되고 있다면, 간단히 타이틀만 바꿔보는 실험이라도, 또는 메인 색상을 바꿔보는 간단한 실험이라도 진행해 보면 좋겠다. 생각보다 쉽게 구독 전환율을 올릴 수 있는 시드가 가까이 있을지도 모르니..!

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

4
0
Lucy Seo

Lucy Seo

제품 가설이 풀리지 않을 때 시도해볼 단 1가지

상자를 뒤집어버리자

🌅 새해 목표에 숨어있는 우리의 생각

2024년 새해가 밝았습니다. (-라며 글을 시작했는데 구정이 지났군요. 호호)

여러분은 올해 어떤 목표를 잡으셨나요?

저는 제가 가진 좋은 습관과 생각들을 매일 기록하는 것을 목표로 잡았는데요. 여러분 중 누군가는 더 건강하기로 마음 먹고 운동을 시작하셨을 수도 있고, 사랑하는 이들과의 시간을 더 알차게 보내기로 약속하고 여행을 알아보고 계실 수도 있겠습니다.

친구들, 동료들과 새해 목표에 대해 이야기하다 보면 ‘아 이 사람은 이러이러한 인생을 살고 싶어하는구나’라는 것을 새삼 느끼게 되지 않나요. 아마 그 이유는 우리의 새해 목표에는 인생의 가치관까지 이어지는 어떠한 가설이 자리잡고 있기 때문일 것입니다.

앞선 목표들에서 제가 생각하는 가설을 뽑아보면,

이런 생각이 숨어있을 수 있어요. 각자의 인생 목표, 가치관에 따라 도달하고자 하는 삶의 모습은 조금씩 다르겠지만요. 이처럼, 당장 잡은 올해의 목표들을 아주 깊게 파고들어보면 우리네 각자가 원하는 삶의 모습을 볼 수 있습니다.

제품도 마찬가지입니다. 알라미는 사람들에게 성공적인 아침을 선사한다!는 꿈을 가지고 있어요. 우리가 꿈꾸는 ‘행복한 삶’과 같은 아주 궁극적인 목표입니다. 그러기 위해 더 잘 깨우고, 더 잘 재우기 위한 하위 목표들을 구체화하고 있죠.

그 중에서도 “잘 깨우기”를 담당하고 있는 모닝 스쿼드는 지난 1년 반 동안 “유저들의 아침을 성공적으로 만들기”라는 큰 목표 하에서 움직여 왔습니다. 그러던 중 24년 새해를 맞아 스쿼드 목표를 세우기 위한 가설을 바꾸게 되었답니다. 아주 작은 변화이지만 큰 차이를 만들었는데요, 어떤 연유로 어떤 과정으로 큼지막한 가설을 바꾸었는지 고뇌와 유레카의 과정을 살포시 나누어봅니다.

🎯 모닝의 첫 임무: 내일 아침을 성공적으로 만든다!

모닝 스쿼드의 최상위 목표는 “유저들의 아침을 성공적으로 만드는 것”이었습니다. 이 목표 안에 숨은 더 궁극적인 꿈은 무엇일까요?

새해 목표처럼 파고 들어가보면,

이렇게 “자신이 원하는 삶을 사는 것”까지 도달할 수 있습니다. 단순히 깨우는 것을 넘어서 내일 아침을, 다음 한 달을, 인생을 바꾸는 것이 알라미의 궁극적인 비전인 것이죠.

자 이제 조금 더 현실적으로! 제품을 만드는 모닝 스쿼드 입장에서 위 문장을 바꾸어볼게요.

즉, 모닝 스쿼드가 가장 먼저 검증하고 싶은 제품 가설은 이것이었습니다.

오케이! 모닝 스쿼드는 잘 일어나게 하기, 상쾌한 아침 보내게 하기에 집중하면 되겠군요. 😉

그렇게 1년 반에 달하는 시간 동안, 다음날 더 잘 일어나도록, 더 상쾌한 아침을 보낼 수 있도록 하는 작업을 진행했습니다. 성공적인 아침을 지표로 정량화한 ‘아침 점수’라는 기능을 만들어 얼마나 한 번에 일어났는지 숫자로 알려주고, 정성적인 기분 상태를 체크하게 만들고, 이 데이터를 쌓아 일주일 간의 흐름을 볼 수 있게 했습니다. 그리고 이 점수를 알람 해제 직후 플로우에 추가하여 일어난 후 자신의 상태를 돌아볼 수 있도록 했죠. 잘 일어나지 못하는 유저들을 위해 확실히 일어나게 해주는 기능도 하나둘 추가했습니다.

그렇게 새로운 기능들이 속속 들어오고, ‘성공적인 아침에 대한 지표’ 화면을 보는 유저들이 차츰 늘어났습니다.

👠 길을 잃었다 (ft. 아이유)

이제 성공적인 아침에 대한 지표 시스템을 만들었으니, 더! 상쾌하고 더! 성공적인 아침을 위한 기능을 더더 추가하는 일만 남았습니다.

그런데, 새로운 가설을 도출하고 실행하는 데에 점점 브레이크가 걸리기 시작했어요.

성공적인 아침을 위해 필요로 하는 것은 사람마다 무궁무진하게 많았습니다. #미라클 모닝, #아침 루틴 테마를 가진 레퍼런스는 셀 수 없이 많았지만, 가짓수가 많은 만큼 ‘50% 이상의 유저들이 이 기능을 필요로 할 거야!’라는 자신감이 드는 아이디어가 없었습니다. 모든 것을 포용하려 하면 기능이 말도 안 되게 어려워졌고, 단순하게 하나의 문제를 풀려고 하면 너무 소수를 위한 기능이 되어 버렸어요.

어찌해야 하오

처음부터 다시 고민해봐야겠다는 생각이 들었습니다. 모닝 스쿼드에서 만든 ‘아침 점수 주간 차트’를 바라보며, 성공적인 아침을 맞는 사람들의 그래프를 상상해보았습니다. 이 그래프가 어떻게 그려져야 성공적인 아침인 걸까요?

아침 점수는 100에 가까울수록 알라미가 생각하는 성공적인 아침에 가까운데요,

만약 아침에 잘 일어나지 못하고 매일 힘겹게 시작하는 사람이 알라미를 처음 시작했다고 생각해봅시다.

그 사람이 알라미의 도움으로 점점 성공적인 아침을 보내게 된다면, 그건 우리의 목표가 달성된 거라고 볼 수 있을 거예요.

그런데 이미 매일 완벽한 아침을 보내고 있다면요? 그 이상 더 좋아지기는 어렵습니다. 알라미에서 새로운 기능을 추가해서 ‘이것까지 해야 완벽합니다!‘라고 외치지 않는 이상은요. 그런데 언제까지고 무한대로 기능을 추가할 수는 없겠죠.

반대로, 매일 성공적인 아침을 보내던 사람도 그러지 못하는 날이 생깁니다. 날씨가 안 좋을 수도 있고, 출장을 갈 수도 있고, 독감에 걸릴 수도 있죠. (12월의 저처럼) 그런 날 조금 미비하게 아침을 보냈다면, 알라미는 그 사람에게 ’덜 성공적이다‘는 피드백을 줘야 합니다. 이게 정말 우리가 원하는 걸까요?

🕵️ 답은 질문에 이미 있었다

잠시 100점 선을 지워보고, 차트를 멀리서 바라보았습니다.

모닝 스쿼드의 일차적인 목표는 알라미를 반복적으로 쓰는 것이었죠.

앗 그런데 이미 이 사람은 알라미를 꾸준히 쓰고 있는걸요?

선의 오르내림, 100점에 얼마나 가깝냐보다도, 이 차트가 끊기지 않고 이어지게 하는 것.

꾸준히 자신의 패턴을 이어가는 것이 우리가 바라는 게 아닐까요.

당장 내일을 더 성공적으로 만드는 것보다, 완벽하지 않아도 내일도 알라미로 일어나게 하는 것이 먼저일 수 있겠다는 생각이 들었습니다. 이미 알라미를 자주 사용하고 있는 유저에게는 그것이 얼마나 가치 있고 대단한 일인지 일깨워주고, 조금 사용해본 유저에게는 알라미를 매일 사용했을 때 어떤 변화가 다가올지 상상하게 해주는 거죠. 그러면 설령 첫 날부터 완벽한 아침을 보내지는 못해도, 쓰다 보면 점점 바뀌어있는 자신을 발견할 테니까요.

사실, 이 고민이 며칠만에 뚝딱 끝나지는 않았습니다. 무의식적으로는 몇 분기에 걸쳐, 본격적으로는 4분기 동안 찐하게 고뇌를 했죠. 막막하고 혼란스러웠던 고민의 시기를 거치고 나니, 제가 찾은 돌파구를 가설로 정리해볼 수 있었습니다.

그렇다고 해서 기존 가설이 틀렸냐? 그건 아닙니다.

인바디 점수가 수많은 사람들을 운동하게 만든 것처럼 정량화와 이상을 제시하는 것이 사람들을 움직이기도 하고

반대로 하루 5분 운동을 냅다 반복부터 시켜서 이상적인 상태로 바꾸는 경우도 있습니다. 틀린 방법은 없어요.

다만 ‘성공적인 아침부터 만들어야만! 반복시키든 말든 할 수 있어’라는 생각에 고착될 필요가 없다는 것을 새삼스레 깨달았던 것이지요. 두 가설 다 말이 되니까요.

🍳 가설을 뒤집어봅시다

우리가 일을 하다 보면 ‘A를 해야 B가 이루어질 거야‘라는 생각을 하는 경우가 많습니다.

  • 제안서를 작성해야 파트너사를 설득할 수 있을 거야.

  • 고객 대응 매뉴얼을 짜야 빠르게 안내할 수 있을 거야.

  • 이슈 대응 프로세스를 짜야 버그에 빠르게 대응할 수 있을 거야.

그런데 A를 하다 보면 막히는 순간이 한 번쯤은 오기 마련인데요, 이럴 때는 가설을 뒤집어보세요.

계란도 뒤집어가며 익혀야 골고루 익듯, 어떤 일을 함에 있어 딱 정해진 순서대로 해야 이루어지는 것은 아닌 것 같습니다. 오히려 반대의 순서가 더 빠르고 효과적일 수도 있어요.

아, 가설을 바꾼 뒤 모닝 스쿼드는 어떻게 지내냐구요?

일단 스쿼드 이름을 다소 광범위했던 Morning 에서 알라미가 집중해야 할 행동인 Wake up 으로 바꾸었고요.

가설을 조정한 뒤로 백로그를 순산하며 즐겁게 달리고 있답니다. 이 방향이면 될 것 같다는 자신감과, 실질적으로 예측되는 제품 임팩트 모두 이전에 비해 훨씬 높은 상태예요. 어서 변화를 세상에 내놓고 검증하기를 기다리고 있습니다.

앞으로의 새로운 가설을 통한 결과와 레슨들도 기대해주세요. 더 자주 글로 나누겠습니다.

가설에 대해 치열하게 고민하고 토론하면서 하루 250만 명의 삶을 바꾸는 서비스를 만들고 싶다면?

3
0
Lucy Seo

Lucy Seo

디자인을 잘하는 사람은 OOO을 잘한다?

작업이 풀리지 않을때 시도할 5가지

글쓰기와 디자인은 비슷합니다

저희 알라미 디자인팀은 피그마를 켜기 전에 디자이너의 첫 업무 프로세스로 글쓰기를 진행하고 있습니다. PO의 기획을 충분히 이해하고 디자이너로서 어떤 작업들을 해야하는지, 어떤 대상에게 어떤 전략으로 문제를 해결할 것인지 글로 먼저 그려보는 것인데요. 지금까지 해당 단계를 진행해보면서 느낀점은 이 단계를 진행했을때와 하지 않았을때의 시간차이와 결과물 차이가 꽤 많이 난다는 것입니다. 디자인 전 글쓰기를 통해 우리의 목표 설정, 타겟을 위한 스토리, 적합한 UI를 먼저 상상하여 글을 구조적으로 작성하면 어떤 디자인을 해야하는지 더 명확해지기 때문입니다.

글쓰기와 디자인은 비슷한 점이 많습니다. 목적과 대상에 맞게 쓰여진 글과 목적과 대상에 맞게 만들어진 디자인을 좋은 결과물이라하는 것을 보면 공감하실 것이라 생각되어집니다. 글쓰기와 디자인은 결과물을 만드는 과정, 더 나은 결과물을 위해 생각을 고도화하는 과정이 매우 비슷합니다. 때로는 글이 디자인보다도 더 명확한 핵심을 추출하는데에 더 효과적이기도 한데요.그래서 알라미 디자이너들은 디자인이 잘 진행되지 않을때 모든 것을 멈추고 글쓰기에 집중하기도 합니다.

이처럼 알라미 디자이너들에게는 글쓰기와 디자인은 더나은 결과물을 위한 매우 중요한 도구입니다. 개인적으로 글쓰기에 집중하는 요즘, 더 나은 결과물을 위한 글쓰기와 디자인의 공통된 과정을 정리해보았습니다.

목적과 타겟설정이 가장 첫 스텝이다

우리가 글쓰기와 디자인 모두 시작하기 전에 가장 첫번째로 할 일은 목적을 정하는 것입니다. 어떤 것을 전달할 것인가 , 누가 읽을 것인가 가 뾰족해야 합니다. 누구에게 무엇을 전달할 것인가가 명확하지 않으면 결과물은 형태가 있어도 희미해집니다.

목적과 타겟이 모호하거나 생각이 잘 정리되지 않는다면 첫 발산의 아이디어를 가볍게 글로 적어보거나 디자인을 러프하게 시도해보세요. 머리 속 생각을 시각화하다보면 내가 하고자 하는 것이 무엇이었는지 시각화된 결과물 사이에서 찾으실 수 있으실 거에요. 단, 이 과정은 결과물을 만드는 과정이 아닌 목적을 찾기 위한 표출과정임을 꼭 인지하세요.

어떤 이야기 흐름으로 전달할까 고민한다

정보을 어떻게 구성하는가, 어떤 순서로 나열하는가에 전달하려는 메세지와 경험의 효과차이는 클 것입니다. 어떤 메세지이냐에 따라 결과부터 보여주는 두괄식이 효과적일 수 있고, 배경설명 후 그래서 결과가 어땠다라는 미괄식이 효과적일 수 있습니다.

디자인도 마찬가지죠. 할인된 최종금액이 중요한 구매페이지는 결과부터 보여주는 방식을 사용하기도 하고, 가치 소구를 설명하기 위한 설득 페이지는 상태와 문제를 보여주고 변화되어 얻게 될 결과를 최종적으로 보여주는 방식을 사용하기도 합니다.
어떤 이야기의 흐름이 목적에 부합하는지를 고민하고 정보의 구조와 흐름을 만드는 것이 2번째 입니다.

정보구조에 살 붙여나가기

글을 많이 읽으시는 분들은 종종 좋은 글에는 특유의 맛이 있다고 하시는데요. 아직 저는 글의 맛까지는 느끼지는 못하지만 글의 맛은 무엇일까 생각해보면 단어일 수도 있고 문장의 구성일 수도,글 전반의 기승전결일 수도 있을 거 같습니다.

적합한 단어와 명확한 문장 그리고 전반적인 강약 조절은 글쓰기 뿐만 아니라 디자인에서도 중요하죠. 많은 정보를 작은 디바이스에 명확하게 보여주고 행동까지 요구하기 위해서는 정확한 단어와 적합한 UI를 찾아야 하고 맥락에 맞는 문장들로 행동하고 싶겠끔 만들어야 합니다. 그러기 위해서는 화면 전반의 기승전결이 잘 흐르며 최종 행동이 강조되는 지도 봐야합니다.


엉성하더라도 지속적으로 살을 붙여 나가 구조를 단단히 만들어 나가는 과정이 3번째 과정입니다.

정리하고 덜어내기

처음과 끝까지 구조를 제법 갖춘 상태가 되었다면, 4번째 과정이 핵심이니 더욱 냉철한 시야를 갖춰야 합니다. 구조가 잘 짜여졌다는 전제하에 먼저 할일은 중복정보가 파편화되어 있는지 먼저 파악하는 것입니다. 같은 맥락의 정보는 한곳에 모여 있어야 그 중요도가 올라갑니다. 파편화 되었을때 그 힘이 약해질 수 있으니 주의합니다.

다음은 가장 어려운 덜어내기입니다. 저는 아직도 이부분이 가장 어려운 것 같습니다. 글쓰기도 디자인도 명확한 전달이 중요하기때문에 항상 핵심만 남겨두는 것이 가장 중요하면서도 가장 어려운데요. 욕심을 어느정도 줄이고 알았으면 좋겠다하는 정보 는 과감히 덜어내고꼭 알아야하는 정보만을 남겨두세요. 덜어내기를 가장 잘 했을때 좋은 결과물에 더 가까워 질 수 있으니 여러 시도를 해보시는걸 권해드려요.

검수하고 피드백받기

여기까지의 과정을 완수하시면 이제 정말 다 한것이나 다름없습니다. 혼자만의 고통스러운 시간은 이제 끝났어요. ( 이제는 타인의 의견을 받아 정리하는 약간의 고통만 남아 있어요 🙃 )

다시 결과물을 보며 처음 목적에 잘 부합하는지 핵심메세지가 잘 드러나고 있는지 확인해봅니다. 잘 판단이 되신다면 매우 아름다운 결말일 수 있지만 대부분 찜찜하실 수 있습니다. 지금까지 과정동안 너무 집중하고 매몰되어 있으셨을꺼에요. 스스로의 눈이 객관적이기 어려울때 이때가 공유의 적기 입니다. 결과물에 대해 다양한 시야를 제공해줄 수 있는 사람들의 의견을 받아보세요. 다시 또 수정해야할 것들이 보이시게 될꺼에요.

사실은

위에서 말씀들이 이 과정들은 늘 순서대로 하나씩 뿌셔가며 끝내지는 못할 수 있습니다. 구조를 잡다가도 목적단계로 다시 갈 수도 있고, 검수를 하다가도 목적단계로 다시 처음부터 돌아갈 수도 있습니다. 가끔 그렇게 돌아가다 머리가 돌아버릴 수도 있지만 포기하지 마세요. 그 고통의 과정만큼 더 좋은 결과물에 가까워질 수 있을 거에요.

과정이 만족스럽지 않을때의 팁!

양치기로 승부하기
글쓰기와 디자인은 정말 많이 만들수록 감을 잡게되는거 같습니다. 초반에는 결과물 퀄리티가 당연히 마음에 차지 않으실꺼에요. 저도 이 글을 쓰고 있는 이 순간도 제 결과가 만족스럽지않지만 일단 많이 만들어본다는 마음으로 진행중에 있습니다. 결과를 만드는 것에 익숙해지시고 다양한 방법 시도에 먼저 집중하세요. 그 단계가 익숙해지면 퀄리티에 대한 방법도 자연스레 눈에 보이실꺼에요.

많이 보고 따라하기
결과를 많이 내는 것과 동시에 중요한것은 스스로 퀄리티를 볼 수 있어야 내 결과물의 개선점도 찾을 수 있습니다. 많은 사람의 작업물을 보시고 따라해보는 것을 권해드려요. 어떤 부분이 퀄리티가 좋아보이는 결과물을 만드는지는 많이 보는 방법밖에 없습니다. 왜 저 사람의 결과물이 멋져보이는지 내 결과물의 어떤 부분을 바꿔야 그렇게 보일 수 있는지 따라하며 비교해보세요.

뻔하지만 확실한 환기하기
작업에 엄청나게 집중하다보면 어느순간 정말 아무 생각이 안드는 답답한 순간이 늘 오게되는 거 같습니다. 그 순간을 만나신다면 일단 깔끔하게 그 자릴 떠나보세요. 다른 작업을 하셔도 좋고, 장소를 이동하시는 것도 좋습니다. 진행중이던 결과물을 잠시동안 잊어보세요. 환기하고 돌아왔을때 안보이던 것들이 다시 보이게 되실꺼에요.

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

13
0
Lucy Seo

Lucy Seo

구독과 리텐션 밸런스 게임

구독 전환율 2배 개선 vs D1 리텐션 10% 개선

지난 첫 구독 유도 실험을 통해 이른 시점에 유저에게 구독을 넛지 하면 구독 전환율이 크게 증대한다는 점과, D1 리텐션이 하락한다는 점을 학습했다. (지난 글 : 리텐션을 고려한 첫 구독 유도의 중요성 — 온보딩 구매화면 노출 시점 최적화 실험) ‘리텐션이 떨어지지 않았지만 구독 전환율이 높지 않은 대조군’과, ‘구독 전환율은 크게 개선되었지만 리텐션이 떨어진 실험군’, 둘 중에 우리는 일단 대조군의 손을 들어줬다. 간단한 수식 비교가 있었지만, 그보다는 좀 더 균형 잡힌 위너를 후속 실험으로 발굴할 수 있다는 자신감이 있었기 때문이었다. 이른 시점에 구독을 넛지 하더라도, 리텐션을 보존하면서 구독 전환율을 높이는 실험군을 기획해 보기로 했다.

3차 실험

23년 10월 둘째 주 ~ 셋째 주

앞서 진행했던 1차 2차 실험은 ‘어느 시점’에 구매화면을 띄울까에 대한 실험들이었다. 해당 실험들을 통해 우리만의 가장 강력한 시점은 찾았다. 오히려 그 실험들에서 발견된 문제점은 리텐션이 떨어진다는 점이었고, ‘왜 앱을 이탈할까?’에서 정의했던 문제는 ‘유저들이 구매화면을 어떻게 빠져나가야 할지 모르기 때문에’였다. 하여 3차 실험은 ‘어떤 이탈 방식’이 최적일지를 테스트해보기로 했다.

결과는 뜻밖이었다.

오히려 더 빠져나가고 싶게 만들었던 걸까? 실험군에서 구독 전환율이 반토막이 났다. 그리고 신기했던 것은, D1 리텐션이 5~7% 증진되었다는 점이다. 지난 실험에서는 구독 전환율이 2배 오르고 D1 리텐션이 8% 떨어졌는데, 이번에는 정 반대의 결과가 나온 것.

[1차-2차] 구매화면 이탈이 어려웠을 때는 구독 전환율이 오르고 D1 리텐션이 떨어졌다.
[3차] 구매화면 이탈이 쉬워졌더니 구독 전환율이 떨어지고 D1 리텐션이 올랐다.

음.. 그럼…

구매화면 이탈을 쉽지도 어렵지도 않으면? 리텐션도 오르고 구독 전환율도 오를까?

뭔가 몇 번 더 해보면 균형점을 찾을 수 있을 것 같았다.

4차 실험

23년 11월 첫째 주 ~ 둘째 주

이번에는 유저가 적당히 이탈할 수 있는 구매화면을 준비하여 4차 실험을 진행했다. 시간이 흐르는 사이에 다른 실험들로 인해 대조군의 구매화면 형태도 달라졌는데, (활짝 웃는 엠마 얼굴이 사라졌다.) 하여 이번 4차 실험에서는 그 달라짐 자체도 새로운 변수로서 확인해 보기 위해 1차 실험 때와 이탈 조건이 아예 동일한 조건의 실험군(구매화면만 달라짐) 1을 설정하고, 좀 더 이탈을 쉽게 만든 실험군 2를 설정했다. 실험군 2에는 닫기 버튼 노출 로직에 몇 가지 변화를 주었다.

이번 결과는 아름다웠다.

적당히(?) 이탈할 수 있게 만든 실험군 2가 D1 리텐션 하락 없이 구독 전환율 증분을 일궈냈다.

1,2차 실험 때와 이탈조건이 동일한 실험군 1은 실험군 2 보다 더 큰 구독 전환율 증분을 냈지만, D1 리텐션 하락이 있었다.

4차 실험의 결과 (출처 : DA 레오의 분석 문서)

와 드디어 밸런스 지점을 찾다니..! (사실 이런 ‘밸런스 게임’이 존재하리라 생각지도 못하고 시작했다만..)

4차에 걸친 실험 끝에 최적의 지점을 찾았다. 묘한 안도감이 들었다.

그러면서 동시에 마지막 욕심이 치솟았다.

실험군 1은 구독 전환율 40~50% 개선인데, 리텐션 하락분(5~10%)과의 대결에서 이길 수는 없을까?

처음 구독 전환율과 D1 리텐션의 가치를 비교할 때에는, 정량적인 가치로 비교를 했다. D1 리텐션 또한 광고 매출로 이어지기 때문에 매출로 환산을 하여 구독 전환율 증분과 대결을 했던 것이다. 해당 공식은 유저가 매주 얼마나 유입되는지, 각 유저 (구독 유저, 무료 유저)의 LTV 가 어떻게 되는지 등에 따라 산출액이 달라지는데, 이번 참에 해당 비교를 간편하게 하기 위해 우리 팀의 DA 레오께서 툴을 만들어주셨다. 이를 통해 4차 실험 실험군 1의 구독 전환율 증분과 리텐션 하락분을 계산해 보니 아래와 같았다.

구독 전환율 증분에 따른 추가 매출액 증분 (좌), 리텐션 하락에 따른 매출액 감소분 (우)

리텐션 하락으로 인한 매출 하락분 보다, 구독 전환율 증대로 인한 매출 증분이 더 크게 계산되었다. 그럼에도 우리는 여러 논의 끝에 실험군 1을 선택하지 않고 실험군 2를 선택하게 되었다. 정량적 가치만 따져보면 실험군 1을 택하는 것이 옳았지만, 이와 별개의 우리만의 마지막 가드레일이 있었기 때문이다.

마지막 가드레일

유저가 우리 앱을 떠날 때 떠나더라도, 어떤 인상을 가진 채 떠나는가 — 이에 따라 그들이 다시 돌아올 가능성도 크게 달라지고, 그들의 입을 타고 퍼질 우리 제품에 대한 브랜드 이미지도 크게 달라진다. 다시 말하면 똑같이 D1 리텐션이 5% 하락한 경우라 하더라도, 단순한 불편함으로 이탈한 케이스와 언짢음 내지는 불쾌함으로 이탈한 케이스는 그 임팩트가 서로 다르다는 것이다. 이러한 정성적인 부분을 우리는 최종적인 가드레일로 삼기로 했다. 어떠한 불쾌함을 야기하는 기획은, 매출이 오르더라도 제품에 반영하지 않는 것이다.

마지막 4차 실험에서 실험군 1과 실험군 2의 차이는 닫기 버튼 노출 로직(특정 조건을 충족해야 닫기 버튼이 노출됨)이었다. 다른 구매화면에서는 이 노출 로직이 구독 전환율과 D1 리텐션을 모두 높였었는데, 유독 이 실험에서만 D1 리텐션이 떨어졌다. 우리는 그 이유를 ‘유저가 불쾌함을 느껴서’라고 진단했다. 그래서 위 계산식과 상관없이 실험군 1은 선택하지 않기로 결정한 것이다.

유저가 불쾌함을 느꼈을까? 느꼈다면 이탈 후 우리 제품에 대해 부정적인 소문을 낼 정도로 큰 불쾌함이었을까? 다소 주관적일 수 있는 이 마지막 가드레일은, 그렇기 때문에 여러 유관 부서들과 많은 논의를 필요로 했다. 충분한 논의 끝에 위와 같은 결론에 도달했고, 전에 없던 우리들만의 기준들을 마련했다는 사실에 뿌듯함도 느꼈다. 물론 그 기준들은 절대적인 것이 아니다. 앞으로 제품 상황에 따라 얼마든지 변할 수 있는 것이다. 중요한 건 이러한 가치 충돌이 있을 때 그래서 우리는 어느 방향으로 어떻게 갈 것인지, 함께 의견을 모을 수 있어야 한다는 것.

결과적으로 고군분투 끝에 유저와 공급자 모두가 만족할만한 밸런스 지점을 찾았다. 또한 매 실험 차수를 거듭할수록 유저에 대한 인사이트와 이야깃거리가 풍성해져 팀 차원에서의 배움과 성장도 컸다.

앞으로도 우리만의 탄탄한 그로스 철학을 바탕으로,

유저가 불쾌함을 느끼지 않는 선에서 건강한 수익화 전략들을 고도화해 나갈 것이다.

23년도 2분기 말부터 4회에 걸쳐 이어져 온 첫 구독 유도 실험 이야기 끝!

  1. 첫 구독 유도의 중요성 — 온보딩 구매화면의 비밀

  2. 리텐션을 고려한 첫 구독 유도의 중요성 — 온보딩 구매화면 노출 시점 최적화 실험

  3. 구독과 리텐션 밸런스 게임 — 구독 전환율 2배 개선 vs D1 리텐션 10% 개선 (본 글)

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

5
0
Lucy Seo

Lucy Seo

리텐션을 고려한 첫 구독 유도의 중요성

온보딩 구매화면 노출 시점 최적화 실험

위와 같은 레슨에 이어, 아래와 같은 후속 실험이 현재 진행 중이다.
온보딩 구매화면을 아예 띄우지 않던 때보다는 훨씬 큰 그로스를 만들어 냈지만, 띄우고 있는 시점을 달리 하면 더 큰 전환율을 만들어낼 수도 있다는 것을 알게 되었기에, 우리 제품에 맞는 최적의 시점을 찾는 실험을 이어 진행하고 있다.

지난 글 : 첫 구독 유도의 중요성 — 온보딩 구매화면의 비밀의 말미에, 온보딩 구매화면의 노출 시점을 더 앞당겨보는 실험을 진행 중이라 이야기 한 바 있다.

온보딩 진행 간에 퍼널 이탈률이 높지 않다는 점을 감안하면, 더 이르게 노출시키는 것이 노출량 자체를 늘리는 데에는 크게 기여하지 못할 것이다. 오히려 지난 글에서 이야기한 바와 같이, 더 이르게 노출시킬수록 노출량 증대보다는 구독으로의 전환율이 높아질 것이라는 강한 컨피던스로 진행하는 실험이었다.

문제는 ‘어느 시점에 노출하는 것이 신규 유저 리텐션을 낮추지 않으면서 더 큰 구독 전환율을 발생시킬 것인가’였다. 무료 기능이 없는 완전한 프리미엄 서비스인 경우, 딱히 리텐션을 염려하지 않아도 괜찮겠지만 일정 부분 무료로 기능을 제공하면서 광고 매출을 크게 발생시키고 있는 우리 알라미의 경우 리텐션이 가장 중요한 지표 중 하나이다.

매일매일 새로 유입되는 신규 유저 볼륨이 굉장히 크다 보니, D1 리텐션 소폭 증분에 따른 누적 DAU 증분 크기도 상당하다. 이에 더해 ‘신규 유저 리텐션 올리는 것’과 ‘구독 전환율 올리는 것’의 난이도를 따져보면 전자가 훨씬 어렵다는 것이 자명하기에, 리텐션 하락폭과 구독 전환율 증분폭 대결에서 어지간하면 전자가 이길 수밖에 없다. 고로 리텐션 하락이 없는 실험군 발굴이 중요했다.

01. 핵심지표 — 구독 전환율

60% ~ 80% 의 구독 전환율 증분 발생

역시나 구독 전환율은 구매화면이 더 이르게 노출된 실험군들의 압승이었다. OS 및 국가에 따라 그 상승폭은 조금씩 달랐으나 ‘더 이르게 노출시키는 실험군’이 가장 높은 전환율을 보였다는 점에서 모두 같았다.

상세 지표는 아래와 같다.

Android는 권한 앞 실험군을 제외하고 진행하였다

여기서 또 하나 재밌는 점은, ‘권한 앞’ 실험군과 대조군의 플로우상 차이점이 ‘권한 요청 다이얼로그를 구매화면 보다 먼저 보느냐 나중에 보느냐’의 차이뿐이라는 점이다.

대조군과 권한 앞 실험군과의 차이는 단 2장의 권한 요청 다이얼로그뿐이었다

그저 구매화면을 다이얼로그를 보여주기 전에 띄웠다는 이유로 전환율이 1.3배가 되다니…

생각보다 ‘이르게 노출’ 시키는 것만으로 크게 전환율이 늘어 놀랐다.

그럼, 이들의 D1 리텐션은 무탈했을까?

02. 부정 지표 — D1 리텐션

2.2% ~ 8% 의 리텐션 하락 발생

애석하게도 D1 리텐션이 하락하고 말았다. 큽…

여기서도 몇 가지 특이사항이 있었다.

이르게 노출시킬수록 구독 전환율이 높았던 것과 달리, 리텐션이 가장 낮은 실험군은 ‘권한 앞’ 실험군이었다. 즉 해당 실험군이 전환율은 2등이면서 리텐션은 꼴찌였고, 가장 이르게 노출시킨 실험군 (‘가치소구 직후’)이 전환율은 1등이면서 리텐션은 꼴찌가 아니었다.

대조군과 권한 앞 실험군은 ‘권한 요청 다이얼로그를 구매화면 보다 먼저 보느냐 나중에 보느냐’의 차이뿐인데 리텐션 차이가 발생했다.

대조군 실험군 간 D1 리텐션 차이는 발생했으나, D7으로 갈수록 서로 수렴하는 경향을 보인다.

이 마지막 특징에서 나의 번뇌가 시작되었다.

D7으로 갈수록 서로 리텐션 차이가 거의 없어진다면,
구독 전환율이 높은 실험군을 위너로 선정해도 괜찮지 않을까?

D1 리텐션의 가치가 크다는 것은 알겠는데,
-2.2% 리텐션 하락과 50%의 구독 전환율 증진을 비교하면
무엇이 더 제품 전체적으로 가치 있는 걸까?

03. 위너 선정

2.2% ~ 8% 의 리텐션 하락 vs 60% ~ 80% 의 구독 전환율 증분

번뇌를 가라앉히기 위해 신규 유저 리텐션 1% 증분과 구독 전환율 1% 증분의 가치를 서로 비교해 보았다.

매일 유입되는 신규 유저의 볼륨이 A명일 때, 리텐션 B%의 증분은 DAU C명 증대로 이어졌고, 광고 수익 LTV를 곱했을 때 D원의 추가 매출액이 산출되었다. 마찬가지로 동일한 신규 유저 볼륨 A명일 때, 구독 전환율 E%의 증분은 구독자 F명 증대로 이어졌고, 구독 LTV를 곱했을 때 G 원의 추가 매출이 산출되었다.

딜라이트룸 DA 그룹 리비오께서 계산해 주신 리텐션 증분의 DAU 증분 계수

여기에 마지막으로 리텐션을 올리는 것과, 구독 전환율을 올리는 것의 난이도 (실험의 타율) 차이를 감안하여 등식을 완성해 보았다. 그리고 더더 마지막으로 수치적으로 반영하기 힘든, 유저의 불쾌함 레벨도 살짝 가미..

그렇게 내린 결론은, 대조군 승리….!

04. 후속 가설

실험군별 유저들은 퍼널을 끝까지 갔을까?

퍽 아쉽지만 한 가지는 명확했다.

일단 노출 시점을 앞당기면 전환율은 오른다. 다른 한 가지가 명확하지 않았다. 리텐션은 왜 낮아진 걸까?

하여 실험군별 온보딩 플로우 퍼널을 추가로 살펴보았다.

그리고 결론은 아래와 같았다.

‘온보딩 과정에서 구매화면이 노출되면, 그 순간 바로 앱을 이탈한다.’

홈화면에 도달하기도 전에 앱을 나가버리는 것이다.

왜 그러는 걸까? 이 부분이 해결되어야 리텐션을 보전하면서 구독 전환율을 높일 수 있다.

직관적으로 내린 가설은,
‘온보딩 이른 시점에 구매화면이 노출되면, 알라미가 완전히 프리미엄 앱인 것으로 오해하고 앱을 바로 이탈한다.’이다. 그리하여 온보딩 구매화면에 대해서만 위와 같은 오해를 방지하기 위한 시안을 마련해보고 있다.

꼭 결제를 안 해도 된다는 메시지를 표현해 주는 구매화면 시안들

어쩌면 구매화면 이탈을 돕는 방향의 기획이 더해진 셈이기에 구독 전환율 상승폭은 소폭 떨어지겠지만, 리텐션 보전이 더 중요한 과업이기에 다소 아이러니한 접근을 해본 것이다.

과연 이 실험군들은 멋지게 살아남을 수 있을 것인지…!

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

10
0
Lucy Seo

Lucy Seo

이제 구독도 빌드업 해야 할 때

이전 글들에서 앱을 처음 설치한 직후에 노출시키는 온보딩 구매화면 (인트로 구매화면)의 강력한 힘의 비밀에 대해서 공유한 바 있듯, 이른 시점에 유저들에게 적극적으로 다가가는 것은 매출 그로스 측면에서 매우 중요하다. 하지만 동시에 이는 유저 사용성 측면에서는 좋지 않은 (불쾌한) 접근일 수 있고, 실제로 유저 리텐션 하락으로 이어지기 쉽다. 그렇기 때문에 꼼꼼한 A/B Test를 통해 조심스럽게 접근해야 하는, 생각보다 어려운 전략이다.

이와 달리 특정 프리미엄 기능을 사용하려 시도하는 때에 구매화면을 띄우는 것은 상대적으로 덜 불쾌한 접근이다. 유저 입장에서 어느 정도 맥락이 이해되기 때문이다. ‘아 이 기능을 사용하려면 구독을 해야 하구나.’ 이러한 접근은 유저 리텐션에 악영향을 끼치진 않지만, 반대로 구독 매출 측면에서 쏠쏠한 역할을 해내진 못한다. 해당 기능을 사용하기 위해서는 유저가 제법 여러 단계를 거쳐 그 맥락을 찾아 들어가야 하기 때문이다. 결과적으로 구매화면 노출 대비 전환율은 뛰어나지만, 구매화면 노출량 자체가 적은 것이 문제인 것이다.

구매화면 엔트리포인트 기획의 두 갈래

두 종류의 엔트리포인트, 각각의 강점을 다 살릴 수 없을까?
유저의 사용 경험도 살리고, 전환율도 높이는 지점을 찾고 싶었다.

유저 사용 경험이 좋은 ‘맥락 위 깊게’에서 ‘깊게’가 중요한 것은 아니다. 적절한 ‘맥락 위’에 놓이는 것이 핵심이다. 그저 유저가 특정 기능을 찾아 상대적으로 깊게 들어가기 때문에 ‘깊게’가 된 것이었다. 그래서 괜찮은 맥락을 한번 ‘얕게’ 빌드업 해보기로 했다.

맥락을 빌드업하다

이를 위해 모든 프리미엄 기능의 위치를 무작정 얕은 뎁스로 옮길 수는 없다. ‘얕은 맥락’에서도 중요한 건 ‘얕음’이 아니라 여전히 ‘맥락’이기 때문이다. 하여 먼저 적절한 맥락을 기획하기 위해, 유저들이 깊게 위치한 프리미엄 기능 화면에 들르게 된 이유, 그리고 사용하려 했던 이유가 무엇일지 조명해 보았다.

‘단순 호기심에’, ‘더 강력한 알람이 필요해서’, ‘신기해 보여서’ 등의 여러 가설 중에, ‘더 강력한 알람이 필요해서’가 가장 설득력 있어 보였다. 더 강력한 알람이 필요한 유저들이 여러 기능들을 둘러보다가 깊게 위치한 프리미엄 기능까지 도달한 것일 것이다. 그럼 더 강력한 알람이 필요한 유저를 찾아 얕은 곳으로 나서 봐야겠다는 생각이 들었다.

어떤 유저군을 타겟할지 어떻게 소구 할지는 미정이었지만, 하나 확실했던 것은 이것이 짧은 ‘넛지성’ 메시지가 아니라 ‘일련의 플로우’로 제공되어, 유저로 하여금 정말 ‘맥락’ 위에 놓여 있다고 느끼게끔 하는 것이 중요하다는 것이었다.

기존 알람을 더 강력하게 만들어주는 프리미엄 온보딩 플로우

이에 기존에 구독 유저들에게 제공되고 있는 ‘프리미엄 온보딩’ 플로우를 재활용해보기로 했다. 당시 프리미엄 온보딩의 골자도 ‘기존 알람을 프리미엄 기능을 통해 더 강하게 만들어 주는 것’이었기에, 진행 플로우의 목적이 이번 목적과 비슷했다. 그리하여 이번 기획은 구독 직후의 ‘알람 강화 프로세스’를 구독하기 전에 맛보기로 제공하여, 알람을 강화시키는 맥락 위에 놓이게 해 보는 실험이 되었다.

방법은 간단했다. 특정 유저군에게 ‘현재 알람 파워가 부족한데, 알람을 강화시켜 보세요’라는 다이얼로그를 띄우고, 이에 응한 유저들에 한하여 위 강화 프로세스를 진행시킨다. 그리고 마지막 CTA 인 ‘이대로 알람 강화하기’를 누르면 구매화면이 뜨는 것이다.

빌드업의 효과는?

1.4배 구독 전환율 증대, 리텐션 하락 없음!

약 41% 증대한 구독 전환율…!

빌드업 그 효과는 대단했다. 어찌 보면 전에 없던 새로운 구독 퍼널이 추가되는 셈이라 구독 증분이 발생하는 것은 당연한 기대였다. 다만 얼마나 크게 증가하느냐, 그리고 리텐션이 떨어지지 않느냐, 이 2가지가 중요했고, 그것을 결정짓는 변수가 바로 ‘얼마나 적절한 맥락인가’였던 것이다. 리텐션 하락 없이 전환율 증분이 크게 늘어난 것을 보니, 직접 알람 파워를 강화시켜 보는 일련의 과정이 유저가 놓일만한 탄탄한 맥락이 된 것으로 보인다. 심지어 전체 구독 전환 엔트리 포인트 중에서 2위에 해당되는 비중을 차지할 정도…!

이번 맥락에서의 전환 모수가 전체 신규 구독 전환에서 차지하는 비중 15~20%

빌드업의 고도화

본 실험은 특정 조건을 충족시킨 신규 유저에게 제공되는 실험이었다. 여기서 ‘더 강력한 알람이 필요하지 않니?’라는 질문은 어쩌면 신규 유저보다는 알람을 최소 1회 이상 사용한 기존 유저에게 더 적합한 맥락일지도 모른다는 생각이 들었다. 이래저래 임팩트를 산정해 보니 타겟 모수가 넉넉해 신규 유저 못지않은 쏠쏠한 임팩트까지 예상되었다. 바로 이어서 기존 유저를 대상으로 동일한 빌드업을 재활용해보려 한다. 신규 유저와 달리 기존 유저들은 어느 정도 고착된 사용 경험을 가지고 있기 때문에 새로운 기능을 활용한 알람 강화 맥락에 더 반응할 것이라 예상되며 (전환율 증대), 리텐션 하락의 염려도 훨씬 덜할 것이라 예상된다.

또한 빌드업 과정에서의 퍼널별 이탈률을 살펴보니 특정 구간에서 유난히 이탈이 많은 구간이 있었다. 만약 퍼널을 개선하여 빌드업의 최종 종착지인 구매화면까지 더 많은 유저가 도달하게 된다면, 이 빌드업의 임팩트는 더 커지지 않을까? 마찬가지로 임팩트를 계산해 보니 더 큰 증분의 전환율을 일궈낼 수 있으리라 기대가 되었다. 이 또한 별도의 후속 실험으로 진행해보려 한다.

두 종류의 엔트리포인트, 각각의 강점을 다 살릴 수 없을까?
유저의 사용 경험도 살리고, 전환율도 높이는 지점을 찾고 싶었다.

새로운 시도를 통해 위 질문에 대한 어렴풋한 답을 찾은 것 같다.

여기서 핵심은 유저의 문제(니즈)를 해결해 주는 맥락을 빌드업하여 적시에 먼저 다가가는 것이었다.

이때 그 맥락이 얼마나 억지스럽지 않게 매력적으로 구성되느냐가 중요하고, 노출되는 타겟 및 시점에 따라 충분히 더 매력적인 맥락이 될 수도 있기 때문에, 해당 변수에 대한 지속적인 최적화를 신경 써야 할 것이다.

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

14
2
Lucy Seo

Lucy Seo

테스트 코드 도입은 정말 비효율적일까?

실전 사례로 보는 테스트 코드 도입

테스트 코드가 중요한 이유에 대해서 모두들 많이 들어봤을것입니다.
제가 생각하는 테스트 코드가 중요한 이유는 크게 3가지인데요.

테스트 코드가 중요한 이유

  1. 리팩터링 보장
    - 리팩토링하면서 기존 기능에 사이드 이펙트가 없는지 확인할 수 있음

  2. 문서화의 역할
    - 특정 기능이 어떻게 동작해야하는지에 대한 예시를 제공, 새로운 개발자가 코드 베이스를 더 쉽게 이해할 수 있음

  3. 버그 감지
    -
    개발 초기 단계에서 버그를 발견하고 수정하는데 도움을 줄 수 있음
    - 모든 시나리오를 검증 할수는 없지만, 엣지 케이스에 대한 검증이 테스트 코드를 작성하면서 알 수 있음

테스트 코드 작성의 어려움

그렇지만 테스트 코드의 작성은 쉽지 않습니다. 왜 그럴까요?

저의 경우는 아래의 경우로 어려웠습니다.

  1. 테스트 코드를 작성하는데 시간이 너무 오래걸린다.

  2. 테스트 범위와 세부 사항을 결정하는게 어렵다.
    2–1. 어디까지 테스트 해야 할것인가?
    2–2. 무엇을 테스트 해야할것인가?

어렵다는 이유로 테스트 코드 작성은 미루어졌고, 그 과정에서 기획 변경 시 개발 구조를 크게 수정해야하는 문제가 있거나, 아니면 테스트를 하며 버그를 잡게 되는 경우가 빈번했습니다.

변화의 계기는 안드로이드팀 OKR 을 더 달성하고 싶은 마음으로 시작하게 되었습니다. 크래시를 예방하고, 크래시가 발생하더라도 재발 방지 하고싶은 마음으로 테스트 코드를 작성하게되었습니다.

안정적인 제품을 만들기 위해서 저희 팀은 BDD 스타일의 테스트 코드 작성에 정착하게 되었는데요. 이번 글에서는 kotest 를 사용하여 BDD 방식으로 테스트 케이스를 작성하는 경험을 공유하고 그 과정에서 제가 느꼈던 점들에 대하여 공유하고자 합니다.

BDD 란 무엇인가?

  • Full name 으로는 Behavior Driven Development 인데요. 한마디로 행동 주도 개발을 뜻합니다.

  • 유저의 행동 기반을 바탕으로 사용자 시나리오를 구성하여 테스트 케이스를 작성하는 방법입니다.

  • 여기서 말하는 사용자 시나리오는 각 기능의 요구사항이라고 생각하시면 됩니다.

테스트 코드 작성 과정

테스트 코드의 방식으로는 여러가지가 있지만, 이번 글에서는 Kotest 의 BehaviorSpec 을 이용한 방식을 예를 들어 보겠습니다.

BehaviorSpec 이란?

Given — When — Then 형태로 주어진 조건(Given) 에서 특정 행동(When) 을 했을때 기대하는 결과(Then) 를 나타냅니다.

  • Given : 환경 (ex : 유저가 비밀번호 변경 화면에서 )

  • When : 행위 (ex: 유효하지 않는 비밀번호를 입력하면)

  • Then : 기대결과 (ex : 비밀번호 변경 버튼이 비활성화 된다.)

테스트 코드가 기획서의 요구사항이나 사용자 스토리를 반영한다고 생각하시면 되고, 기획서의 요구사항의 경우의 수를 더 자세하게 표현할 수록 테스트 코드가 더 다양해 진다고 보시면 됩니다.

코드로 예시를 들자면 아래와 같은 형태입니다.

class ChangePasswordTest : BehaviorSpec() {
 Given("비밀번호를 변경하려는 유저가") {
       When("유효하지 않는 비밀번호를 입력하면") {
         Then("비밀번호 변경 버튼이 비활성화된다.") { 
        }
       }
     }
   }
}

실제 프로젝트 작성 예시

  • 출석 체크의 기능에 대해 예를 들어보겠습니다.

  • 알라미의 출석 체크 기능은 ‘출석 체크 시작 후 알람 해제를 연속으로 5일 해제 했을때 출석체크가 완료’ 됩니다.

  • 기존에는 출석 체크 완료의 기준이 연속 7일이였지만, 참여율을 높이기 위해 완료 기준이 5일로 변경되었습니다.

  • 출석 체크 완료 날짜가 변경되었을 때 작성했던 테스트 코드의 예시를 들어 보겠습니다.

class WakeUpCheckChallengeViewModelTest : BehaviorSpec() {
 Given("유저가 출석체크 진행중이면") {
      val staredTime = LocalDateTime(2023, 1, 1, 8, 0)
      val fakeWakeUpCheckChallengeRepository = FakeWakeUpCheckChallengeRepository(
        wakeUpCheckChallenge = ChallengeCheck(
          status = ChallengeStatus.PARTICIPATING,
          startedTime = staredTime.toEpochMilliseconds(),
          dismissTime = 0L,
          successCount = 2
        ),
      )
      When("출석 체크의 성공 날짜 기준은") {
        val expectedSuccessCount = fakeWakeUpCheckChallengeRepository.getSuccessCount()
        Then("7이다") {
          expectedSuccessCount shouldBe 7
        }
      }

      When("출석 체크 실패 후") {
        fakeWakeUpCheckChallengeRepository.failed()
        Then("출석 체크 성공 횟수는 5로 초기화 된다.") {
          val expectedSuccessCount = fakeWakeUpCheckChallengeRepository.getSuccessCount()
          expectedSuccessCount shouldBe 5
        }
      }

    }
  }
}

위 테스트 코드를 작성하면서 저는 테스트 코드의 장점에 대해서 실감 할 수 있었습니다.

테스트 코드의 장점

  • 알람을 실제로 울리지 않고도 기능에 대한 검증을 할 수 있다.

  • 엣지 케이스에 대한 테스트를 해볼 수 있다.
    ex) 기존에 출석체크를 5일 이상 진행한 유저가 있을때는 성공 날짜 기준을 무엇으로 잡을 것인가?

만약 테스트 코드를 작성하지 않았더라면, 기능에 대한 테스트를 매번 알람을 울리면서 테스트 하였거나 혹은 엣지 케이스에 대한 경우를 뒤늦게 확인했을것 같아요.

결론

기존에는 테스트 코드 작성이 더 오래 걸려서 비효율적이다라는 막연한 생각으로 테스트 코드를 멀리하게 되었는데요.

하지만 실제로 테스트 코드를 작성해보면서 테스트 코드가 중요한 이유에 대하 실감하게 되었습니다.

  • 리팩토링 지원 : 기존 기능을 리팩터링 할때 자신감이 생김

  • 문서화의 역할 : 출석체크 완료 기준이 7일에서 5일로 변경되었구나, 테스트 코드를 보며 알 수 있음

  • 버그 감지 : 테스트 코드를 작성하며 예외 케이스에 대한 고민을 빨리 체크 할 수 있음

  • 테스트 가능한 구조에 대한 고민 : 테스트 코드를 작성하면서 dependancy 가 덜한 코드에 구조에 대한 고민을 하게 됨

빠를 수록 돌아가라는 말이 있는데요, 테스트 코드 작성하면서 그런 경험을 할 수 있었고, 변화에 유연한 설계가 되어가고 있다고 느낄 수 있었습니다.

한번에 완벽한 테스트 코드를 작성하려고 테스트 코드를 작성하지 않는것 보다, 테스트 코드를 작성하면서 테스트 코드에 대한 고민과 더 좋은 테스트 코드를 작성하기 위해 노력하는것이 더 중요하다

한마디로 완벽한 첫 삽을 위해 시도 하지 않는 것 보다, 지속적인 노력이 더 중요하다는 사실입니다.

테스트 코드에 대한 도입에 대한 고민을 하고 계시다면, 어떤 점이 고민인지 정의 해보시고 실제로 작게나마 테스트 코드에 대한 작성을 해보시면서 그 고민이 정말인지 확인해보시는것을 추천드립니다.

https://team.alar.my/recruit/?utm_campaign=branding&utm_source=medium&utm_content=banner

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!


6
0
Lucy Seo

Lucy Seo

리텐션을 고려한 첫 구독 유도의 중요성

위와 같은 레슨에 이어, 아래와 같은 후속 실험이 현재 진행 중이다.
온보딩 구매화면을 아예 띄우지 않던 때보다는 훨씬 큰 그로스를 만들어 냈지만, 띄우고 있는 시점을 달리 하면 더 큰 전환율을 만들어낼 수도 있다는 것을 알게 되었기에, 우리 제품에 맞는 최적의 시점을 찾는 실험을 이어 진행하고 있다.

지난 글 : 첫 구독 유도의 중요성 — 온보딩 구매화면의 비밀의 말미에, 온보딩 구매화면의 노출 시점을 더 앞당겨보는 실험을 진행 중이라 이야기 한 바 있다.

온보딩 진행 간에 퍼널 이탈률이 높지 않다는 점을 감안하면, 더 이르게 노출시키는 것이 노출량 자체를 늘리는 데에는 크게 기여하지 못할 것이다. 오히려 지난 글에서 이야기한 바와 같이, 더 이르게 노출시킬수록 노출량 증대보다는 구독으로의 전환율이 높아질 것이라는 강한 컨피던스로 진행하는 실험이었다.

문제는 ‘어느 시점에 노출하는 것이 신규 유저 리텐션을 낮추지 않으면서 더 큰 구독 전환율을 발생시킬 것인가’였다. 무료 기능이 없는 완전한 프리미엄 서비스인 경우, 딱히 리텐션을 염려하지 않아도 괜찮겠지만 일정 부분 무료로 기능을 제공하면서 광고 매출을 크게 발생시키고 있는 우리 알라미의 경우 리텐션이 가장 중요한 지표 중 하나이다.

매일매일 새로 유입되는 신규 유저 볼륨이 굉장히 크다 보니, D1 리텐션 소폭 증분에 따른 누적 DAU 증분 크기도 상당하다. 이에 더해 ‘신규 유저 리텐션 올리는 것’과 ‘구독 전환율 올리는 것’의 난이도를 따져보면 전자가 훨씬 어렵다는 것이 자명하기에, 리텐션 하락폭과 구독 전환율 증분폭 대결에서 어지간하면 전자가 이길 수밖에 없다. 고로 리텐션 하락이 없는 실험군 발굴이 중요했다.

01. 핵심지표 — 구독 전환율

60% ~ 80% 의 구독 전환율 증분 발생

역시나 구독 전환율은 구매화면이 더 이르게 노출된 실험군들의 압승이었다. OS 및 국가에 따라 그 상승폭은 조금씩 달랐으나 ‘더 이르게 노출시키는 실험군’이 가장 높은 전환율을 보였다는 점에서 모두 같았다.

상세 지표는 아래와 같다.

Android는 권한 앞 실험군을 제외하고 진행하였다

여기서 또 하나 재밌는 점은, ‘권한 앞’ 실험군과 대조군의 플로우상 차이점이 ‘권한 요청 다이얼로그를 구매화면 보다 먼저 보느냐 나중에 보느냐’의 차이뿐이라는 점이다.

대조군과 권한 앞 실험군과의 차이는 단 2장의 권한 요청 다이얼로그뿐이었다

그저 구매화면을 다이얼로그를 보여주기 전에 띄웠다는 이유로 전환율이 1.3배가 되다니…

생각보다 ‘이르게 노출’ 시키는 것만으로 크게 전환율이 늘어 놀랐다.

그럼, 이들의 D1 리텐션은 무탈했을까?

02. 부정 지표 — D1 리텐션

2.2% ~ 8% 의 리텐션 하락 발생

애석하게도 D1 리텐션이 하락하고 말았다. 큽…

여기서도 몇 가지 특이사항이 있었다.

이르게 노출시킬수록 구독 전환율이 높았던 것과 달리, 리텐션이 가장 낮은 실험군은 ‘권한 앞’ 실험군이었다. 즉 해당 실험군이 전환율은 2등이면서 리텐션은 꼴찌였고, 가장 이르게 노출시킨 실험군 (‘가치소구 직후’)이 전환율은 1등이면서 리텐션은 꼴찌가 아니었다.

대조군과 권한 앞 실험군은 ‘권한 요청 다이얼로그를 구매화면 보다 먼저 보느냐 나중에 보느냐’의 차이뿐인데 리텐션 차이가 발생했다.

대조군 실험군 간 D1 리텐션 차이는 발생했으나, D7으로 갈수록 서로 수렴하는 경향을 보인다.

이 마지막 특징에서 나의 번뇌가 시작되었다.

D7으로 갈수록 서로 리텐션 차이가 거의 없어진다면,
구독 전환율이 높은 실험군을 위너로 선정해도 괜찮지 않을까?

D1 리텐션의 가치가 크다는 것은 알겠는데,
-2.2% 리텐션 하락과 50%의 구독 전환율 증진을 비교하면
무엇이 더 제품 전체적으로 가치 있는 걸까?

03. 위너 선정

2.2% ~ 8% 의 리텐션 하락 vs 60% ~ 80% 의 구독 전환율 증분

번뇌를 가라앉히기 위해 신규 유저 리텐션 1% 증분과 구독 전환율 1% 증분의 가치를 서로 비교해 보았다.

매일 유입되는 신규 유저의 볼륨이 A명일 때, 리텐션 B%의 증분은 DAU C명 증대로 이어졌고, 광고 수익 LTV를 곱했을 때 D원의 추가 매출액이 산출되었다. 마찬가지로 동일한 신규 유저 볼륨 A명일 때, 구독 전환율 E%의 증분은 구독자 F명 증대로 이어졌고, 구독 LTV를 곱했을 때 G 원의 추가 매출이 산출되었다.

딜라이트룸 DA 그룹 리비오께서 계산해 주신 리텐션 증분의 DAU 증분 계수

여기에 마지막으로 리텐션을 올리는 것과, 구독 전환율을 올리는 것의 난이도 (실험의 타율) 차이를 감안하여 등식을 완성해 보았다. 그리고 더더 마지막으로 수치적으로 반영하기 힘든, 유저의 불쾌함 레벨도 살짝 가미..

그렇게 내린 결론은, 대조군 승리….!

04. 후속 가설

실험군별 유저들은 퍼널을 끝까지 갔을까?

퍽 아쉽지만 한 가지는 명확했다.

일단 노출 시점을 앞당기면 전환율은 오른다. 다른 한 가지가 명확하지 않았다. 리텐션은 왜 낮아진 걸까?

하여 실험군별 온보딩 플로우 퍼널을 추가로 살펴보았다.

그리고 결론은 아래와 같았다.

‘온보딩 과정에서 구매화면이 노출되면, 그 순간 바로 앱을 이탈한다.’

홈화면에 도달하기도 전에 앱을 나가버리는 것이다.

왜 그러는 걸까? 이 부분이 해결되어야 리텐션을 보전하면서 구독 전환율을 높일 수 있다.

직관적으로 내린 가설은,
‘온보딩 이른 시점에 구매화면이 노출되면, 알라미가 완전히 프리미엄 앱인 것으로 오해하고 앱을 바로 이탈한다.’이다. 그리하여 온보딩 구매화면에 대해서만 위와 같은 오해를 방지하기 위한 시안을 마련해보고 있다.

꼭 결제를 안 해도 된다는 메시지를 표현해 주는 구매화면 시안들

어쩌면 구매화면 이탈을 돕는 방향의 기획이 더해진 셈이기에 구독 전환율 상승폭은 소폭 떨어지겠지만, 리텐션 보전이 더 중요한 과업이기에 다소 아이러니한 접근을 해본 것이다.

과연 이 실험군들은 멋지게 살아남을 수 있을 것인지…!

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

#Subscription

#Growth

#Product

#Monetization


6
0
Lucy Seo

Lucy Seo

첫 구독 유도의 중요성

온보딩 구매화면의 비밀

Paywall (구매 화면)을 띄우는 시점과 관련해 여러 담론이 있지만, 그중 하나의 정설로서 자리를 잡아가고 있는 전략이 있다. 설치 직후 노출이 빠를수록, 빈번할수록 구독 전환에 좋다는 것이 바로 그것이다. 물론 역으로 유저들의 앱 이탈도 클 것이기 때문에 부정 지표로서 유저 리텐션을 살피면서 최적화를 해야 할 것인데, 일단 구독 전환을 높이는 데에는 탁월한 효과가 있는 전략임에는 틀림없다.

알라미의 경우 첫 설치 이후 신규 유저 온보딩이 끝나면 첫 구매화면이 노출된다. 이를 우리는 온보딩 구매화면이라고 부른다. (타 제품에서는 인트로 페이월, 첫 실행 구매화면 등 다양하게들 부르고 있는 것으로 알고 있다.)

알라미의 온보딩 이후 구매화면이 노출되는 플로우

이 중요한 온보딩 구매화면이 알라미 Android의 경우 오랜 기간 없었는데, 실험 진행 시 구독 전환율은 크게 올랐지만 리텐션이 하락하는 경향을 보였기에 온보딩 구매화면을 추가하지 않았던 것이다. 이후 온보딩 구성 자체에 큰 변화가 생기면서 구매화면을 띄우는 실험을 재진행해보았고, 다행히 리텐션 하락 없이 구독 전환율이 올라 현재의 Android는 온보딩 구매화면을 지니고 있다.

1.65배의 구독 전환율을 보였지만, 리텐션이 낮다고 판단되어 패배했던 첫 번째 실험

1.99배의 구독 전환율을 보이고, 리텐션 하락도 없었던 두 번째 실험

실험군으로 베이스라인 이후 눈에 띄게 증대된 전체 구독 전환율

이처럼 리텐션 하락 여부를 살피며 조심스레 온보딩 구매화면을 활용하면 크게 구독 전환율을 높일 수 있는 것이다.

온보딩 구매화면의 힘의 원천은 무엇일까

이 강력한 온보딩 구매화면의 힘의 원리는 어떻게 되는걸까?

구매화면이 노출되는 유저 모수가 더 많아지기 때문에, 즉 구매화면 방문 수가 많아지기 때문에 전반적인 구독 전환율이 높아질 것이라는 것은 비교적 직관적인 생각이다.

실제로 데이터를 보면, 방문율 증대는 확실히 유의미한 영향을 주는 것을 쉽게 알 수 있다.

하지만 구매화면의 노출 시점을 더 빠르게 당기는 것의 진정한 힘은, 방문 대비 전환율 증대에서 나타났다.

지난 분기 온보딩 구매화면 노출 시점이 특정 이벤트 발생 이후로 아주 조금 늦춰진 적이 있었는데, 이를 다시 원래 시점으로 당기고 나니 온보딩 구매화면 방문 대비 전환율이 크게 증대된 것이 확인되었다.

구매화면 노출 시점을 당겼을 때, 온보딩 구매화면 방문율은 15% 늘어나는 데에 그쳤지만 방문 대비 전환율은 80% 가까이 증대했다. 온보딩 구매화면은 방문 시점이 당겨지는 만큼 노출 모수가 늘어나는 점에서도 유의미하지만, 그보다는 구독 의지가 더 높을 설치 직후 시점에 노출되어 노출 대비 전환율을 높이는 데에서 더 큰 힘을 발휘한다는 것을 알 수 있었던 사례였다. 단순히 노출량을 늘리는 것보다도, 의지치가 높은 시점에 띄우는 것이 더 중요하다는 것을 시사한 셈이다.

온보딩 구매화면 힘의 원천

온보딩 구매화면 노출 시점 최적화

위와 같은 레슨에 이어, 아래와 같은 후속 실험이 현재 진행 중이다.

온보딩 구매화면을 아예 띄우지 않던 때보다는 훨씬 큰 그로스를 만들어 냈지만, 띄우고 있는 시점을 달리 하면 더 큰 전환율을 만들어낼 수도 있다는 것을 알게 되었기에, 우리 제품에 맞는 최적의 시점을 찾는 실험을 이어 진행하고 있다.

어느 시점이 리텐션을 낮추지 않으면서, 더 큰 구독 전환율을 발생시킬지 실험 결과가 기다려진다.

신규 유저의 구매화면 방문율 증분보다는 방문대비 전환율 증분이 실험의 승패를 가르는 열쇠가 될 것이다.


⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

12
0
Lucy Seo

Lucy Seo

비즈니스 목표에 따라 달라지는 디자인

알라미의 핵심화면은 어떻게 변해왔을까?

알라미의 핵심, 알람 에디터

알라미는 확실한 기상에만 집중하며 오랫동안 달려 왔습니다. 사용자가 알라미내에서 확실한 기상을 이루기 위한 가장 첫번째 단추는 알람 에디터였는데요. 사용자가 에디터에서 어떤 설정을 하느냐에 따라 아침이 달라질 수 있었기 때문이죠.
카카오톡의 채팅화면, 토스의 송금화면처럼 알람기능의 핵심인 알람 에디터 화면이 팀내 가장 중요한 화면으로 다뤄졌었습니다.

목표에 따라 달라져 온 알람 에디터

모든 제품팀들이 그러하듯이 주요 화면내 목적을 이루기 위해서 다양한 실험과 시도들을 하실텐데요. 알라미팀도 동일했습니다.
최종적인 목적인 확실한 기상을 위한 알람 설정을 위해 에디터내 디테일한 목표는 다양하게 변해왔습니다. 변하는 상황에 따라 에디터 화면은 알게 모르게 지속적으로 변해 오고 있었는데요.

🎯 프리미엄 기능 릴리즈하기
알라미에 첫 구독 기능이 생성되었을 때는 다른 기능보다 더 특별한 기능임을 알려야 했고 사용자 눈에 더 띄게 만드는 것에 집중하던 때도 있었습니다.

타겟: 어떤 방법이라도 사용하고 일어나는 것에 집중하는 해비슬리퍼
디자인 목표 : 프리미엄 기능 눈에 띄게 하기
해결방법 : 프리미엄 기능의 강조를 위한 아이콘과 컬러를 사용한다.

🎯 프리미엄 기능 많이 사용하게 하기
눈에 띄는 디자인을 시도하기도 하고 쉬운 사용성을 제공하기 위한 다양한 ui시도에 집중하기도 했었습니다.

타겟: 알람 내 다양한 기능 탐색을 좋아하는 호기심 사용자들
디자인 목표 : 프리미엄 기능 접근성 올려 설정 쉽게 하게 하기
해결방법 : 댑스없이 쉬운 컨트롤 가능하게 스위치ui로 개선한다

🎯 매일 지속되는 알람 늘리기
확실한 기상을 위한 알람설정을 이루기 위해 한때는 지속성에 대한 우선순위가 강조되기 했었습니다. 주중과 주말 사용에서의 일정한 기상패턴이 성공적인 아침에 도움이 된다고 생각했기 때문이죠. 기존 알람시간 설정을 도와주는 숏컷의 중요도는 낮아지며 반복요일 설정이 우선순위가 높아졌던 시기도 있었습니다.

타겟 : 매일 알람설정하는 것을 귀찮아하는 (or 까먹는) 사용자들
디자인 목표 : 반복 기능 UI 설정이 쉽게 설정하게 하기
해결방법 : 2댑스에 있던 반복요일 설정의 접근성을 올리는 UI로 개선한다

🎯 멀티플 미션 릴리즈 하기
알라미의 알람설정의 가장 핵심인 미션은 오래도록 사랑받아 왔었습니다. 알람설정의 50%의 사용자는 미션을 즐겨 사용했었고 그 중 많은 사용자들이 하나의 알람에서 여러가지 미션을 사용하기 지속적으로 바랬고 알라미팀 또한 여러가지 미션 사용이 확실한 기상에 큰 도움이 된다고 생각했습니다.

타겟: 하나의 미션으로도 부족한 해비슬리퍼들
디자인 목표 : 멀티플 미션 직관적으로 이해하게 하기
해결방법 : 여러 미션을 설정할 수 있다는것을 미션 엔트리를 통해 알려주기

현재의 알람 에디터의 목표는

위에 지난 시간동안 제품 변화에 따라, 전달하고자하는 목표에 따라 화면은 달라지는데요. 지금의 알람 에디터는 어떨까요? 지금의 알라미는 어떤 방식으로든 어제보다 나은 기상을 성공적인 아침으로 정의하고 있습니다. 그만큼 커버하는 사용자의 유형이 다양해졌음을 보여주는 대목인데요.

현재 알라미 팀이 알람 에디터를 사용하는 다양한 사용자에 대해 정의하는 바는 아래와 같습니다.

23년도의 에디터 개편도 지금까지와 동일하게 비즈니스목표를 잡고 디자인은 어떻게 변경해야할지 문제를 찾아 디자인목표를 세워 디자인을 진행합니다.

🎯 2023년의 에디터 개선 목표
서로 다른 사용자 유형들의 니즈에 맞는 기능을 쉽게 찾도록 한다

문제 1 : 다양한 사운드 관련 기능들이 파편화 되어 있다.
문제 2 : 더 디테일하게 커스텀할 수 있는 알람기능들이 파편화되어 있다.

디자인 목표 : 비슷한 기능들을 묶어 정보 구조를 정리한다.

목표에 따라 디자인 진행하기

사운드 관련 기능들 정보 구조 정리

  1. 파편화 되어 있는 기능들 묶어주기
    이전 알람의 기본적인 기능들끼리 묶여져 있던 정보 구조를 사운드는 사운드끼리 모아 정보 구조를 개선했습니다.

  2. 기능명 개선하기
    프리미엄 기능 중알람 파워업기능은 사운드 기능으로만 구성되어 있었기에 UX Writing을 변경하여 사운드 파워업 으로 개선했습니다.

파편화된 비슷한 기능들 정보 구조 정리

  1. 글로벌 설정에 있던 알람 사운드 설정 이동
    디테일하게 사운드소리를 커스텀할 수 있도록 알람파워업과 통합하여 사운드를 강화하는 기능으로서 정보를 묶어 주었습니다.

  2. 글로벌 설정에 있던 스누즈 설정 이동
    스누즈 기능을 더 디테일하게 커스텀할 수 있도록 글로벌 설정에 있던 횟수제한 설정을 시간 간격 설정과 묶어 주었습니다.

그래서 이번 개선의 결과는

알람 에디터 내 1댑스 변화

기존과 동일했던 사운드의 진입율은 기존과 유사했습니다. 하지만 알람 파워업으로 명칭되어 있던 기능이 사운드 파워업으로 변경하며 사운드 정보들과 묶이면서 기존에 비해 3.5배 진입이 늘어났습니다.

알람에디터내 2댑스로 이동한 글로벌 기능들

글로벌 설정에 파편화 되어 있던 사운드의 커스텀 기능과 알람미루기의 커스텀 기능들도 3배이상씩의 사용 증가를 이루었습니다.

목표에 따라 끝없이 변화하는 제품, 끝없는 디자인 고민

이번 에디터 개편을 정리하면서 지난 알람에디터 변화들도 간략하게 정리해 봤는데요. 사실 소개드린 작업 이외에 에디터 화면 내에서만 수많은 개선과 실험들이 진행되어 왔습니다.

종종 알람앱을 만드는데 디자이너 역할이 많이 필요한지 궁금해하는 외부 질문들이 있었는데요. 우리가 제품을 만들고 성장함에 따라 우리에게는 늘 목표가 생기기 마련이죠. 그 목표에 따라 여러 가지 수많은 시도들에는 늘 디자인적 고민들도 함께할 수밖에 없습니다. 목표가 있는 한 디자인적 고민은 계속될 수 밖에 없는거 같습니다.

지금까지 알라미는 확실한 기상이라는 목표 아래 가장 핵심적인 화면인 알람에디터는 목표에 따라 사용자 정의에 따라 수많은 변화들을 거쳐왔습니다.


그리고 앞으로는 성공적인 아침을 위해 수면에서 기상직후까지의 여정을 그리며 성장을 위해 지속적으로 다양한 목표를 세우고 개선하고 실험해 갈 거 같습니다.

얼마전부터 알라미 내에는 알람에디터 이외에도 수면과 기상 후 여정내 핵심화면들 내에서 다양한 개선과 실험들이 진행되고 있습니다.


저희와 함께 더욱 다양한 도전을 원하는 디자이너분은 언제든 컨택해주세요.

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

10
0
Lucy Seo

Lucy Seo

전환 10배 높여주는 치트키

유입량을 극적으로 높여주는 홈 엔트리

대부분의 신규 기능들은 초반에 어느 정도의 진입률을 보일까? 10%? 5%? 1%? 제품마다 다르겠지만, 제품 코어 기능이 아니고서야 0.1%~0.5% 내에 있을 기능들이 대부분일 것이다. 이 경우 진입 대비 전환율 보다 진입률을 높이는 것이 전체 퍼널 관점에서 임팩트가 훨씬 크기 때문에 진입 엔트리를 넓히는 개선이 필요하다.

특정 기능의 진입률을 높이기 위해 해당 기능의 위치를 옮기는 것도 방법이지만 이는 인지 부조화 등의 부작용이 클 수 있어 조심스럽게 접근해야 한다. (하지만 인지 부조화 없이 10배 개선했던 사례 — 기능의 위치 조정으로 무료체험 10배 늘리기) 위치를 옮기는 방법 외에 진입률을 올릴 수 있는 전략은 엔트리 전략이다. 해당 기능으로 바로 랜딩 되는 지름길을 만드는 것이다. 엔트리 전략도 2개로 나눠볼 수 있다
(이전 글 —
퍼널 최적화 전략)

홈 엔트리

뭉툭하지만 노출량을 극대화하는 엔트리

제품 홈에서 해당 기능을 대대적으로 홍보를 하는 것이다. 아래와 같은 화면들을 여러 앱들에서 본 적이 있을 것이다. 광고처럼 느껴지지 않고 오히려 그냥 원래 앱 내에 있는 여러 컴포넌트처럼 보이면서, 눌러보면 특정 기능으로 랜딩이 되는 — 그리고 묘하게 내가 필요한 것 위주로 그 내용이 매번 바뀌는 — 그런 지면.

익숙한 제품들의 홈화면 — 그 상단 영역

사실 나도 처음 이런 지면들을 봤을 때는, 솔루션 관점에서 ‘새로 뭔가 출시되면 당연히 유저들에게 알릴 필요가 있으니까 이런 지면들을 활용하는 거겠지’ 정도로 생각했다. 하지만 몇 차례 경험 속에서 이 지면을 활용하는 것이 전환을 크게 증폭할 수 있는 필승 전략이라는 사실을 깨닫게 되었다.

가볍게 만들어서 출시했던 알라미 홈 화면 상단 엔트리

친구초대 기능 출시 후, 진입률이 너무 낮은 것을 확인하고는 제품 메인 화면 상단 영역에 엔트리를 하나 만들기로 했다. 기획적으로 복잡하게 생각하지 않았고, 한 번도 방문하지 않은 유저들에게만 노출하는 방향으로 빠르게 작업해서 배포를 했다. 결과는 놀라웠다.

출시 직후 모든 유저들에게 노출됨에 따라 친구초대로 유입되는 유저 수 (= 친구초대의 최종 전환 값)가 5배까지 치솟았다. 일시적으로 기존 유저들의 트래픽이 크게 임팩트에 기여를 했던 것이고, 그 효과가 거둬진 시점 이후 그로스 관점에서는 3배 성장한 것으로 분석이 되었다.

이 과정에서 반대의 경험도 맛보게 되었는데, 그 경험으로 홈 엔트리의 효과를 더블체크 할 수 있었다.

친구 초대 엔트리를 추가하면서 기상 챌린지 엔트리가 사라졌는데, 기상 챌린지 퍼널 전환이 크게 떨어진 것이다. (기상 챌린지는 출시할 때부터 홈 엔트리와 함께 출시되었다.) 이를 통해 역산을 해보면 이 또한 약 3배 정도의 전환 기여가 있었던 것으로 추정된다.

3배는 시작일 뿐

‘뭐야.. 홈화면 상단 영역까지 활용했는데, 겨우 3배?’라고 생각할 수도 있다. 하지만 3배는 그저 시작일 뿐이다. 앞서 말했듯 우리는 홈 엔트리에 전략적으로 접근했던 것이 아니다. 신규 기능 출시를 알리고 싶은 마음에 추가했을 뿐이다. 하여 그로스 관점에서는 몇 가지 약하게 구현된 점들이 있다.

  • [타겟 유저] 불특정 다수에게 일괄 노출 : 특정 기능을 필요로 함직한 유저 새그먼트를 타겟해서 보여주지 않았다. 타겟팅이 정교화되면 홈 엔트리의 임팩트는 더욱 커질 것이다. 유저 만족도도 더 높아질 것이고.

  • [UI/UX] 광고처럼 보일 수 있음 : 광고처럼 보이지 않기 위해 크게 노력하지 않았다. 어차피 한번 방문하면 사라질 지면이기 때문에 오히려 더 눈에 띄게끔 시안을 잡았었다. 더 자연스러운 UI/UX를 제공하면 유저 인게이지먼트가 좋아져 임팩트가 더 커질 것이다.

  • [노출 이후 동작] 단순한 동작 : 여러 기능들의 엔트리가 순차적으로 롤링되거나, 유저가 스와이프를 할 수 있거나 등의 인터렉션이 없었다. 그냥 터치하면 사라지는 지면이었다. 더 잘 인게이지 하게끔 노출 이후의 동작을 재기획해 볼 수 있다.

위 이유로 우리의 상단 홈 엔트리를 터치해 보는 유저 비율은 전체 유저의 채 3%가 안 되었다. 그럼에도 불구하고 전환 수를 3배 가까이 만들어낸 것. 만약 홈 엔트리 인게이지 비율을 10%까지 늘릴 수 있다면? 3배가 10배가 될 수도 있는 길인 것이다.

그리하여 본격적으로 홈 엔트리 영역을 퍼널 그로스 관점에서 적극 활용해 보기로 했다.

홈화면 엔트리 전략을 더 집중적으로 그로스적으로 파고들 경험이 되는 만큼, 보다 디테일한 레슨들이 마구마구 도출되기를 기대하고 있다. 특정 기능 단위의 10배 개선뿐 아니라, 예측 못한 여러 시너지까지 (신규 유저 앱 리텐션 xx% 증대 등) 있기를 기대해 본다.

관련해서 경험 및 지식이 있으신 분 나눔 부탁드려요. :D

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다 🙌

딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

8
0
Lucy Seo

Lucy Seo

iOS Core Data HeavyWeight 마이그레이션 실패기

그림을 그리다가 마음에 들지 않거나 예상대로 흘러가지 않을 때 어떻게 하는지 보여드릴게요.
그냥 이렇게 덧그리기만 하면 돼요. 이렇게 하면 완전히 아름다운 나무가 다시 탄생하죠. 우리는 실수를 하지 않아요. 단지 행복한 사고가 일어났을 뿐이죠!
-밥 로스

안녕하세요 리디입니다. 🧑🏻‍💻

당신을 위한 나의 실패

딜라이트룸에는 ‘당신을 위한 나의 실패’ 라는 문화가 있습니다. 실패를 통해 레슨을 얻고 이를 공유함으로 다른 사람들의 비용을 아껴주자라는 의미입니다. 오늘은 저의 실패를 공유함으로 여러분들이 소비할 시간을 아껴드리고자 합니다.

최근 알라미 DB구조에 대한 대규모 업데이트를 진행 중에 있습니다.
그리고 해당 작업의 저의 첫 플랜은 다음과 같았습니다.

  1. Realm과 CoreData 로 나눠진 DB를 CoreData로 합친다.

  2. CoreData 데이터를 V3로 마이그레이션을 진행한다.

이 과정 중 특히 2번에서 많은 시도가 있었고, 덕분에 좋은 레슨도 얻을 수 있었습니다. 오늘은 이 과정에서의 레슨을 공유하고자 합니다.

먼저 제가 Core Data를 선택한 이유는 다음과 같았습니다.

  1. FirstParty Framework에 대한 신뢰.

  2. 이후 SwiftData로 넘어가기에 용이함.

이번에 모두 CoreData로 넘어가고 나면 이후에는 문제없이 SwiftData까지 잘 넘어갈 수 있을 것이라는 기대가 컸습니다.

Core Data Migration

먼저 CoreData의 Migration 방식에는 크게 자동(Automatically) 이라고 이야기하는 LightWeight 방식 그리고 수동(Manual) 이라고 이야기하는 HeavyWeight 방식이 있다는 것은 다들 알고 계실 것입니다.

일반적으로 우리는 LightWeight 방식을 사용하게 됩니다. Row를 추가하거나, entity 혹은 property의 이름을 바꾸거나 하는 가벼운 구조의 변경에서는 말이죠.

developer.apple.com에 따르면 다음과 같은 경우에 대하여 LightWeight 방식을 이야기하고 있습니다.

- 속성 추가
-속성 제거
-선택사항이 아닌 속성이 선택사항이 됨
-선택사항 속성이 선택사항이 아니며 기본값을 정의함
-엔터티 또는 속성 이름 바꾸기

예를 들면 다음과 같습니다.

공통으로 사용 할 것이라고 생각하여 ALColorEntity로 정의한 이름을 차량에만 사용하게 되어 ALCarColorEntity로 변경 한다거나, Entity내부의 RGB값을 rgb로 property명을 변경하는 경우에는 LightWeight로 충분합니다.(LightWeight 에 대한 자료는 구글링을 통해 금방 확인이 가능하니, 더이상의 설명은 생략하도록 하겠습니다.)

하지만 우리의 DB는 이런 light migration만을 필요로 하지 않습니다. 새로운 Column에 기본 값을 추가해준다거나, 마이그레이션 중 연산을 통해 다른 값으로 변경해줘야하는 경우도 있습니다.

이 경우 우리는 HeavyWeight방식을 통한 마이그레이션이 필요합니다. HeavyWeight 마이그레이션 방식을 찾아보면 몇가지 방법들이 나오지만, 개인적으로는 이 강의가 제일 좋았습니다..

친절하지 않은 애플놈들 대신 친절한 raywenderlich 강의는 마음을 편안하게 만들어주죠.

요약해보면 다음과 같습니다.

1. 새로운 모델을 추가해주고 Model Version을 변경해준다.
2. Source와 Destination을 설정한 MappingModel을 만들어준다.
3.세뷰 규칙을 정한 객체를 만들고 NSEntityMigrationPolicy 를 채택합니다.
4.그리고 이 객체를 CustomPolicy에 등록시켜준다.

그러면 App의 Launch타임에 HeavyWeight migration이 동작하게 되는 것이죠.

참 쉽죠?

오늘의 주제는 HeavyWeight 하는 방법이 아니기 때문에 강의로 설명을 대체합니다

하지만 우리는 이러한 마이그레이션을 1회만 하지는 않을 것입니다.
V1 → V2 → V3 시간이 지남에 따라 버젼이 늘어나겠죠. 그리고 여기에서부터 모든 문제가 시작하게 되죠…

Realm Migration

알라미는 그동안 대부분의 DB를 Realm을 통해 관리하고 있었습니다. 최근 추가된 수면 관련 데이터들만 CoreData를 통해 관리하고 있었죠.

Realm에서의 Migration 방식을 살펴보자면 다음과 같습니다.

1. Realm.Configuration 에 새로운 schemaVersion을 등록해준다.
2. migrationBlock 내부에 세부 마이그레이션 로직을 넣어둔다.
3. Realm을 초기화하기 전 Configuration에 넣어준다.
4. Realm은 migrationBlock 을 실행하며 마이그레이션을 진행한다.

migrationBlock에서 우리는 마이그레이션 수행에 사용되는 Migration 객체와 oldSchemaVersion을 통해 쉽게 마이그레이션을 동작시킬 수 있습니다.

Realm에서는 migration schema가 v1 → v2 → v3로 업데이트가 되도 문제가 되지 않습니다. 순차적으로 마이그레이션을 타도록 코드를 짠다면 우리는 직전 모델에 대해서만 대응을 하면 되니까요!

AlarmEntity migration시 사용되는 코드.. schemaVersion이 상당하다..!

Core Data Migrating multiple versions

그렇다면 CoreData는 이런 여러가지 버젼에 대한 Migration에 대하여 어떻게 동작하고 있을까요?

CoreData는 기본적으로 저장소에 사용된 모델과 번들의 현재 모델간의 불일치를 감지합니다. 그리고 불일치할 경우 자동으로 마이그레이션 시도합니다. 때문에 CoreData는 version에 대한 순차적 마이그레이션을 지원하지 않습니다.

즉, V1 모델을 갖고 있는 유저와 V2의 모델을 갖고 있는 유저가 최신인 V3로 업데이트 할 경우에는 다음과 같이 동작하게 됩니다.

하아…

사실 여기까지의 동작을 파악하는 데에도 꽤 오랜 시간이 걸렸습니다.
당연히 버젼을 순차적으로 기억할 것이라 생각했기 때문이죠.

다시 돌아와서 이로인해 발생하는 문제점은 명확합니다. Version이 올라갈 수록 관리비용이 급격하게 증가한다는 점이죠. Version 4가 나올 경우, [V1 → V4, V2 → V4, V3 → V4] 3개의 mapper가 필요합니다. 즉, version N의 경우 N-1 개의 Mapping Model이 필요하게 되는 것이죠.

시간이 흐르고 우리가 V10까지 만들었다고 가정을 해봅시다.

우리는 기억도 안나는 과거의 V1에서부터 V10으로의 마이그레이션을 고민해야합니다. 생각만해도 끔찍하죠..

딱 이 심정…

마이그레이션을 최소화 시키라는 애플의 큰 그림일까요..
하지만 저는 그런 그림 싫은데요…

물론 갓플에서도 이러한 문제점을 알았는지 WWDC 2023에서 Staged 방식을 통해 CoreData Migration의 문제점을 해결할 수 있도록 해주었습니다.

https://developer.apple.com/videos/play/wwdc2023/10186

너무나 매력적이죠!

단,
iOS 17에서부터 된다는 것만 제외하면요…. ㅂㄷㅂㄷ..

iOS17 이면 SwiftData를 썼겠지.. 이 사과놈아..

Core Data progressive migration

하지만 좌절하긴 이르죠. 우리의 선배님들이 이런 문제에서 고통만 받고 계실 리 없죠.

이러한 마이그레이션의 문제점을 해결하기 위한 키워드로 Core Data progressive migration이라는 키워드로 검색해본 결과 몇가지 유용한 아티클들을 찾게 됩니다.

PROGRESSIVE CORE DATA MIGRATIONS
by.williamboles

Core Data Progressive Migrations
by.kean

그리고 이를 응용한 Framework도 찾게 되었죠.

GitHub — prisma-ai/Sworm: CoreData based Swift ORM

CoreData based Swift ORM. Contribute to prisma-ai/Sworm development by creating an account on GitHub.

github.com

(🫢 오이오이.. 믿고있었다구..)

내용을 살펴보면 다들 비슷한 방식으로 순차적 마이그레이션을 진행하고 있습니다.

이해가 잘 안되실 경우, 블로그 가서 코드 한번 보면 이해가 쏙쏙 됩니다.

자세한 설명은 블로그를 찬찬히 읽어보시고, 내용을 더 요약해보자면 다음과 같습니다.

1. 버젼의 순서를 수동으로 등록 한다.
2. NSManagedObjectModel API를 통해 SourceModel의 현재 버젼을 파악한다.
3. 순차적으로 MigrationStep을 따라간다.
4. 마이그레이션 끝 🥳

오! 쉽습니다. 실제로 동작시켜보니 잘 동작하는 것도 확인할 수 있습니다.

해치웠나..!?

이렇게 행복하게 마이그레이션 글쓰기를 종료..
하고 싶었지만.. 코어데이터는 그렇게 호락호락하지 않습니다..

Product에 적용하는 것은 또 다른 이야기이죠..

이제 문제는 알 수 없는 곳에서 발생했습니다.

특정 commit 이전에서 현재 버젼으로 마이그레이션을 시도할 경우 SourceModel의 현재 버젼을 파악할 수 없는 상황이 발생했기 때문입니다.

* 문제가 되었던 API

metadata 오픈 해봐도 값들이 전부 잘 들어있어 원인 파악이 되지 않았고,
version을 강제하기도 하니 맵핑과정에서 크래시가 났습니다…
configuration에 대한 내부 로직을 알 수 없으니 안정감이 떨어졌습니다.

후..!
정말이지.. 왜 Realm을 사용하는지 갑자기 이해가 되기 시작했습니다..

선녀 같은 Realm의 마이그레이션..

급작스러운 글의 마무리이긴 하지만,
여기까지의 시도를 마지막으로 코어데이터 마이그레이션에 대한 저의 도전은 막을 내렸습니다.

이유들은 위의 원인만 있었던 것은 아니었습니다.

  1. 여전히 안정성에 대한 불안함
    - 코어데이터에 대한 이해도가 여전히 낮았고, 위의 이슈를 해결한다고 해도 안정성에 대한 불안감이 사라지지 않을 것 같았습니다.

  2. 소비되는 비용이 너무 커지고 있음
    - 우리의 목표는 유저에게 원하는 가치를 안전하고, 빠르게 전달하는 것이었습니다. 하지만 이대로 작업하다가는 안전함과 빠름 어떤 것도 달성하기 힘들다고 판단했기 때문입니다.

  3. Model과 MappingModel 의 수정을 코드로 할 수 없어서 변경에 대한 확인이 어려움.
    - Storyboard를 쓰지 않음과 마찬가지로 변화를 코드로 확인할 수 없고, 이 부분이 쌓였을 때 안정성을 해칠 수 있다고 판단했기 때문입니다.

CoreData에 대하여 어느 정도 다이브 해보고 나니 오히려 필요한 부분이 명확하게 그려졌습니다.

저는 결국 CoreData의 모델들을 모두 Realm 으로 이관시키기로 결정하였습니다. 다행히 우리는 interface를 통해 Repository에 접근을 하고 있었기 때문에 변경 비용이 크게 들어가진 않았습니다.

그렇게 우리 앱은 조금 더 안정적인 상태로 QA를 진행 중에 있습니다.

마무리

정리해보면 이번에 제가 얻은 레슨은 크게 2가지 입니다.

첫번째로, CoreData의 마이그레이션 로직에 대한 이해도를 높일 수 있었습니다.

  • 지금껏 서버와 통신이 중요한 앱들을 만들다보니, Local DB에 대해서 이렇게 만져볼 기회가 없었습니다. 이번 기회를 통해 Core Data와 Realm의 동작들에 대한 이해도를 높일 수 있었고, 덕분에 앞으로의 방향성에 대한 확신을 얻을 수 있었습니다.

두번째는, FirstParty Framework 이라도 검증을 통해 안정성을 체크해야 한다라는 점이었습니다.

  • 만약 POC의 결과만 믿고 앱을 배포 했다면, 특정 버젼 이전의 유저들은 크래시를 경험하게 되었을 것이고, 이는 우리 앱에 치명적인 결과를 낳을 수 있기 때문입니다. 결국 모두 도구라고 생각하고 검증에 대한 필요성을 한번 더 느끼게 되었습니다.

하지만 그렇다고 FirstParty Framework를 포기하지는 않았습니다.

한번 깔끔하게 털어내고, 잘 닦아내고 이해도를 높인 후 다음에는 Realm에서 SwiftData 로 다시 돌아올 예정입니다. 물론 이 경우에도 여러가지 실험을 통해 안전함과 유용함을 검증 해야겠지요.

끝까지 읽어주셔서 감사합니다!

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

#Engineering #IOS #Core Data #Migration

6
2
Lucy Seo

Lucy Seo

퍼널 분석, 다른 회사는 어떻게 하고 있는지 궁금하신가요? 🤓

딜라이트룸 PO Seunghwan Stephan Seo의
다양한 분석에 대한 글을 꾸준히 리포스팅해주시던
데이터 분석 커뮤니티, 데이터리안에서
이번에는 퍼널 분석에 관한 세미나를 진행합니다.🎙️

알라미 팀에서는 어떻게 퍼널 분석하고 있는지,
아래 링크를 통해 세미나 신청하시고 직접 알아보세요 🙌

8
0