프로젝트 목표
SNS 및 지피터스에 게시할 콘텐츠를 제작할 때, SEO에 최적화되어 검색 노출이 잘 되고 유저들이 실제로 많이 읽는 양질의 콘텐츠를 생성하는 것을 목표로 프로젝트를 시작했습니다.
이를 위해 기존 게시물 중 성과가 좋은 콘텐츠를 학습하고, 이를 바탕으로 새로운 콘텐츠 작성 시 활용할 수 있는 지침(가이드)을 제공하는 기능을 개발하고자 하였습니다.
본 기능을 통해 콘텐츠 발행이 필요한 마케터와 에디터는, 글을 정제하고 구조화하는 데 소요되는 노력과 시간을 크게 줄일 수 있을 것이라 기대합니다.
진행 과정
목표 설정
‘잘 쓴 글’에 대한 기준은 매우 모호합니다.
어떤 사람에게는 읽기 쉽고 가벼운 글이 좋은 글일 수 있지만, 다른 사람에게는 깊이가 부족하게 느껴질 수 있습니다.
또한 문장이 수려한 콘텐츠가 반드시 SEO 관점에서 좋은 성과를 내는 것은 아닙니다.
따라서 이번 프로젝트에서는 이 프로젝트를 시작한 목적, 즉 글을 통해 유입량을 늘리는 것을 ‘잘 쓴 글’의 기준으로 설정하였습니다.
이를 정량적으로 판단하기 위해 다음 두 가지 지표를 기준으로 삼고자 합니다.
Mixpanel 기 준
Post_viewed이벤트 발생 수실제로 콘텐츠가 얼마나 많이 조회되었는지를 확인
Google Search Console 기준 검색 노출 수 및 클릭 수
검색 결과에서 콘텐츠가 얼마나 노출되었고, 실제 클릭으로 얼마나 이어졌는지를 측정
그 과정을 클로드코드에게 부탁하여 지침을 만들어달라고 했습니다. ultrathink 기능을 썼습니다.
이렇게 각 항목별로 제가 준비할 수 있는 것을 물어보는데 좋았습니다.
데이터 분석 시작
지피터스 홈페이지에서 값을 가지고 오기 위해 clade code가 sitemap에 접근하였습니다. 저는 여기서 /post/ 가 들어간 항목을 찾으라고 지침을 업데이트 하였습니다.
이 url 기준으로 믹스패널과 GSC의 데이터를 갖고 오게 됩니다.
Mixpanel 무료 플랜 사용 시에는 API 호출에 제한이 존재합니다.
처음에는 Claude가 무료 플랜 환경에서는 API를 통해 데이터를 가져올 수 없다는 안내만 제공하였습니다.
다만, 과거 프로젝트에서 Mixpanel 데이터를 문제없이 활용했던 경험이 있어, 해당 프로젝트의 Git 저장소를 찾아 당시 데이터를 어떻게 수집했는지 확인해 보았습니다.
확인 결과, 당시에도 Claude가 무료 플랜이었으며, Mixpanel의 CSV Export 기능으로 데이터를 다운로드한 뒤 Python 스크립트를 통해 가공 및 활용하고 있었습니다.
이러한 배경을 바탕으로 다시 Claude에게 요청하자, 동일한 방식(CSV Export + Python 스크립트)으로 문제없이 작업을 진행할 수 있었습니다.
추후에는 이와 같은 제약 사항과 대응 방법을 MD 파일로 정리하여 지침으로 남길 예정입니다.
평가 기준 정의
본 프로젝트 에서 가장 어려웠던 부분은 평가 기준을 정의하는 과정이었습니다.
앞서 ‘잘 쓴 글’의 기준을
Mixpanel 기준
Post_viewed이벤트 발생 수,Google Search Console 기준 검색 노출 수 및 클릭 수
로 설정하였으나, 이를 정량적인 점수 체계로 환산하는 작업은 또 다른 난관이었습니다.
우선 각 지표에 어떤 비중(가중치)을 부여할지를 결정해야 했습니다.
1. 지표별 가중치 설정
최종적으로 Mixpanel 조회 수에 60점, 쿼리 관련도 점수에 40점의 가중치를 부여하였습니다.
검색 유입도 중요하지만, 홈페이지 내에서 실제로 활동 중인 유저들의 조회까지 포함하는 조회 수 지표가 콘텐츠의 전반적인 성과를 더 잘 반영한다고 판단했기 때문입니다.
2. 쿼리 점수 산정 방식 고도화
다음으로는 검색 쿼리에 대한 점수를 어떻게 산정할 것인지를 고민하였습니다.
단순히 노출비치거나 클릭된 횟수만 보는 것이 아니라, 해당 쿼리의 ‘인기도’ 또한 함께 반영해야 한다고 판단했습니다.
예를 들어, 콘텐츠 작성 시점에 ‘SEO 최적화’라는 키워드가 검색 결과에서 높은 노출과 유입을 보이고 있다면,
해당 키워드를 포함한 콘텐츠는 추가적인 가점을 받는 것이 합리적하다고 보았습니다.
이에 따라 쿼리 인기도 를 기반으로 가중치를 부여하는 로직을 추가하게 되었습니다.
(이렇게 생각을 계속 하다보니 점점 복잡해지긴 하더라구요)
그 결과 아래와 같은 점수표가 생겼습니다
게시글의 믹스패널 상의 조회 수와 구글 서치콘솔 기반의 노출, 클릭, 클릭률 데이터
그리고 해당 기간에 해당 글로 유입된 쿼리의 갯수가 몇 개인지 등등의 데이터가 한번에 나오며 이 부분들이 점수화되어 Q열에 표기 되었습니다.
하지만 여기서도 오류가 좀 있었습니다.
클로드의 작업이 길어지다보니 애가 몇가지를 계속 놓치는 느낌이었습니다. (이때 까지 작업이 약 7~8 시간 정도 걸렸던 것 같고 - 토큰이 멈추는 거 대기하면서 하느라 실제론 더 걸렸구요. compact 를 하면서 진행해도 계속 이 점수화 로직를 고치면서 컨텍스트가 길어지고 꼬인 것 같습니다.)
제가 원했던 것은 게시물이 업로드 된 시점으로 부터의 d 28 동안의 조회 지표였는데, 내가 결과를 조회한 시점으로 부터의 최근 28일의 데이터를 갖고 오더라구요.
그래서 이 부분을 고쳐 달라고 요청했습니다.
그랬더니 너무 오래 걸리는 작업.
제 요청사항을 해결하려면 각 게시물마다 다른 기준의 지표를 적용 해야 하는데 그게 현실적으로 어려웠나 보아요.
최근 6주의 게시물에 대한 스코어를 내어 달라고 했는데, 55분을 기다려도 완료되지 않았습니다.
그래서 현실적으로 이 방법은 어렵다고 판단하였습니다.
다시 점수화를 간소화
그래서 좋은 글을 평가하는 점수 기준은 믹스패널 기준의 조회 수 위주로만 판단하기로 하였습니다.
그 다음 게시물 생성을 위해 지침을 만들 때, 높은 점수의 게시물을 쿼리를 분석하여 관련 정보를 반영하여 요청하는 것으로 제가 원래 한번에 하려고 했던 것을 나누어 진행해야겠다고 생각하였 습니다.
그래서 결국 아래와 같은 예시 파일이 완성되었습니다.
다시 반복되는 오류
그런데 이렇게 보니 또 게시물읠 게시한 뒤 14일 동안의 조회 수가 아닌 진행 시점의 14일로 계산된 테이블을 주더라구요.
아마도 제가 작업을 오래하면서 여러 지침이 꼬이게 된 것 같습니다.
(이렇게 생각을 계속 하다보니 점점 복잡해지긴 하더라구요)
일단 현재 작업은 여기 까지의 시행착오를 거쳤고, 이제 어떻게 착수 해야 하는 지 명확해진 것 같습니다.
✨그래서 아예 이 프로젝트를 싹 밀고 새롭게 진행을 해보려고 합니다.
잡업 결과 및 성과
이번 사례 글을 준비하는 과정은 결국 프로젝트 완성 실패로 끝나게 되었습니다.
이 과정속에서 그래도 믹스패널의 데이터를 불러오는 방법을 명확하게 알게 되었고, 데이터를 점수화하는데 어떤 식으로 접근하는게 효율적이고 현실적인지까지 정의가 된 것 같아서 다음에 진행하는 것은 더 빠를 것 같네요.
제일 중요한 교훈
** 믹스패널 데이터 를 무료 플랜 이용 중이지만 API와 같이 자동화하여 활용하는 방법
아래와 같은 명령 실행
CSV Export 방식 채택 (Mixpanel UI는 무료 플랜에서도 export 가능)
다음에는 위 과정을 빠르게 재 진행 후 우수한 게시물에서 어떤 지침을 뽑아낼 수 있는지 고민해보겠습니다.