← 목록으로

구글 서치 콘솔 데이터로 벡터 데이터베이스를 만들었을 때 배운 점: SQL과 벡터DB의 역할

SEOmetehanai.substack.com조회수 082일 전

핵심

저자가 구글 서치 콘솔 데이터를 로컬 벡터 데이터베이스(ChromaDB)로 구축한 결과, SQL과 벡터DB가 상보적인 역할을 한다는 점을 발견했다. 이 도구는 오픈 클로(OpenClaw) AI 에이전트의 분석 계층으로 작동한다.

배경: 왜 이 도구를 만들었나

데이터 처리 파이프라인

  1. 데이터 수집: GSC API에서 16개월치 데이터를 다운로드. 실제 트래픽이 있는 사이트라면 수백만 행.
  2. 집계 및 트렌드 감지 (가장 핵심 요소)
    • 원본: 같은 쿼리-페이지 조합마다 50개 이상의 일일 행
    • 처리 후: 예를 들어 "/blog/seo-audit/"의 "seo audit checklist" → 하나의 문서로 통합
    • 내용: 16개월간 4,200 클릭, 평균 순위 3.2, CTR 4.8%, 최근 4주가 이전 12주보다 악화된 하락 추세
    • 트렌드 분류가 전체 프로젝트에서 가장 유용한 기능
  3. 임베딩: 768차원의 Gemini 임베딩 모델을 사용하여 문서를 ChromaDB에 저장
  4. 쿼리 및 분석
    • 영문으로 질문 입력 → 벡터DB가 관련 문서 검색 → LLM이 SEO 전문가 시스템 프롬프트로 분석
    • 모델 옵션: Gemini Flash(빠르고 무료), Grok 4.1(200만 토큰 컨텍스트로 50개 대신 400개 문서 처리 가능), Claude Opus(전략적 추천 제공)
  5. 경쟁사 분석: Parallel.ai가 실제 웹 페이지를 스크래핑하여 지표뿐 아니라 실제 콘텐츠를 비교 ("CTR이 낮다" → "경쟁사는 비교 테이블, FAQ, 원본 데이터를 보유하고 있다")

벡터DB vs SQL: 각각의 강점

벡터DB의 약점 — 수치 쿼리에는 부적합

벡터DB의 강점 — 의미 기반 탐색

아키텍처 선택지와 이상적인 조합

검토했던 세 가지 접근법

  1. 벡터 데이터베이스 (선택한 방식): 탐색 분석에 최고의 가치
  2. GSC MCP 서버 (AI 에이전트용 실시간 API 접근)
    • 빠른 조회에는 적합하지만 16개월 대규모 분석 불가
    • 모든 질문이 API 호출 → 레이트 제한 빠르게 도달
    • 경쟁사 페이지 크롤링 불가
  3. 순수 SQL 데이터베이스: 정확한 수치 리포트 필요 시 우수

이상적인 아키텍처

실제 워크플로우

역할 분담:

CLI 명령을 OpenClaw 스킬로 래핑하면

워크플로우 중 검색 데이터를 직접 쿼리할 수 있다. 모든 것이 로컬에서 실행되므로 아키텍처는 단순하다.

재설계 시 개선점

저자가 지금이라면 다르게 구축할 방식:

  1. 구조화된 메트릭은 DuckDB에 저장, 의미론적 콘텐츠(쿼리 텍스트, 페이지 주제, 콘텐츠 설명)만 벡터DB에 사용
  2. LLM이 SQL에서 정확한 숫자, ChromaDB에서 의미 컨텍스트를 받도록 구분
  3. 임베딩 문서 형식 개선
    • 현재: "Clicks: 150" 같은 수치를 텍스트에 포함 → 벡터 공간에서 의미 없음
    • 개선: 수치를 메타데이터로 분리하여 검색 후 첨부 → 검색 품질 향상

최종 평가

이 도구는 패턴 발견, 기회 발굴, 데이터 기반 콘텐츠 추천에 충분히 잘 작동한다. 범용 SEO 조언 대신 실제 데이터로 뒷받침된 조언을 얻는다.