Is It Keto: 12개월 차
원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기
한 줄 요약
월 방문자 5만 명은 내가 생각했던 것보다 훨씬 가치 있다.
하이라이트
- Is It Keto에 프로그램으로 자동 생성한 글 88개를 추가했다.
- 월 페이지뷰 10만을 달성해 Is It Keto 독자와 함께할 새로운 방법을 모색할 때가 됐다.
- 하드웨어 비용 100달러 미만으로 구현 가능한 KVM over IP 장치를 만들었다.
목표 평가
매달 초에 달성하고 싶은 목표를 정한다. 이번 달 목표 달성 결과는 다음과 같다:
Is It Keto에 글 100개 추가하기
- 결과: Is It Keto에 새 글 88개 추가
- 평점: B
프로그램으로 콘텐츠를 생성하는 일은 생각보다 어렵다. 점수와 영양 정보를 생성하는 건 쉽지만, 다양한 제품에 두루 적용되는 문장을 템플릿화하기는 까다롭다.
템플릿을 계속 다듬고 새로운 식품을 추가하겠지만, 사이트 수익을 키울 다른 방안도 함께 모색할 계획이다.
블로그 글 한 편 발행하기
- 결과: “My Eight-Year Quest to Digitize 45 Videotapes.”를 발행했다
- 평점: A
이 글을 어떤 형태로든 지난 2년간 작업해 왔기에, 마침내 발행하게 되어 기쁘다. 결과물에도 만족하고, 자신의 디지털화 프로젝트에 유용한 아이디어를 얻었다는 이야기를 들으니 뿌듯하다.
이 글은 Reddit에서 좋은 반응을 얻었지만 Hacker News에서는 주목받지 못했다. 아직 Hacker News에서도 기회가 있다고 생각해 일주일 정도 후에 다시 시도해 볼 예정이다.
통계
Is It Keto
| 지표 | 2020년 4월 | 2020년 5월 | 변화 |
|---|---|---|---|
| 순 방문자 | 35,451 | 50,352 | +14,901 (+42%) |
| 총 페이지뷰 | 72,894 | 99,391 | +26,497 (+36%) |
| 도메인 레이팅 (Ahrefs) | 27.0 | 27.0 | 0 |
| AdSense 수익 | $92.09 | $109.92 | +$17.83 (+19%) |
| Amazon 제휴 수익 | $128.39 | $111.61 | -$16.78 (-13%) |
| 총 수익 | $220.48 | $221.53 | +$1.05 (+0%) |
Is It Keto의 방문자 수는 계속 증가했다. 코로나 이전의 정상 수준을 회복한 것으로 보인다. 걱정스러운 점은 AdSense 수익이 증가세를 따라가지 못했고, Amazon 제휴 수익은 오히려 감소했다는 것이다.
통계를 자세히 살펴보니, Is It Keto는 5월에 4월보다 Amazon에 25% 더 많은 매출을 안겨줬지만, Amazon이 제휴 수수료율을 대폭 인하하면서 Is It Keto의 수익이 크게 줄었다.
Is It Keto 독자를 더 적극적으로 활용하기
몇 주 전 Justin Vincent가 연락을 해왔다. 그는 연쇄 창업가이자 The Nugget Startup Academy의 창업자다. 내 블로그를 즐겨 읽었다며 Is It Keto의 수익화 아이디어를 함께 브레인스토밍할 Zoom 통화를 제안했고, 나는 수락했다. 그 대화에서 사업에 대한 유용한 인사이트를 여러 가지 얻을 수 있었다.
가장 먼저 놀랐던 점은 Justin이 Is It Keto의 방문자 통계를 매우 높게 평가했다는 것이다.
Justin: 주간 순 방문자가 얼마나 되나요?
Me: 1만 명 정도요.
Justin: 와, 금광 위에 앉아 계시네요.
인기 있는 키토 레시피 블로그는 월 순 방문자가 약 300만 명이라, 내 4~5만 명은 아무것도 아닌 것처럼 느껴졌다. Justin은 제품을 출시할 때 가장 어려운 부분 중 하나가 관심 있는 고객을 찾는 것인데, 매주 키토에 관심 있는 1만 명에게 접근할 수 있다는 것 자체가 엄청난 이점이라고 주장했다.
Justin: 기존 키토 커뮤니티를 보면 사람들이 어떤 어려움을 겪는 것 같나요? 자주 언급되는 문제가 뭔가요?
Me: 잘 모르겠어요. 대부분 사람들이 진행 상황을 공유하고 다른 회원들이 축하해 주는 이야기가 주를 이루는 것 같아요.
Justin: 서로 축하해 준다… 흥미롭네요. wip.chat이라는 곳을 아시나요?

