- Published on
댓글 플랫폼 도전 (1)
들어가기 전에, 글의 진행 방식
이 글은 개발을 진행하면서 동시에 작성하는 글이다. 정리되지 않아서 이야기의 흐름이 이곳 저곳 오락가락 할 수 있다. 프로젝트가 마무리 된 후에 다듬을수도 있고, 아니면 이 흐름이 좋아서 남겨둘 수도 있다. 참고.
시작하게 된 이유
어제 Disqus 댓글을 연결하면서 댓글 플랫폼에 대해 고민해봤다. Disqus의 무료 댓글이 광고를 가지고 오는 이상 결국 나도 언젠가는 만들어야하기 때문이다. 그런데 꽤나 좋은 프로젝트 주제라고 생각했다. 개발 난이도가 낮아서 혼자서도 완성할 수 있으며, 스타트업같은 기업들이 뛰어들기에는 작은 시장이라 주제로 적합했다.
하지만 눈앞이 캄캄하다.
Disqus가 광고를 다는 이유는 간단하다. 돈을 내고 싶어하지 않는 사람들에게 대신 광고를 달아 수익을 창출하기 위함이다. 솔직히 스마트한 방법이다. 하지만 나는 광고를 원치 않는 사람들을 타겟팅해보고 싶다. 그렇게 생각한 이유는 나 역시 광고 없는 블로그를 원했기 때문이다. 그리고 광고를 유치하는 일은 1인 개발자인 내게는 벅찼다. 그렇다면 결국 돈을 받고 서비스를 제공해야 하는데 이렇게 되면 기존 댓글 플랫폼들과 차별점이 없어진다. 쉽지 않다.
내가 가진 차별점
그래서 하루종일 고민했다. 내가 가진 장점은 뭘까? 결론은 1인 개발자 라는 것이 나의 장점이었다. 일하는 사람이 나 혼자밖에 없기 때문에 큰 수익이 필요 없다는 점. 그래서 가격에서 차별화를 둘 수 있을 것 같다. 최대한 저렴한 가격으로 제공하는 것. 마케팅을 할 수 없기에, 가격을 저렴하게 하는 것이 나의 마케팅 수단이 될 것 같다. 아마 무료로 댓글을 제공한다고 하면, 큰 마케팅 없이도 많은 고객들을 유치할 수 있을 것은 분명하다. 그럼 내가 적자를 보지 않는 선보다 살짝 위에서 가격을 형성함으로써 광고 비용에 돈을 쓰지 않고 사업을 굴려보고 싶다.
해야 하는 것
- 경쟁플랫폼을 찾고, 가격 정책을 살펴봐야 한다. 이미 광고도 없는데 무료로 운영되고 있는 곳이 있다면 개발이 무의미하다. 나도 그걸 쓰는 것이 맞다.
- 가격 정책을 정해야 한다. 그리고 그러려면 먼저 서버 비용을 최대한 정확하게 예측해야 한다. 그래야 저렴한 가격을 가져갈 수 있다. 불확정성이 크면 클수록 나 역시 가격을 높일 수 밖에 없기 때문에 방법을 찾아보자.
경쟁사 분석
4개 정도의 회사를 찾아봤다. Disqus, LiveRe, Giscus, utterance. 이정도라면 가능성은 있어보인다. 문제는 가격을 어느정도까지 낮출 수 있을까가 관건일 것 같다.
Disqus는 Ad-free 버전 최저 요금이 월 12달러이다.
LiveRe는 국내 서비스이다. 무료 모델은 광고가 달리고, 유료 모델은 가격이 공개되어 있지 않다. 근데 광고가 조금 많이 달린다.
Giscus는 광고도 없고, 무료로 사용할 수 있지만 댓글을 쓰려면 Github에 가입해야 한다. 일반 사용자들은 Github 계정이 없기 때문에 번거로움이 있을 것이다.
utteranc역시 무료로 사용할 수 있지만, 댓글을 쓰려면 Github 계정이 필요하다.
원가 산정
원가가 얼마인지 알아야 가격을 낮출 수 있다. IT 서비스 특성상 너무나 많은 곳에서 가격이 조금씩 발생하기 때문에 정확히 아는 것은 불가능하다. 하지만 계속 리서치를 하다보면 점점 더 원가에 가까워지리라 생각하며 방법을 찾아본다.
이 서비스에서 가장 중요한 요금은 뭘까? 트래픽에 대한 비용과 DB 비용이라고 생각한다. 참 다양한 종류의 작고 사소한 비용이 참 많이 있겠지만 그런 비용들은 결국 트래픽에 비하면 거의 0에 수렴하게 된다고 생각한다. 그렇다면 유저별 트래픽 비용을 어떻게 계산할 수 있을까?
트래픽 비용은 어떻게 알 수 있을까?
가설, Nginx Log를 통해 어떤 유저에게 어느 정도의 트래픽이 보내졌는지 분석할 수 있을지 모른다.
- 이렇게 생각하고 찾다보니 Nginx Module 중에 트래픽을 집계하는 Traffic Accounting Nginx Module을 찾았다. Readme 파일에서 로그 포맷을 보니 total byte도 볼 수 있었다. 어떤 유저에게서 온건지 구별할 수 있다면 충분해보인다. 코드를 보니 C로 만들어져있고, 코드의 양이 많지 않다. 충분히 수정할 수 있을 것 같아서 가능할 것 같다. 정말 가능한지 상세하게 따지는 것은 결국 코드를 돌려보면서 확인하는 것 밖에 없다. 우선 가능할 것이라 판단하고 넘어간다.
- 모듈을 사용하지 않고, 로그를 직접 커스텀해서 찍어도 된다. yayz님의 글을 보면 custom header 값을 Nginx로그로 찍을 수 있다.
DB 비용은 어떻게 계산할까?
mongoDB에도 로그가 있을 것이다. 로그를 분석하면 계산할 수 있을 것 같다. 근데 조금 단순하게 가져가보기로 했다. 댓글에서 주된 요청은 결국 CRUD이다. 그리고 댓글 하나만을 다루기 때문에 종류도 작다. 그렇다면 Request마다 DB 요금을 임의로 책정하고 계산하는 것도 어느정도 비슷할 것 같다. 예를 들어 A 유저의 블로그로부터 댓글 목록 요청이 10건, 쓰기 요청이 2건 왔다면 DB 읽기도 10건, DB 쓰기 요청도 2건이라 생각해보는 것이다. 정확하지는 않겠지만, 크게 다르지도 않을 것 같다. 우선 이렇게 계산해보고, 맞지 않은 금액은 차차 맞춰가보기로 한다.
생각해볼 포인트
서버리스가 아니라면 서버는 항상 켜져있어야 한다. 유저가 전혀 사용하지 않더라도 서버 비용이 계속 나간다는 이야기이다. 이것에 대해 고민해야 한다. 아니면 서버리스로 넘어가는 방법도 생각해보는 것이 좋다. 솔직히 초기에 어느정도의 트래픽이 나올지 예측이 어렵다. 그리고 얼마나 오랜시간이 트래픽이 거의 없다시피할지도 알 수 없으니 리스크를 줄이기 위해 서버리스로 갔다가 추후에 돌아오는 것도 방법이다.
계산
Route53 + API Gateway, Lambda, MongoDB serverless 조합 (us-west-2, 오레곤)
100만 4KB 쿼리 기준 2.78 USD = 약 3,614원 처음 계산해본 것이라 분명 어딘가 틈이 있을거라 생각하지만, 우선 계산해봤다. (분명 이것보다 실제로는 비쌀 것이다.)
- Route53 쿼리 비용 0.4 USD
- API Gateway API 호출 (HTTP, 용량 512KB 미만) 1 USD
- Lambda (128MB, 500ms) 1.24 USD
- MongoDB 서버리스 (1회에 4KB 읽기 가정, AWS 같은 리전) 0.14 USD (100만 RPU, + 4GB Data transfer)
Disqus는 하루 최대 5만 view를 월 12 USD에 팔고 있다. 하루에 5만 view이면 한달에 약 150만 view. 내 서비스에서 원가로 계산하면 4.17 USD. 가격이 괜찮다. 하루에 1만뷰짜리 요금제를 신설한다면 원가는 0.834 USD.
가능성 있어 보인다.
1뷰의 가치
그렇다면 1뷰는 원가가 얼마일까? 2.78/1,000,000 = 0.00000278 USD (0.003614원) 만약에 무료로 사용하게 하는 대신 광고를 하나만 부담스럽지 않게 넣으면, RPM이 2 USD라고 가정할 때, 1뷰는 0.002 USD 약 2.6원 이득이다. 약 500배이상 이득.
근데 뭔가 이상하다. 이게 맞나? 내가 뭘 놓치고 있는거 아닌가? 처음해보는거라 분명 빠뜨린게 있을텐데.. 뭐 나중에 떠올리면 수정하면 된다. 원래 그렇게 배우는거니까. 어차피 사용량 대비 금액이 정말 맞는지 확인하는 테스트 기간도 있고.