
Notion SDK 연동으로 데이터베이스에 피드백 저장
확장프로그램에 리뷰 받는 기능을 만들어보자
썸네일
사실 더 추가 할만 한 기능 아이디어는 더 없지만 가끔 들어가서 사용자 늘어있는지 보는 재미가 있는 내 확장프로그램 Storyhelper..
유저 수가 꾸준하게 우상향하고 있는데 리뷰를 받고 피드백을 기반으로 개선해보는 경험이 하고 싶어서 리뷰를 어떻게하면 장려해볼 수 있을까 고민했다.
리뷰 장려 팝업 구현하기
우리가 여러 프로그램이나 서비스를 사용하다보면 가끔 리뷰를 요청하는 문구와 함께 팝업창이 뜨는 것을 자주 볼 수 있다. 개인적으로는 바로 꺼버리는 스타일이긴 하지만 그런 팝업이 자주 보이는데에는 모두 이유가 있을 것이라고 생각하고 구현해보기로 결정했다.
리뷰를 남겨주세요
고려했던 점
무턱대고 리뷰를 요청하는 것은 오히려 프로그램 삭제의 이유가 될 수 있을 것이라고 생각해서 아래의 사항을 지키자고 먼저 정해두고 시작했다.
- 사용자가 긍정적인 경험을 한 직후
- 생산성 프로그램이기 때문에 블로그 글 작성을 방해하지 않는 경험
사용자가 긍정적인 경험을 한 시점이 언제일까 생각을 해봤을 때 SEO 검증 기능 사용이나, 새 글 발행 성공 등의 시점이 있을 것이라고 생각했다.
그래서 첫 번째 리뷰 장려 기능은 SEO 검증이 5번 성공했을 시점에 팝업 형식으로 띄워주는 것으로 결정했다.
구현은 간단하게 이루어졌다. Extension Storage에 seo 검증 횟수와 리뷰 여부, 나중에 버튼 눌렀을 때 7일 이후 다시 뜨게 하기 위한 timestamp 이렇게 3가지 데이터를 저장했다. 사용자가 처음으로 SEO 검증 5번을 마치면 그때 팝업 창으로 오른쪽 아래에 띄워주는 방식이다.
리뷰 요청 팝업
이 경로로 웹스토어 리뷰가 하나로 늘어난다면 아주 좋을 것 같다.. 아주..
삭제 피드백 수집 경로 구현하기
웹스토어에서 통계를 보면 확장프로그램 설치와 삭제 비율이 6:1 정도로 보인다.
설치 수
제거 수
삭제하는 유저들의 피드백을 들어서 개선해보면 좋겠다고 생각했고, 앞서 이야기했던 리뷰처럼 확장프로그램을 삭제했을 때 특정 URL로 이동해서 삭제 근거에 대한 피드백을 수집하도록 만들고 싶었다.
가장 쉬운 방법은 Google Form을 사용해서 수집하는 것이었지만, 개발자로서 내키지 않았기 때문에 고려하지 않았다.
그 다음으로 생각한 것은 랜딩페이지 개발이었다. 확장프로그램을 소개하는 페이지를 만들면서 거기에 피드백 수집하는 기능을 추가하는 것이었다. 확장프로그램 소개 자체는 웹스토어에서 볼 수 있지만, Claude Code를 활용해서 쉽게 만들 수 있었기 때문에 그냥 만들기로 결정했다ㅋㅋ..
만드는 김에 이 블로그 도메인의 서브도메인을 만들어서 도메인도 지정해두는 것도 재밌을 것이라고 생각했다.
chrome.runtime.setUninstallURL('https://storyhelper.shipfriend.dev/feedback') 이 한 줄만 추가해서 확장프로그램을 삭제할 때 특정 URL로 이동시키는 동작을 추가할 수 있었다.
만든 화면
랜딩페이지 메인
Claude Code를 몇 번 써보고 나서 느낀 점은 기획문서를 대충이라도 잡아두고 가면 결과물이 확연하게 달라진다는 점이다. 이번에도 마찬가지로 프로그램 설명과 로고를 기반으로 하는 디자인 시스템을 문서화해두고 시작했다.
💬: ~~링크(확장프로그램 웹스토어, 개인블로그에 작성된 가이드문서) 등을 읽고 이 확장프로그램에 대한 랜딩페이지 기획 문서를 루트 디렉토리에 생성
💬: 이 로고를 기반으로 디자인 시스템 문서 생성 -> Sage Green 기반으로 잘 만들어줌
피드백 받는 화면
피드백을 받는 폼도 다른 route에 만들어두었다. 여기서 피드백을 수집할 수 있게 구현했다.
피드백 폼
피드백 데이터 저장하는 곳 결정하기
피드백 수집 완료
피드백 데이터를 수집까지는 완성했다. 그렇다면 수집된 데이터를 쌓는 곳을 결정해야한다. 데이터를 저장하는 방법에는 여러가지가 있다. DB, 구글시트, 파일 등등 많은 소스들이 있지만 이 중에 결정한 것은 Notion 이었다.
Notion에 데이터를 어떻게 쌓아?
Notion의 개발자 센터 페이지에 들어가면 API 키를 발급 받을 수 있다. 다행히 무료였다.. 🙈
노션 API Integration
여기서 잘 설정해주면 노션의 특정 워크스페이스의 특정 페이지의 특정 데이터베이스에 데이터를 쌓거나 편집하거나 읽기가 가능하다!!
notion에서 제공하는 sdk를 사용하면 쉽게 사용이 가능하다. 공식문서에서 확인 가능하다.
이렇게 수집된 피드백 데이터는 노션 데이터베이스에 저장하도록 했다. 유저 수가 천 단위가 아니기 때문에 DB를 쓰는 건 오버엔지니어링이었기 때문에 이렇게 결정했는데 실시간으로 데이터가 쌓이는게 보이니까 재미있다.
데이터베이스에 쌓이는 피드백들
마지막으로
요즘 블로그 생태계가 AI로 도배 되어가는 분위기라 이런 생산성 확장프로그램에 관심을 갖는 사용자가 있을지는 모르겠으나 도움이 되면 좋겠다. 본인은 아주 유용하게 썼기 때문에..