wip.chat, 독립 소프트웨어 개발자를 위한 인기 소셜 네트워크
wip.chat은 인디 개발자를 위한 인기 소셜 네트워크다. 비회원도 일부 콘텐츠를 볼 수 있지만, 글을 올리려면 회원이 되어야 하며 비용은 월 20달러다. wip.chat 커뮤니티가 프로젝트 마일스톤에 대해 책임감을 갖도록 도와 제품 개발을 돕는다는 것이 이들이 내세우는 장점이다.
키토 버전의 wip.chat에 대해 이야기를 나눌수록 그 아이디어가 더 마음에 들었다. 내가 본 키토 관련 소셜 네트워크는 모두 Facebook 그룹, 서브레딧, Discord 채널 같은 범용 도구를 사용한다. 키토 식단을 하는 사람들을 위한 전용 도구가 있다면 어떨까? 그 후 일주일 동안 25가지 아이디어를 더 떠올려 봤지만, wip.chat 클론이 여전히 목록의 최상위에 있었다.
이번 주에는 이 가상의 키토 소셜 네트워크를 위한 랜딩 페이지를 만들고 Is It Keto에 홍보할 예정이다. 가입 버튼을 넣어두되, 사용자가 결제를 시도하면 “아직 사이트를 구축 중이지만, 메일링 리스트에 가입하면 준비되는 대로 알려드리겠습니다”와 같은 메시지를 보여줄 계획이다.
대화에서 나온 또 다른 훌륭한 인사이트는 파트너십에 관한 것이었다:
Justin: 멤버십 제품을 만들고 나면 다른 키토 업체들과 직접 파트너십이나 제휴를 맺을 수 있어요.
Me: 하지만 이미 방문자는 있는데, 왜 지금 당장 하지 않는 거죠?
Justin: 좋은 질문이에요. 왜 지금 하지 않겠어요?
그래서 외부인의 시각이 중요한 것이다. Is It Keto 초기에는 다른 키토 업체들에 제휴를 제안해 봤지만 규모가 너무 작아 대부분 무시당했다. 이제 월 페이지뷰 10만을 기록하는 Is It Keto는 파트너십을 추진할 만큼 충분히 커졌다. 오랫동안 불가능했던 일이라 그 생각을 다시 떠올리지 못했던 것이다. 그런데 AdSense를 통해 내 사이트에 광고하는 키토 업체에 직접 연락해 제휴를 제안하지 못할 이유가 뭐가 있을까?

