사이드 프로젝트 뉴스레터

#8 GomScope 이야기

안녕하세요. 이은재입니다. 오늘은 제가 사이드 프로젝트로 작업했던 GomScope라는 앱에 대한 얘길 해보려 해요.

때는 약 2년 전이었어요. 코로나가 터지고 많은 사람들이 집에서 시간을 많이 쓰게 됐고, 그 여파로 다양한 서비스들이 생겨나기 시작했죠. 그중 PKM, Personal Knowledge Management라는 토픽이 급부상하기 시작했어요. 세컨드 브레인, 디지털 가든, Zettelkasten 등이 다 이 space에서 쓰이는 용어죠. 그리고 그것들을 지원하는 앱들이 생겨나기 시작했어요. 여러분들이 잘 아시는 Roam Research 가 대표적인 예이고요.

당시에 저는 Bear라는 노트 앱을 사용하고 있었는데요. 제가 굉장히 좋아했어요. 왜냐면 디자인이 너무 심플 & 아름답고 Native Mac 그리고 iOS 앱이어서 반응 속도가 빨랐거든요. 그래서 언제든지 Bear 앱을 열면 굉장히 빠른 시간 안에 커서가 뜨고 무언가를 입력하는 게 가능했어요. 하지만 Bear 앱을 만드는 ShinyFrog라는 회사는 Bear 앱에 다양한 기능을 넣지 않고 아주 미니멀하고 깔끔하게 유지 해왔지만, 새로운 기능을 넣는 데 굉장히 오랜 시간이 걸리고, 잘 넣어주지도 않아서 불만을 토로하는 유저들이 꽤 있었어요.

저는 Bear 앱에 몇 가지 추가 기능을 원했어요. 하지만 그들이 넣어 주지 않을 거라는 것도 알고 있었죠. 그렇다고 이 앱을 떠나고 싶지는 않았어요. 왜냐면 제가 너무나 잘 써 왔고 이 앱 자체는 전혀 문제가 없었거든요. 그래서 고민을 하다가 발견해 낸 게 이 앱은 SQLite 파일을 로컬에 저장하고 있다는 사실이었어요. 그렇다는 건 제가 그 파일을 읽기만 하면 모든 노트 정보를 받아 올 수 있다는 뜻이잔요? 그래서 그 파일을 뜯어서 리버스 엔지니어링 하기 시작했습니다. 말이 거창하지, 테이블 스키마가 간단해서 금방 이해할 수 있었어요. 하지만 이 파일을 다시 업데이트하는 행위는 절대 하지 않기로 결정했어요. 왜냐면, 그랬다가 어떤 부작용이 있을지 알지 못하기 때문에요.

작업의 시작

그렇게 조금 테스트해 보다 보니까 이 자료들을 바탕으로 노트들 간의 연관성 그래프를 그릴 수 있겠더라고요. 그게 뭐냐면 한 노트에서 다른 노트를 언급하는 경우에 그 두 노트 간에 선을 연결해서 그리는 그래프인데요, Roam Research 같은 앱들에 이런 기능을 많이 지원하고 있고, 그 당시 사람들에게 인기를 끌던 요소 중 하나였거든요. 그래서 SQLite에서 필요한 부분을 JSON으로 내보내고, 단순한 HTML 파일에 force-graph라는 라이브러리를 써서 아주 간단하게 그래프를 그려봤어요. 그리고 그 그래프를 어딘가 올려 봐야겠다는 생각을 했어요. 그래서 Reddit에 있는 Bear 앱 사용자 subreddit으로 갔어요. 거기에 이런 테스트해봤다는 글을 간단히 올렸고 꽤나 사람들이 좋아하는 걸 확인할 수 있었죠.

Thinking of generating a graph out of my bear notes

