무색
기술블로그
에세이
연구
소개

무색

소프트웨어로 비즈니스의 가능성을 만듭니다. 웹·앱 개발, 음성 AI, 자동화 콘텐츠 제작까지 — 기술이 필요한 곳에 무색이 있습니다.

연락처

contact@museck.com

사업자 정보

상호: 무색

대표: 배성재

사업자등록번호: 577-58-00836

인천광역시 연수구 인천타워대로 323, 에이동 8층 801-802호 AB-132 (송도동, 송도 센트로드)

© 2026 무색. All rights reserved.
개인정보처리방침·이용약관·연락처
INCHEON, KR
pytrends 호환 문제와 애드센스 결정 — generative 키 비주얼
📊 검색 트렌드 분석
2026. 3. 5.

20개 아이디어를 검토하고 신규 개발 0건으로 결론 내린 이야기

도구를 만들고 싶은 충동과, 도구가 정말 필요한 상황은 다르다.

애드센스 블로그를 기획하면서 검색 트렌드 분석 라이브러리를 실전에 투입했다. 그 과정에서 pytrends의 urllib3 호환 문제를 고쳤고, 동시에 "앞으로 뭘 더 만들어야 하나"를 정리했다. 결론부터 말하면, 20개 아이디어를 검토한 결과 신규 개발 0건이었다.

pytrends가 깨졌다

검색 트렌드 라이브러리를 애드센스 블로그 키워드 분석에 쓰려는데, GoogleClient가 에러를 뱉었다. urllib3가 2.x로 올라가면서 retries 파라미터의 처리 방식이 바뀌었는데, pytrends 4.9.2가 이를 따라가지 못한 것이다.

수정은 간단했다.

# 수정 전: urllib3 2.x에서 에러
self._pytrends = TrendReq(hl="ko", tz=540)

# 수정 후: retries=0으로 설정, 자체 재시도 로직 사용
self._pytrends = TrendReq(hl="ko", tz=540, retries=0)

덤으로 trending_searches() 기능도 불안정하다는 걸 확인하고 CLI에서 제거했다. 비공식 라이브러리에 의존할 때는 쓰는 기능의 범위를 최소한으로 줄이는 게 답이다.

20개 아이디어, 0개 신규 개발

pytrends 문제를 고치면서 애드센스 블로그의 전체 워크플로우를 정리하게 됐다. 키워드 발굴부터 콘텐츠 작성, 발행, 트래킹, 최적화까지 8단계를 나열하고, 각 단계에 이미 가지고 있는 도구를 매핑했다.

결과는 예상 밖이었다. 그동안 쌓아둔 아이디어가 20개쯤 있었는데, 하나하나 따져보니 상황이 이랬다.

  • 이미 구현 완료: 4개 (search-trend 라이브러리, n8n 워크플로, Umami 트래킹, Claude Code 에이전트)
  • 기존 도구 조합으로 해결: 11개
  • 불필요 판정: 5개

신규 개발이 필요한 항목은 "사이트 코드" 하나뿐이었고, 그것조차 새 도구가 아니라 기존 프로젝트의 코드 작성이었다.

왜 이런 결론이 나왔나

개발자의 본능은 "이거 자동화할 수 있겠는데?"라고 생각하면 바로 코드를 짜기 시작하는 것이다. 나도 그랬다. 키워드 분석 도구, 콘텐츠 스코어링 도구, 자동 발행 파이프라인... 아이디어 목록은 계속 늘어났다.

그런데 워크플로우를 8단계로 나누고 기존 도구를 매핑하는 순간, 빈 칸이 거의 없었다. 검색 트렌드 분석은 이미 만든 라이브러리가 하고, 콘텐츠 생성은 Claude Code가 하고, 발행은 PayloadCMS MCP가 하고, 트래킹은 Umami가 하고, 배포는 ArgoCD가 한다.

"아이디어 포트폴리오"에 "애드센스 필요도" 열을 추가해서 각 아이디어를 재평가한 것도 도움이 됐다. 멋져 보이는 도구와 실제로 필요한 도구는 다르다. 도구를 만드는 건 재밌지만, 도구를 만드느라 실제 블로그 콘텐츠를 못 쓰면 본말이 전도된다.

배운 것

이번 경험에서 얻은 교훈은 두 가지다. 첫째, 비공식 라이브러리에 의존할 때는 사용하는 기능의 범위를 최소한으로 줄여야 한다. pytrends의 시계열 조회는 괜찮지만 trending_searches는 언제 깨질지 모른다. 둘째, 새 도구를 만들기 전에 기존 도구의 조합으로 워크플로우를 커버할 수 있는지 먼저 매핑해봐야 한다. "뭘 만들까"보다 "뭘 안 만들어도 되는지"를 먼저 확인하는 습관이 시간을 절약해준다.

돌이켜보면 pytrends 호환 문제를 고치는 데 걸린 시간보다, 20개 아이디어를 정리해서 "안 만들어도 된다"는 결론을 내리는 데 들인 시간이 더 가치 있었다.

자주 묻는 질문

pytrends urllib3 2.x 호환 문제의 해결법은?

TrendReq 생성 시 retries=0으로 설정하고, 자체 재시도 로직을 구현한다. trending_searches 같은 불안정한 기능은 사용하지 않는 것이 안전하다.

기존 도구만으로 충분한지 어떻게 판단했나?

애드센스 블로그의 8단계 워크플로우(키워드 발굴, 분석, 기획, 작성, 발행, 배포, 트래킹, 최적화)를 나열하고, 각 단계에 이미 있는 도구를 매핑했다. 빈 칸이 없으면 신규 개발이 불필요하다.

자주 묻는 질문

pytrends urllib3 2.x 호환 문제의 해결법은?
TrendReq 생성 시 retries=0으로 설정하고, 자체 재시도 로직을 구현한다. trending_searches 같은 불안정한 기능은 사용하지 않는 것이 안전하다.
기존 도구만으로 충분한지 어떻게 판단했나?
애드센스 블로그의 8단계 워크플로우(키워드 발굴 → 분석 → 기획 → 작성 → 발행 → 배포 → 트래킹 → 최적화)를 나열하고, 각 단계에 이미 있는 도구를 매핑했다. 빈 칸이 없으면 신규 개발이 불필요하다.
📊 검색 트렌드 분석(2/2)
Prev

네이버 + 구글 트렌드를 하나로 묶는 Python 라이브러리를 만들었다