Google AdSense를 거치지 않고 이 광고주와 직접 계약을 맺을 수도 있지 않을까.
Is It Keto 브라우저 성능 개선
Is It Keto를 운영하는 대부분의 기간 동안 성능은 뒷전이었다. 눈에 띄게 느려지는 요소가 있으면 가끔 고치긴 했지만, 속도를 염두에 두고 설계한 적은 거의 없었다.
사이트 방문자의 90%가 Google을 통해 유입되고, Google이 검색 결과 순위에 성능을 반영한다는 점을 고려해, 며칠 동안 Is It Keto의 병목 현상을 찾아봤다. Is It Keto 콘텐츠 생성에는 Gridsome 프레임워크를 사용하고 있는데, 이 글 덕분에 몇 가지 성능 개선을 이룰 수 있었다.
| 변경 내용 | 성능 영향 |
|---|---|
| Bootstrap-Vue와 Bootstrap-Vue-Icons 전체를 가져오는 대신 Bootstrap-Vue 컴포넌트를 개별적으로 불러오기 | 높음 |
| 정적 JSON 파일 크기를 줄이기 위해 Gridsome 데이터를 Vue 레이어가 아닌 graphql 레이어에서 필터링하기 | 높음 |
| Gridsome에서 동적 경로로 이미지를 불러오는 이 해킹 되돌리기 | 중간 |
CSS @import 대신 <link rel> 태그로 Google Fonts 불러오기 | 낮음 |
| 필요한 폰트만 다운로드하도록 Google Fonts URL 조정하기 | 낮음 |
HTML <head>에 Google Fonts용 preconnect와 dns-prefetch 추가하기 | 낮음 |
Google Fonts import URL에 ?display=swap 추가하기 (“Flash of Invisible Text” 방지) | 낮음 |
다들 JS 번들에서 용량이 큰 컴포넌트를 찾기 위해 webpack-bundle-analyzer를 사용하라고 한다. 그런데 실제로 어떻게 사용하는지에 대한 설명을 찾을 수 없어서 내가 이상한 건가 싶었다. 모든 설명이 대략 이렇게 말한다:
npm install webpack-bundle-analyzer- ???
- 브라우저에서 유용한 시각화 결과를 확인한다.
하지만 시각화를 실제로 어떻게 생성하는지는 아무도 설명하지 않는다. 마침내 빠진 2단계는 webpack-bundle-analyzer를 빌드에 연결하는 것이라는 걸 알게 됐다(스택에 따라 다르지만, Gridsome에서는 이 방법으로 할 수 있다). 다음에 앱을 빌드하면 다음과 같은 문구가 표시된다:
Webpack Bundle Analyzer saved report to /home/user/isitketo/dist/report.html
그리고 report.html을 열면 모두가 말하던 시각화를 볼 수 있다.
웹 성능은 생각보다 어렵다
Is It Keto는 원래 Python 2 기반 App Engine에서 운영됐다. 사이트에 다시 집중하기로 한 데다 Google이 Python 2 지원을 종료할 계획이라는 점이 겹쳐, 4월에 사이트를 다시 만들기로 결정했다. Vue 기반 정적 사이트 생성기인 Gridsome을 선택했다.
미리 렌더링된 웹사이트의 성능과 Vue의 유연한 개발 경험을 모두 얻을 수 있을 것 같았다. 하지만 웹 성능은 내가 생각했던 것보다 훨씬 복잡했다.
브라우저가 미리 생성된 HTML을 먼저 렌더링한 뒤 백그라운드에서 JavaScript를 평가할 거라고 생각했었다. 알고 보니 브라우저는 다른 어떤 작업보다 정말로 JavaScript를 먼저 평가하려 한다. Is It Keto에서는 <script> 태그가 HTML 맨 아래에 있고 defer 속성까지 달려 있는데도 성능 지표가 크게 떨어진다:
Is It Keto에서 <script> 태그를 제거하면 Lighthouse 점수가 40점이나 오르지만, 사이트가 제대로 작동하지 않게 된다.
몇 달 안에 출시될 Vue 3은 트리 쉐이킹 덕분에 성능이 개선될 예정이다. 사용하지 않는 프레임워크 코드를 제거해 JavaScript 페이로드 크기를 줄일 수 있다는 의미다. Gridsome 측은 1.0 릴리스가 Vue 3와 호환될 것이라고 주장하지만, 개발 리소스가 너무 부족해 보여 실제로 그렇게 되기까지 몇 년이 걸릴까 우려된다.
Raspberry Pi를 가상 키보드와 모니터로 활용하기
지난 몇 주 동안 취미 프로젝트를 하나 진행해 왔다. 사업이 될 것 같지는 않지만, 어쩌면 시장이 있을지도 모른다.
내 현재 서버는 헤드리스라 키보드나 모니터가 연결되어 있지 않다. SSH로만 접속한다. 문제는 OS가 로드되지 않거나 BIOS 설정을 바꾸고 싶을 때 꼼짝없이 갇히게 된다는 것이다. 서버 전체를 책상으로 끌고 와 데스크톱 모니터와 키보드를 연결해야 접속할 수 있다.
다음 서버에는 가상 콘솔 같은 걸 달고 싶었다. Dell iDRAC나 HP iLO 같은 엔터프라이즈 솔루션이 있지만 서버 가격에 수백 달러가 추가된다. KVM over IP 장치도 있지만 400달러가 넘고 무거운 클라이언트 소프트웨어가 필요하다.
지난 몇 주 동안 Raspberry Pi 4로 가난한 사람 버전의 원격 콘솔을 만들어 보려고 했다. 키보드 부분은 네트워크를 통해 훌륭하게 작동한다:
Raspberry Pi를 브라우저로 제어하는 키보드로 동작시키는 데 성공했다
대상 머신의 영상을 표시하는 건 더 까다롭지만, 이제 약 1초의 지연 시간으로 동작한다. 모습은 다음과 같다:
Raspberry Pi를 브라우저로 제어하는 키보드로 동작시키는 데 성공했다
현재 영상은 별도 창에 표시되지만, 웹페이지에 직접 임베드하는 작업을 진행 중이다.
모든 내용을 더 자세히 설명하는 블로그 글을 작성 중이지만, 미리 소스 코드를 보고 싶다면 공개되어 있다. 아직 문서화가 완전히 되지는 않았다:
- key-mime-pi: 키 입력을 Raspberry Pi 가상 키보드 장치로 전달하는 웹 서버.
- ansible-role-key-mime-pi: Pi의 USB 가젯 기능(키보드를 흉내 내기 위한)을 구성하고 웹 서버를 systemd 서비스로 설치하기 위한 Ansible 롤.
약 180달러에 사전 구성된 키트를 판매하는 것을 고려 중이다. 구매에 관심이 있다면 다음을 방문하길 바란다:
기존 프로젝트
아직 유지보수하고 있지만 현재 주력 개발 대상은 아닌 프로젝트들의 간략한 업데이트는 다음과 같다:
Zestful
| 지표 | 2020년 4월 | 2020년 5월 | 변화 |
|---|---|---|---|
| 순 방문자 | 1,142 | 467 | -675 (-59%) |
| 총 페이지뷰 | 2,960 | 1,258 | -1,702 (-57%) |
| RapidAPI 수익 | $32.19 | $6.48 | -$25.71 (-80%) |
| 총 수익 | $32.19 | $6.48 | -$25.71 (-80%) |
어째서인지 Zestful은 5월에 관심이 급증했다. 세 고객이 엔터프라이즈 요금을 문의했다. 그중 두 곳은 성사 가능성이 낮아 보이지만, 세 번째 고객과는 잘 맞을 수도 있다. 이번 주말이 지나면 결과가 어떻게 될지 알 수 있을 것이다.
마무리
무엇을 해냈나?
- Is It Keto의 글 수를 40% 늘렸다.
- Is It Keto의 Lighthouse 성능을 43점 개선했다(4점에서 47점으로).
- 동료 멘토링 그룹에서 “How to be a Sort of Successful Blogger”라는 발표를 했다.
배운 점
- 미리 렌더링된 Vue 사이트도 여전히 상당한 성능 비용을 치른다.
- 사업에 대해 새로운 사람과 이야기하면 자신의 가정을 재점검하는 데 도움이 된다.
다음 달 목표
- Is It Keto의 자매 제품 아이디어 검증하기.
- Is It Keto에 새 글 30개 추가하기.
- 웹 브라우저로 제어할 수 있는 Pi 기반 KVM over IP 시제품 만들기.
글을 무작위로 읽기


댓글
로그인하고 댓글 남기기