Network effect 관점에서 살펴보는 Carry Capacity
최근 토스 PO 세션에서 소개한 'Carry Capacity' 영상이 수많은 곳에서 바이럴 되었다. 영상이 공개된 날, 내가 들어가 있는 대부분의 그룹챗과 오픈 채팅, 슬랙, 커뮤니티에서 두 번 이상 소개되었을 정도이다. 영상 링크는 여기(https://www.youtube.com/watch?v=tcrr2QiXt9M)에 있다.
영상에 따르면, Carring Capacity(줄여서 C.C.)의 개념은 믿을 수 없을 정도로 간단하다. Carring Capacity는 프로덕트의 한계 수용력, 쉽게 말해 우리 앱/웹/프로덕트가 가질 수 있는 최대 User(영상에서는 MAU로 이야기한다.)의 한계를 나타내는 개념이다. 이는 프로덕트를 만들고 있는 PO뿐만 아니라, 프로덕트와 관련된 일을 하는 사람이라면 누구든 궁금해할 내용이다. 제품의 한계를 알 수 있다면 언제, 무엇을, 어떻게 해야 할 지도 미리 예측하고 대비할 수 있기 때문이다.
그래서 이 Carring Capacity를 어떻게 구하는가? 한계 수용력이라는 거창한 이름과는 달리, 영상에서 이승건 대표님이 친절히 알려주시는 C.C. 공식은 충격적일정도로 간단하다. 단 두 가지만으로 구할 수 있다는 것이다. 영상에 따르면, C.C. 는 아래와 같이 구할 수 있다.
Carring Capacity
= # Of New Daily Customers(Inflow) / %Customers You Lost Each Day(Churn)
스타트업은 성장하기 위해 얼마나 많은 지표를 트래킹 해야 하는가. 그런데 사실은 단 두 가지의 지표만으로 우리의 성장을 예측할 수 있다니. 말이 안 되게 간단했고, 그래서 더 충격이 컸다.
토스는 PO를 위해 C.C. 개념을 소개했지만, 나는 주로 비즈니스에 관한 고민을 하므로 여기서는 비즈니스 사이드에서 C.C. 의 개념이 왜 중요한지에 대해 이야기해보려 한다. 한계 수용력을 안다는 것은 성장을 예측할 수 있다는 것이다. 왜냐하면 우리가 한계에 비해 사람들을 더 많이 데리고 있는지, 아니면 적게 데리고 있는지를 계산할 수 있기 때문이다.
결정 1) 어차피 사람을 데려와도 다 이탈할 테니, C.C. 에 적절한 수준까지만 사람을 데리고 있자.
결정 2) C.C. 에 곧 도달한다. 어라, 근데 우리 돈이 많잖아? 그럼 사람을 때려 부으면서 C.C를 늘리자!
결정 1) 아직 한계까지 다다르지 않았으니 우리가 가진 리소스를 활용해서 신규 고객 모객에 힘쓰자!
결정 2) 아직 한계에 다다르지 않았는데 돈이 없네.. 효율을 늘리거나 투자를 받거나 해야겠다..
당연하게도, 위에 적은 두 가지의 결정이 전부가 아닐 것이다. 훨씬 많고 복잡한 의사결정을 할 수 있게 된다. C.C. 만 제대로 안다면 말이다. 마케팅이나 영업, 사업개발 등 비즈니스에 관하여 고민하고 있는 사람이라면 항상 '우리가 가진 리소스를 어떤 속도로 어떻게 소진해야 하는지'에 관한 고민을 할 것이다.
가끔은 느려도 효율이 좋아야 할 때가 있고, 어쩔 때는 효율이고 뭐고 일단 속도부터 늘려야 할 때도 있다. (효율도 좋고 속도도 빠르면 좋겠지만.. 쉽지가 않다.) 그런데 이걸 예측하는 게 참 쉽지 않고, 우리는 늘 머리가 터지도록 고민한다. 우리 지금 CPI가 얼마나 나오고 있지? 우리 지금 사업 확장 속도가 어떻지? 점유율은 어떻지? 경쟁사는 얼마나 성장했지? 우리 돈 얼마 남았지!!!! 하고 말이다.
이런 간단하고 혁신적인 개념을 공유해준 토스에 감사하며, "좋은 개념을 알았으면 적용해보는 것이 인지상정!"이라고 마음속으로 외친 뒤 우리 서비스의 C.C. 를 계산해보았다. (이미 이 영상을 본 PO님이 계산을 해두신 상태였다.) 그런데 어라라? 뭔가 이상했다.
토스는 '간편 송금 기능'이라는 tool로 성장했다. 지금은 Come for the tool, Stay for the network를 만들기 위해 고군분투하고 있는 것 같지만, 초기에는 그렇지 않았다. Tool을 기반으로 성장하는 회사의 경우, 보통은 한 유저가 다른 유저에게 영향을 주지 않는다. 그렇기 때문에 유저 한 명은 숫자 '1'로 명확히 표현할 수 있다. 이것이 바로 토스가 C.C. 개념을 잘 적용할 수 있었던 이유이다.
이쯤에서 Network Effect를 살펴보자. Network effect란 무엇인가? 여러 개념과 정의들이 혼재되어 사용되지만, 가장 정확한 정의는 '사람이 늘어나는 만큼 가치를 더하는 효과'이다. 사람 수가 증가할 때 가치가 늘어난다면, 더해진 가치는 한계 수용력에 영향을 주지 않는 것일까?
굳이 Network effect까지 생각하지 않아도 된다. 우리가 흔히 접할 수 있는 수많은 커뮤니티를 생각해보자. 커뮤니티의 경우 Inflow가 1명, 2명, 3명이어도 그 impact가 동일하지 않다. 유저의 특성, 유저 간의 interaction, Community의 Quality 등 여러 지표에 따라 1명은 1.5명이 되기도 하고 3명이 되기도 하고 0.3명이 되기도 한다.
여기까지 생각이 드니 나는 이 C.C. 개념이 Network effect 내지는 Community 기반의 프로덕트에도 적용이 되는지 궁금해졌다. 혼자 고민하기에는 머리가 복잡했으므로, 토스 PO 세션의 영상 링크를 공유받았던 한 슬랙 커뮤니티에 나의 고민을 털어놓고 사람들의 의견을 들어보기로 했다.
dodo(dodo4114.medium.com)는 "코딩하다 화가 났는데 마침 최근 생각했던 재밌는 질문이 올라와 급발진해보았다"라는 유쾌한 코멘트를 남기며 수식으로 C.C. 에 대해 설명해주었다. 아래는 나의 물음에 대한 dodo의 생각이다.
토스의 경우 결과 지표를 MAU로 삼고, 해당 MAU(이하 유저 숫자)가 수렴할 지점에 대해 예측하는 목적으로 C.C. 공식을 만든 것으로 이해했다.
MAU가 수렴하는 경우, 유저 숫자의 변화(이하 dAU)는 inflow에서 outflow를 뺀 것이므로 inflow가 outflow가 되는 지점이 수렴 포인트이다.
토스가 세웠을 것으로 추정되는 가설은 다음과 같다.
inflow가 일정하다. 다시 말해, active user(이하 그냥 유저)의 숫자와 무관하다.
유저 이탈은 유저의 숫자에 비례한다.
이에 따라 dAU(AU의 변화량) = inflow(상수) - outflow(AU에 비례하여 발생)인데, 여기서 수렴 포인트는 inflow-outflow가 0이 되는 지점이므로 아래 공식이 도출된다.
하지만 이러한 공식은 '토스가 세운 가설'이 성립할 때 작동 가능한 수식이다. rannie가 말한 것처럼 다른 경우가 있을 수가 있다.
예를 들어,
inflow가 AU에 비례할 수도 있다. (주로 네트워크 효과)
outflow가 상수일 수도 있다.
이 경우에는 inflow와 outflow를 계산하는 공식을 수정해야 한다.
dAU = inflow - outflow의 공식은 일반적으로 유효하다.
또한, 이를 통해 dAU=0이 되는 수렴 포인트를 찾아서 MAU를 예측할 수 있다.
하지만 서비스마다 특징이 다르기 때문에 공식의 토대가 되는 가설도 달라질 것이다.
그러므로 우리 서비스의 inflow와 outflow가 어떤 함수로 이루어져 있는지 잘 파악할 필요가 있다.
민준님은 운동량 보존의 법칙을 예시로 C.C. 의 개념이 Network effect가 일어나는 상황에서는 유효하지 않다는 것을 설명해주셨다. 아래는 나의 물음에 대한 민준님의 답변이다.
우리가 흔히 알고 있는 운동량 보존의 법칙은 아래와 같다.
운동량의 변화(dm) = 유입운동량(m_inlet) - 유출운동량(m_outlet)
위 식에서 빠져있는 것이 있다. 'Source Term'이 빠져있다. 사실 실제 운동량 보존의 법칙은 아래와 같다.
운동량의 변화(dm) = 유입운동량(m_inlet) - 유출운동량(m_outlet) + S(source Term)
컵 안에 '물'만 존재한다면 하나의 물 분자 주변에는 물 분자밖에 없기 때문에 주변 외력의 합이 0이 되어 가만히 있을 수 있다. 즉 Source Term이 존재하지 않는다.
하지만 컵 안에 '물'과 '기름'이 공존한다면 물 분자 주변 외력의 합이 0이 아니게 된다. 물과 기름의 힘은 다르기 때문이다. 그래서 물은 물끼리, 기름은 기름끼리 뭉쳐서 외력의 합이 0이 될 때까지 계속 움직이게 된다. 이렇게 주변 환경에 의해 움직이는 현상이 Source Term 때문이다.
토스 유저들은 서로 영향을 주지 않기 때문에 Source Term=0이다. 커뮤니티의 경우 물과 기름이 합쳐져 있는 Source Term이 존재하는 형태이기 때문에 C.C. 개념이 적용될 수 없다고 생각한다.
dAU = inflow - outflow + S (커뮤니티 이펙트)
수식과 운동량 보존 법칙에 이어, Aiden은 C.C. 의 개념이 나온 생태학에 관련된 내용을 한번 더 짚어주었다. 아래는 나의 물음에 대한 Aiden의 생각이다.
C.C. 개념의 출처는 생태학이다 보니, 개체수와 같은 부분 (ex. 출생률과 사망률로 인한 개체수 보존 등)에도 로지스틱 회귀와 같이 적용되곤 한다.
'우물의 물'이라고 비유한 부분 외에도, '동물 무리'와 같은 비유로 생각해보는 것도 좋을 것 같다. (ex. 어떠한 super 개체가 다른 개체에 비해 더 많은 후손을 생식한다. 등)
나는 수식이나 데이터로 의사소통하는 걸 선호하는 편이다. 여기에는 큰 약점이 있다. 경험이나 감으로 움직이는 (& 자기 객관화가 잘 되는) 사람은 언제나 그것이 틀릴 수 있다는 걸 안다. 그래서 유연하게 움직인다. Plan B, plan C를 짜며 움직이기도 한다. 하지만 수식이나 데이터는 보통 움직이기 전에 방향을 정하는 기준이 되므로, 한번 그 기준에 따라 움직이기 시작하면 나중에 틀렸다는 걸 알아도 수습하기가 어렵다. 대부분 기준을 정해두면 그 기준이 좋은 기준이었는지에 대해서는 잘 생각하지 않기 때문이다.
여러 사람들과 이야기를 하며 중요한 것이 무엇인지를 한번 더 상기할 수 있었다. 특히나 dodo가 언급해 준 '수식이 아닌 개념으로 접근하기'라는 말이 큰 도움이 되었다. 결국 중요한 것은 C.C. 를 예측하는 이유를 아는 것이다. 우리가 C.C. 를 측정하려는 이유는 결국 성장을 예측하기 위함이 아닌가. 성장이 멈추는 시점이 inflow와 outflow가 같아지는 지점이라는 것을 알면, 그다음부터는 고민에 답변하기가 쉬워진다.
이번에 나름대로 C.C. 를 공부하고, 무조건 수용하기보다는 비판적으로 한번 더 생각해보며 생각하는 힘을 기를 수 있었다. 또, 적용하는 과정에서 생긴 질문을 스스로 고민해보았고, 사람들에게 생각을 공유하고 의견을 나누며 개념에 대해 깊게 생각해볼 수 있다. 다른 사람들의 의견을 들어보는 것이 즐거웠고 무척 뜻깊은 경험이라 종종 해야겠다는 생각이 들었다. (라는 생각에 동의하신다면, 여기에서 이야기하며 함께 성장해보는 것도 좋을 것이다!)
결론, 개념을 무조건적으로 수용하기보다는 Why? 와 본질을 더 깊이 생각해보자. 그러면 상황에 맞게 개념을 적용할 수 있는 무지막지한 힘이 생긴다.