그리고 제대로 된 웹사이트도 없이 구글 폼으로 관심 있는 사람들 이메일 주소를 등록하도록 했고요. 그리고 머지않아 웹사이트를 만들어 공유하고 뉴스레터를 구독하도록 했어요. 웹사이트는 적당히 Bear 웹사이트를 눈으로 베끼면서 느낌을 비슷하게 가봤어요. 앱 아이콘은 너무 고민이 됐는데 제가 디자이너가 아니다 보니, 그냥 곰과 망원경 Emoji를 갖다 붙여버리고 말았답니다. 그리고 추후에 디자이너를 고용해서 바꿔야지 싶었죠. (그런데 결국엔 안 바꿨어요)

🙋‍♂️ I’m working on an app for us, Bear lovers!

Bear 팀에서는 이런 접근을 꽤 흥미로워했고, 급기야 트위터에 제 레딧 포스트를 인용하기까지 했어요.

Bear - Markdown Notes on Twitter

알파 테스트에서부터 개발 중단까지

진행 상황을 뉴스레터 통해 간간이 전달했고, 저는 Next.js로 만든 웹을 static 하게 빌드하고 그걸 Electron으로 감싸서 배포하게 됐어요. 그리고 알파 테스터를 모집하는 메일을 보냈어요. 한 열명 정도를 받고 그들에게 무료로 사용할 수 있게 해줬어요. 슬랙을 만들어서 사람들을 초대했는데 잘 기억은 안 나지만 2-3 명 정도만 활발히 피드백을 줬고 나머지 사람들은 잘 쓰는지 아닌지도 모르겠더라고요. 그러면서 느낀 게, 이렇게 뿌리면 그냥 안 쓸 것 같아도 그냥 라이선스 키를 쟁여두고 싶은 욕구에 마구 신청하는 사람들이 존재한다는 것, 그들을 걸러낼 장치를 마련해야 한다는 것을 느꼈어요. 예를 들면 1달러만 받는다고 해도 우수수 떨어져 나갔을 거예요.

여하튼 알파 테스트를 거치고 퍼블릭 베타 테스트로 갔어요. 그러면서 제가 제시했던 게, “아직 기능이 덜 완성되었으니, 가격도 조금 저렴하게 줄게요” 였어요. 그랬더니 구매자들이 생기고 저에게 실제로 돈이 들어오기 시작했어요. 그때 그 기분은 진짜 말로 설명하기 힘들더라고요. 지금까지 계속 개발해서 월급 받아먹고살았지만, 개발을 가지고 월급이 아닌 형태로 돈을 번 건 처음이었거든요. 제가 스스로 시장을 찾아서 고객들에게 운을 떼고, 프로덕트를 만들고, 고객을 모집해서 두 단계의 테스트를 거치고 실제로 돈을 벌었으니까요. 그리고 탄력을 받아 작업을 더 진행하고 공식 런칭을 하면서 원래 생각했던 가격을 다 받고 판매하기 시작했어요. 구독형은 아니고 one-time purchase였는데 $38였어요. 뭘 그리 비싸게 받나 놀라실 수 있겠지만, 이게 어찌 보면 파워유저들이 좋아하는 기능인 데다가, “지식을 관리” 하려는 의도를 가진 사람들이 유저층이기 때문에 가격을 높게 잡아보자고 생각했어요. 혼자 하는 프로젝트의 장점은 뭐든 제 맘대로 가설 세우고 실험해 볼 수 있다는 거죠. 그리고 그게 잘 맞아떨어졌어요. 그래서 결국 GomScope 통해서 1500 달러 정도의 수익을 얻었어요. 이때 만든 1500 달러는 그 이후에 저에게 아주 값진 시드 머니가 돼서 다양한 유료 서비스를 써보는 데 도움이 됐어요.

