노트: 문서 커뮤니티를 위한 월간 해시태그 보고서
요약
오픈 소스 프로젝트의 커뮤니티 동향을 파악하기 위해 매달 해시태그 데이터를 수집하고 분석하는 프로세스를 기록한 노트입니다. Instaloader, Graph API, 호스팅된 브라우저 도구의 장단점을 비교하며 현재 사용 중인 스크래핑 도구의 효율성을 설명합니다.
핵심 포인트
- 커뮤니티 동향 파악을 위한 월간 해시태그 모니터링 프로세스 구축
- 데이터 수집 도구로서 Instaloader, Graph API, AllyHub 스크래퍼 비교
- 데이터 수집 후 pandas를 활용한 자동화된 보고서 생성 절차
- 개인정보 보호를 위해 집계된 수치(Aggregate figures)만 사용
제가 매달 오픈 소스 프로젝트를 위해 작성하는 커뮤니티 동향 보고서(community pulse report)를 위한 내부 노트입니다. 우리는 사람들이 프로젝트에 대해 어디에서 이야기하고 있는지, 어떤 콘텐츠 형식(content formats)이 실제로 확산되는지 확인하기 위해 소수의 해시태그 세트를 모니터링합니다. 4주마다 기억에 의존해 프로세스를 다시 구축하는 일을 방지하고, 제 뒤를 잇는 사람이 아무런 정보 없이 시작하지 않도록 이 과정을 기록해 둡니다.
보고서에 필요한 사항
- 추적된 해시태그별 게시물 수 (이전 두 달과 비교)
- 참여도(engagement) 기준 상위 15개 게시물 — 공개 계정만 포함
- 대략적인 키워드 빈도 분석을 위한 캡션(Caption) 텍스트
- 형식별 분류 (이미지 / 캐러셀(carousel) / 릴스(reel))
- 특정 개인을 식별할 수 있는 정보는 포함하지 말 것. 집계된 수치(Aggregate figures)만 사용.
지루하게 유지하고 비교 가능하게 유지하세요. 가치는 단일 숫자가 아니라 월간 변동 추이(month-over-month line)에 있습니다.
테스트된 옵션들
- Instaloader (Python). 좋은 라이브러리이고, 문서(docs)도 읽기 쉬우며, 한동안 제 역할을 다했습니다. 하지만 한 분기 동안 두 번이나 작동이 중단되었습니다. 한 번은 로그인 챌린지(login challenge) 때문이었고, 다른 한 번은 속도 제한(rate limits)이 강화되었는데 제 루프(loop)가 너무 탐욕적이었기 때문입니다. 가끔씩 유지보수를 위해 저녁 시간을 할애하는 것을 즐긴다면 완벽하게 괜찮습니다. 저는 세 번째 패치(patch) 즈음부터 그것을 즐기지 않게 되었습니다.
- 공식 Graph API. 승인된 경로이며, 조건이 맞는다면 정답입니다. 하지만 우리에게는 맞지 않습니다. 해시태그 검색이 관리 중인 비즈니스 계정 및 좁은 최근 기간으로 제한되어 있어, 이 보고서가 의존하는 역사적이고 교차 계정적인(cross-account) 뷰를 얻을 수 없습니다. 원칙의 문제가 아니라 기능(capability)의 문제로 제외되었습니다.
- 호스팅된 브라우저 도구 — 현재 선택 사항. AllyHub의 Instagram hashtag scraper를 사용 중입니다. 제 로그인 세션 내에서 확장 프로그램(extension)으로 실행되며 CSV로 내보내기 때문에, 제가 계속 유지해야 할 프록시(proxy)나 세션 파일이 없습니다. 해시태그당 첫 실행 시 페이지를 학습하는 동안 약간 느려지지만, 그 이후에는 설정이 저장되어 클릭 한 번으로 재실행할 수 있습니다.
제가 별도의 조치를 취하지 않았음에도 6월에 진행된 프로필 페이지 리디자인(redesign)을 문제없이 통과했습니다. 즉, 제가 지난 봄에 작성했던 셀렉터 (selector) 대신 라이브 페이지를 직접 읽어온다는 뜻이며, 이것이 바로 이 도구가 다른 두 도구와 달리 여전히 이 목록에 남아 있는 구체적인 이유입니다.
월간 절차 (Monthly procedure)
- 추적 중인 각 해시태그에 대해 수집 (collection)을 실행합니다. 전체 과정에 약 15분 정도 소요됩니다. 커피 한 잔 마시며 하기에 적당합니다.
- 내보낸 CSV 파일들을
data/YYYY-MM/폴더에 넣습니다. make report를 실행합니다 (pandas 스크립트는 리포지토리 (repo) 내에 있습니다).- 상위 게시물 (top-posts) 테이블을 눈으로 훑으며 명백하게 잘못 파싱 (misparsed)된 것이 있는지 확인합니다. 중복된 행, 의심스러울 정도로 딱 떨어지는 좋아요 수를 가진 릴스 (reel) 같은 것들 말입니다.
- 보고서를 메일링 리스트 (mailing list)로 발송합니다.
- 보고서가 발송되면 원본 캡션 (caption) 데이터를 삭제합니다. 집계 데이터 (aggregates)만 유지합니다.
준수 규칙 (Rules we follow)
- 공개 데이터만 사용하며, 우리 프로젝트의 해시태그를 사용하여 게시물을 올리는 계정만 대상으로 합니다.
- 요청 볼륨 (request volume)을 낮게 유지합니다. 이것은 월간 상태 점검 (pulse check)이지, 감시 (surveillance)가 아닙니다.
- 보고 기간 이후에는 개인 데이터를 보유하지 않습니다. 6단계를 확인하세요, 이는 선택 사항이 아닙니다.
- 매 분기 플랫폼의 서비스 약관 (ToS)을 다시 읽습니다. 규칙이 바뀌면 절차도 그에 따라 바뀝니다.
- 특정 항목이 보고서에 포함되어야 하는지 의문이 든다면, 제외하십시오.
미결 질문 (Open questions)
- 수집 실행 시마다 릴스 (Reel) 참여도 (engagement) 수치가 일관되지 않아 보입니다. 릴스 트렌드 라인 (trend line)을 신뢰하기 전에 몇 개의 알려진 게시물과 대조하여 검증하십시오.
- 다섯 개의 해시태그 중 하나는 이제 거의 노이즈 (noise) 수준입니다. 대부분 관련 없는 게시물들입니다. 다음 달에 제외하는 것을 고려하십시오.
- 4단계를 자동화할 것인가? 아니오 쪽으로 기울고 있습니다. 수동으로 눈으로 확인하는 과정에서 단순한 체크로는 그냥 지나쳤을 잘못된 내보내기 (exports) 사례를 두 번 잡아냈습니다. 저렴한 보험인 셈입니다.
- 지난달 상위 게시물과 간단한 차이점 (diff)을 추가하여, 반복적으로 성과가 좋은 게시물을 쉽게 식별할 수 있게 할 가치가 있을까요? 아마도요. 우선순위는 낮습니다.
메모 (Notes to self)
현재 이 보고서 전체를 작성하는 데 약 90분이 소요되며, 그중 대략 3분의 2는 작성 및 해석에 해당합니다. 이 부분이 바로 가치 있는 작업입니다. 데이터 수집 (collection)에 20분 이상이 소요되기 시작한다면, 상류 (upstream) 단계에서 무언가 변화가 생긴 것이므로 그냥 밀고 나가기보다는 잠시 멈춰서 살펴보는 것이 가치가 있습니다. 과거의 제가 비싼 대가를 치르며 배운 사실입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기