내 첫 제품 실패기
(쓰레드에 썼던 글을 정리해서 옮겼습니다.)
배경
내가 졸업 후 계속 회사를 다니는동안, 한 친구가 여러번의 창업 끝에 한 앱을 시작으로 오랜 고군분투를 거쳐 외부투자 없이 직원 20여명 규모의 회사를 만들었다. 그 친구를 만날때마다 뽐뿌가 생겼다. 나도 언젠간 내 것을 팔고 싶었다. 나도 뭔가 팔려면 앱을 만들어야 하나 싶었다. 하지만, 난 졸업 후 커리어가 잠깐의 임베디드 개발과 대부분의 백엔드 개발 뿐이었다. 클라이언트는, 학생때 안드로이드 앱 개발 외주 했던 것과, 2010~2011년쯤에 친구들과 안드로이드 책을 썼던 것 뿐이다. 그마저 너무 오래되서 쓸모도 없다. 그동안, 내가 직접 내 앱을 팔아본 적이 없었다. 수억명 유저의 요청을 처리하는거나 데이터 샤딩은 많이 해봤어도, 요즘의 앱 개발도 잘 모르고, 더군다나 UI/UX나 마케팅은 더욱 더 몰랐다.
나도 앱을 직접 팔아보고 싶었는데, 그렇게 개발자 마인드로 타겟을 선정했다. - (실수1)
- 구독 모델 (recurring revenue를 위해서)
- 최소의 UI (내가 잘 못해서)
- 글로벌 앱 (한국만 하면 수익내기 더 어려워서)
- 위 두 가지 조건으로, 글자가 적은 앱
- 떡고물 노리고, 전체 매출이 큰 시장 - (실수2)
- 백엔드 경험을 살려서, 서버를 이용하는 것 - (실수3)
위 조건으로 검토를 하다가 VPN앱을 만들기로 했다. 2018년말이었다. 회사를 다니며 야근도 하고, 주말에 “짬짬히” 코딩을 했다. 평일엔 회사를 다니는 것 만으로도 충분히 바쁘고, 집에 오면 완전히 지치기 때문에 뭔가 하긴 어려웠다. 게다가, 주말 내내 코딩한 것도 아니고, 아내와 시간을 보내기도 하고, 플스 게임을 하기도 하고, 실제 일한 시간은 고작 평균 주당 4시간쯤이었던 것 같다. 그게 3년 넘게 걸릴줄은 몰랐다.
“이걸 반드시 팔겠다”라는 마음은 별로 없었고, 처음엔 주말 취미 겸 사이드프로젝트 느낌이 더 강했다. 그래서 기술 스택도 여러번 갈아치웠다. iOS앱 개발에 경험이 별로 없었기에 시행착오도 많았다. 스토리보드로 하다가, 너무 불편해서 Flutter로 바꾸고, 다시 그때 SwiftUI가 막 발표되었는데 더 편해보여서 SwiftUI로 바꾸고, 백엔드도 불필요하게 AES GCM 256과 UDP와 TCP에서 다 되는 VPN 프로토콜을 직접 구현하기도 했다. 여기서도 시간을 많이 낭비했다. (실수4)
웃긴건, 나중에 런칭할땐 정작 WireGuard 프로토콜을 사용했다. 자체 프로토콜에 들인 시간들은 뻘짓이었다.
코로나, 재택근무, 육아휴직
그 와중에 코로나가 시작되고, 재택근무를 시작하고, 아이가 태어나고, 그러다가, 1년의 시간이 흘러 아내의 육아휴직이 끝나고 복직하면서 내가 육아휴직을 시작했다. 부자간에 유대를 쌓을 시간도 필요하고, 아내 회사 어린이집은 만1세가 지나야 보낼 수 있어서, 6~7개월 정도동안 누군가가 아이를 봐야 했다. 그렇게 육아휴직을 하고, 낮에 아이를 보다가 아이 낮잠을 잘 때나, 아내 퇴근 후에 밤잠 등 시간 날때마다 틈틈히 코딩을 했는데, 오히려 체력 부족으로 아이와 보내는 시간의 질이 떨어졌다.
지금 생각해보면, 사이드 프로젝트는 잠깐 접고, 그냥 그때 아이에게 집중할껄 싶다. 그 전의 오랜 재택근무로 인한 나도 인지하지 못 하던 스트레스와, 월화수목금 육아에 대한 스트레스 (정말 힘들다. 3주만에 대상포진이 생겼다.), 거기에 틈틈히 하는 개발이 더딘 것에 대한 스트레스가 아이에게 많이 새어나갔다. 예를 들어, 아이가 평소 낮잠 시간이 되었는데 더 놀고 싶어서 안 자고 짜증내면서 보채면, ‘아 얼른 자야 VPN 개발을 할텐데’하고 생각하면서, 괜히 밉기도 하고 나도 같이 짜증이 많이 났다. 나도 차라리 휴식을 많이 취하고, 좀 더 다정한 아빠였으면 좋았을텐데 싶다.
퇴직
시간은 빠르게 흘러, 아이가 어린이집에 가고 복직할 날짜가 다가왔다. 다니던 회사는 겸업금지이니깐, 실제로 팔아보려면 퇴직을 해야 했다. LINE은 개발자로 일하기에게 좋은 회사이고, 메시징 서버 조직과 그 안의 Redis유닛 팀도 좋은 환경이었기 때문에, 퇴직여부에 고민이 많이 되었다. 하지만, 이걸 팔아보려면 퇴직을 해야 했다. 회사를 다니면서 몰래 다른 명의로 사업을 한다던가 그런 것은 하고 싶지 않았고, 내가 멀티태스킹을 잘 하는 사람이 아니어서, 회사와 사업을 동시에 잘 할 수 있을 것 같지도 않았다. 마음이 콩밭에 가있으면 어차피 동료들이 금방 눈치챌 것이라고 생각했다. 다들 높은 퍼포먼스를 내는데, 재택이어도, 누가 일을 하는지 안 하는지 쉽게 티가 난다. 10년 후에 동료가 창업한 회사에 내가 말단 직원으로 취직하게 될 지도 모르는데, 투잡 하는 사람으로 기억에 남고 싶진 않았다.
그럼에도, 기회비용 생각이 많이 들어서, 선뜻 결정하기가 어려웠었다. 이 양 손에 꽉 쥐고 있는 것을 놓아야 새로운 것을 두 손으로 잡을 수 있을텐데, 양 손을 놓기가 겁났다. 한편으론, 나이가 더 들고, 커리어가 더 쌓이고, 직책이 더 높아지고, 연봉이 더 높아지면, 기회비용이 더 커져서, 더욱 커진 그것을 손에서 놓아주는 것이 지금보다 더 무서울 것 같았다. 지금도 못 해본다면, 평생 못 하겠다 싶었다. 기회비용은 지금 이 순간이 가장 낮을때니깐. 그러면, 나중에 100살쯤 되어서 병원에 누워, “아 그때 그냥 해볼껄”하고 후회할 것 같았다. 안 해보고 후회하는 것 보다는, 해보고 후회하는게 낫지 않을까? 인생 뭐 있나. 그렇게, 2022년 3월에 육아휴직 복직 대신 퇴직을 결심했다. 지금 와서 생각해보면, 주말 사이드 프로젝트 3년은 사실은 서비스를 만든 시간이 아니고, 퇴직을 고민하는데 걸린 시간인듯 싶다. 아, 그리고, 아내에게 허락을 받는데 걸린 시간이기도 하다.😅 수년간 창업가 친구 이야길 했더니 아내가 마침내 허락해주었다. 물론, 맞벌이여서, 아내를 믿고 도전을 하는 점도 있었다. 외벌이였으면, 고정 소득이 없다면, 못 해봤을 것 같다. 아무튼, 퇴직을 결정하고, 나를 기다리던 동료들과 보스에게 너무 미안했다. 보스와의 퇴직 면담을 하고나서, 한국,일본에 있는 동료들과 Zoom으로 1:1 미팅을 하면서 퇴직 사실을 알렸다. 코로나 기간이기도 하고, 휴직기간이기도 해서, 멤버들과 오프라인으로 바로 만나진 못 했다. 특히 일본의 멤버들은 나중에도 만나긴 어려울텐데 많이 아쉬웠다. 퇴직 프로세스를 마치고 나니, 홀가분하기도 하고, 굉장히 두렵기도 했다. 한편으론, 런칭하면 잘 될꺼라는 환상이 있어서 기대되기도 했다. 그 환상은 금방 사라졌지만. (그래도 그런 환상이라도 있어야, 눈 딱 감고 질러볼 수 있는 것 같기도 하다.)
런칭
퇴직 후 풀타임으로 1인기업이 되었다. 풀타임이면 10배의 속도로 일할 수 있지 않을까 생각했지만, 그 정도는 아니었다. (참고로, ChatGPT가 나오기 전이었다.) 거의 다 만들었다고 생각했었지만, 실제 출시하려고 보니 여전히 남은 일이 많았다. 백엔드 개발자 출신이라, stateful한 VM의 장애시에 VPN 유저들의 세션들을 graceful하게 마이그레이션 하는 기능도 한 달간 만들었다. (서비스 종료할때까지 그 기능을 쓴 적이 없다. 그냥 한달간의 뻘짓이었다.) 게다가, 애플 앱스토어에 VPN항목은 개인사업자는 올릴 수가 없고 조직만 올릴 수 있어서, 법인도 세워야 했다. 여차저차, 몇 달간 남은 일을 다 작업해서 VPN의 iOS 버전을 먼저 런칭했다. 안드로이드는 PoC만 해봤고, 나중에 할 생각이었다. 백링크를 위해 VPN앱을 Product Hunt에도 올리고, referer badge를 달기 위해서 어느 온라인 뉴스매체에도 유료로 올렸다.
VPN은 “떡고물 노리고, 전체 매출이 큰 시장”이라고 했다. 애플 앱스토어에서 1위앱은 월 매출이 20억원, 100위는 월1천만원 정도이다. 이 정도 규모인 시장은 많지 않다. 100위 안이 목표였는데, 2022년 8월에 런칭하고나서 보니, 웬걸, 아무리 개선해도 1,000위 안에도 못 들었다.
- 앱스토어에 4,000개의 VPN앱들이 있는데, 제품에 딱히 뾰족한 부분도 없고 경쟁력이 없었다. 그냥 4,000개가 4,001개가 된 것이다. - (실수5)
- 아이폰도 안 팔고 앱스토어도 없는 이란엔 당연히 팔지 않았는데 (미국의 제제 대상 국가라서 팔 수도 없다.), 미국 앱스토어의 다운로드의 90%가 이란 IP에서 발생했고, 다들 trial 기간만 사용하고 유료로 전환되지 않았다. 이란 유저들이라 미국 신용카드가 없는게 아닐까 싶었다. 이란 사용량이 높았던 것은 그 당시 2022년 이란 시위 때문이었다. iOS는 미국 시장이 가장 중요한데, 이란으로 인해서, 미국 트래픽의 90%가 허수였다.
- 유료 유저 일부가 중국에 여행 갔더니 안된다고 하는 환불 요청이 많았다. 내가 중국에 살지 않아 어떤 프로토콜이 잘 되는지 테스트하기 어려웠다. 처음에 사용한 WireGuard는 자동 차단되는 프로토콜이었고, 다른 새 프로토콜을 추가하더라도 내가 직접 테스트할 방법이 없었다. - (실수6)
- 참고로, 중국 앱스토어에는 팔지도 않았다. 중국에서 VPN을 팔려면 중국 회사가 있어야 하고, 정부의 허가를 받아야 한다. 그럼에도 사용자들이 다른 국가에서 VPN을 미리 구입하고, 중국으로 출장이나 여행을 갈때 사용했다.
- 경쟁이 치열한 시장이라 구독 가격이 낮아야했다. 경쟁 제품들이 다들 싸게 팔고 있기 때문. - (실수7)
- 경쟁력이 있으려면 서버를 수백개지역에 제공해야 하는데 (실수8), 수백개 지역에 제공하려면 비용 리스크로 1인으로 하기는 어려웠다.
- 일단 처음엔 12개 지역에 서버 운영하고, 점차 늘리고 싶었는데, 순이익이 신통치 않아서 늘리기 어려웠다.
뭔가 개선하려면, 새 프로토콜을 추가하거나, 서버를 수백개 지역에 제공하는 것인데, 후자는 돈이 너무 많이 들어서 하기 어려웠다. 새 프로토콜은 추가하더라도 그게 중국에서 되는지 내가 테스트 하기가 어려웠다. ShadowSocks는 된다는 소문이 있었지만, 그것도 안 된다는 리포트도 있었고, 한편으론, 중국에서 딥러닝을 이용해서 특정 패턴을 보이는 패킷을 drop하는 것으로 추정된다는 연구도 있었다. VPN 패킷의 암호화를 풀 수는 없어도, 이게 VPN 패킷인지 추측하는 재미있는 방법들은 여러가지가 있다는 것도 알게되었다.
추가로, Product Hunt에 올리고 나서, IDC의 IP대역이 아닌, 일반 거주지 IP대역으로 된 VM을 하나에 월 $1000 정도에 팔고 싶다는 콜드메일도 많이 받았다. 그런 시장이 있다는 것도 Product Hunt에 올리고 나서야 알게 되었다. 물론, 내가 쓰긴 너무 비쌌다.
런칭 이후
계속 업데이트하는데도, VPN이 월 매출 50만원, 서버비 50만원, 순이익 0원인 것을 보면서, 많은 생각을 했다. 그제서야 책이나 다른 자료를 좀 더 찾아봤다. 이것들을 첫 코드 한 줄을 쓰기 전에 읽었으면 좋았을텐데. VPN을 만들기로 결심하기 전에 읽었으면 좋았을텐데!
- The Indie Startup Handbook (Pieter Levels)
- 린스타트업 (에릭 리스), 인사이트
- 진화된 마케팅 그로스 해킹 (션 앨리스, 모건 브라운)
- IndieHackers.com
- #IndieHackers
- #BuildInPublic
- 20~30여개의 해외 뉴스레터들과 몇몇 팟캐스트들
- … 등등
여러 교훈들을 새겨듣고, 이번엔 VPN과 정 반대로, 경쟁이 거의 없고 서버도 필요 없고 매출도 적은 가장 간단한 기존 앱을 비슷하게 만들어 팔아보는 실험을 했다. 3일동안 만들어서 유료앱으로 올렸다. 그런데, 월5만원이 팔렸다? 두 앱을 비교하면,
- VPN앱: 주말3년+풀타임5개월 개발, 월매출50만원, 월순이익0원, CS많음
- 다른앱: 3일개발, 월매출5만원, 월순이익5만원
교훈
VPN에 새 프로토콜을 추가는 몇 달이 걸릴 것이고, 중국에서 될지 안 될지도 몰랐다. 한편, 3일 만든 앱은 바로 결과가 나왔다. ROI를 생각하게 됐다. 그래서 다들 그렇게 12 startups in 12 months 챌린지를 하는거였다. 2022년 말, VPN은 버리고 다른 새 제품들의 작업을 하기 시작했다. (나중에, 2023년 5월에, VPN은 연간구독자의 부분 환불을 진행하면서 서비스를 종료했다.)
첫 제품으로 VPN앱을 해보면서 얻은 교훈들은,
- 대부분 첫 제품은 실패한다. 처음엔 경험 삼아 힘 빼고 간단한 것을 하는게 좋다.
- 런칭이 시작이다. 그 전엔 모르는 정보가 많다.
- 혼자 다 하는건 큰 회사에서 개발자로 일하는 것과 다른 근력을 필요로 한다. 전체 한 사이클을 빨리 경험해봐야 한다. 절대로 개발만 오래 하면 안 된다.
- (Piter Levels가 했던 말) 자신의 경험에도, 주변 다른 인디해커들의 경험에도, 제품의 95%는 실패한다. 5%만 성공하기 때문에, 1개를 성공하기 위해선 10~30개 정도 런칭해봐야 한다. 그러려면 1달에 1개씩 해야 한다. 제품 1개의 MVP에 너무 오랫동안 만드는 것은 좋은 생각이 아니다.
- 해당 제품군의 마켓에서의 객단가가 중요하다. 극단적으로는, $1짜리를 100명에게 파는 것 보다, $100짜리를 1명에게 파는 것이 더 수월할 수 있다. CS도 더 적다. 그리고, 놀랍게도, 비싼 물건일수록 고객이 불평을 덜 한다.
실패담을 써봤다. 누군가에겐 조언이 될지도 모르겠다. 그런데 사실 나도 주말에 VPN을 몇년간 만들고 있을때, 창업가 친구가, “그거 잠깐 멈추고, 간단한거 한달 만들어서 런칭해보는건 어때?”라고 했었지만, 투입한 시간도 아깝고, 이제 거의 다 만들었다고 생각하고 그 말을 따르지 않았었다. 매몰비용의 오류였다. 그때 멈췄어도 반년 넘게 아꼈을텐데.
지금은
그 전후로, 8개의 제품을 더 만들었고, 그 중에 2개는 reject 먹었고 6개를 출시했다. 그 중 하나는 좀 더 적합한 Product-market fit을 위해 pivot을 했다. 벌써 퇴직 이후로부터 약 2년 10개월째 이 여정을 하고 있다. 아직은 월매출이 2021년의 내 월급보다는 적다. 성장 속도도 상상만큼은 아니다. 그래도 이제 Ramen Profitable은 넘어서서, 최소의 생활비는 나오고 있고, 이 여정의 유지가 가능하다. 1년 전에는 Ramen Profitable도 안 되었는데 나름 성장을 하긴 했다. 이 여정을 언제까지 할 수 있을진 모르겠지만, 꾸준히 하면 점차 올라가지 않을까 싶다. 게다가, 요즘은 한국에서도 Indie Hacker 또는 Solopreneur로 꽤 잘 되고 있는 사람들도 상당히 많아졌다. AI 때문인지 1인개발/인디해커 관련 뉴스레터나 유료 모임도 많아졌다. 아무튼, 나도 조금은 더 이 길을 계속 가보려고 한다.