구입 30일 내에는 전액 환불 가능하도록 정책을 세워뒀었는데, 환불 요청이 서서히 늘더라고요. 근데 물어보니까 앱에 불만족스러운 사람들은 아주 소수였고, Bear 앱 자체를 떠나서 Roam Research 나 Obsidian 을 쓰기로 결정했기 때문에 GomScope 도 의미가 없어졌다는 사람들이 대다수였어요. 그들은 대부분 너무 친절하게도 “미안하지만 환불해달라고, 하지만 너는 너무 멋진 걸 만들어냈다. 앞으로도 잘 되길 바란다”라는 이야기를 해줬죠. 환불을 해주면서도 즐거웠어요. 그런데, 환불이 거듭되다 보니 어쩔 수 없더라고요. 앱 개발을 중단하기로 했어요. 제 타게팅은 “Bear 앱 유저들 중 파워유저 군”인데 그들이 앱을 떠나고 있기 때문에 제 앱이 의미가 없어졌어요. 게다가 저 또한 다른 노트 앱에 기웃거리기 시작하면서 열정이 식더라고요. 그래서 공지를 올렸고 개발을 중단했어요. 당연히 이미 구입한 사람들은 계속 쓸 수 있게 했고요.

프로젝트 마무리

근데 여기서 그냥 멈추긴 아쉽더라구요? 제가 처음으로 Electron 앱을 만들었던 건데 거기서 겪었던 시행 착오들을 간단히 정리하고 싶었어요. 그리고 Next.js 를 쓰고 그걸 Electron 으로 감쌌던 과정도 나름 흥미로웠거든요. 기존에 있는 두어개의 비슷한 오픈 소스 템플릿을 써봤는데 제 프로젝트에 잘 맞지 않는 부분이 있어서 적당히 참고해 가면서 직접 작업했거든요. 그래서 강좌를 만들기로 결심했어요. 물론 시간을 많이 들이고 싶진 않았어요. 그 시점에 이미 다른 프로젝트를 구상하고 있었거든요. 빠른 시간 안에 시작부터 끝까지 가고 싶었어요. 그래서 녹화 버튼을 누르고 제가 소스 코드를 여기 저기 들여다보면서 설명하는 식의 영상을 찍었어요. 마치 인수인계 하듯이요. 제대로 된 강의였으면 빈 프로젝트부터 시작해서 단계별로 설명해야했겠지만 그러려면 준비하는 시간이 너무 많이 드는데다 가장 중요한 건, 그러고 싶지 않았거든요. 그래서 그냥 인수인계 실시간으로 하듯이 쭉 설명을 여기저기 파일 왔다 갔다 하며 했어요.

다 찍고 보니 한 50분 정도 되더라고요. 그래서 그 영상과 앱 소스 코드 통째로 포함해서 $10에 올렸어요. 제 트위터에도 소식 알리고, Reddit의 r/electron에도 알렸죠. 제 개인 웹사이트에도 링크를 걸었고요. 그 이후로 두어 달에 한 명꼴로 이 강좌는 사더라고요. 접속 통계를 보면 대부분 Reddit에서 들어온 것 같았어요. 아주 소소하지만 없는 것보단 나은 수입을 두세 시간 투자해서 얻어냈으니 기뻤어요. 게다가 다 죽은 프로젝트인 GomScope에서 뭔가 더 짜낸 것 같은 뿌듯함도요. 짧은 강좌 영상 자체만으로는 큰 메리트가 없을 수 있지만, 소스 코드를 통째로 첨부한 건 스스로 마음에 드는 결정이었어요. 어차피 어마어마한 제 비밀 기술이 담긴 코드도 아니고, 누가 그거 그대로 가져다 이름만 바꿔서 출시한다 해도, 저는 죽은 시장이라고 생각했기 때문에 상관없었거든요. 게다가 그 프로젝트에 대해 그간 제가 소식 전했던 트윗과 이메일들이 있기 때문에 이게 원래 제 거라는 걸 주장할 근거도 있고요.

시간 순으로 GomScope에 있었던 일들을 간략히 소개해 봤어요. 더 궁금한 디테일이 있으시면 메일로 알려주세요.

이 링크는 제가 트위터에서 그간 GomScope 관련해서 올렸던 트윗들이에요. 궁금하시면 살펴보세요!

GomScope (from:eunjae_lee) - Twitter Search