본문 바로가기

AI 수익화 실험실

Google Antigravity로 상품 검색 자동화를 시도한 과정

 

1인 기업가로서 가치를 창출하고 업무를 효율화하기 위해 가장 매력적으로 다가오는 영역 중 하나가 바로 '상품 검색 자동화'입니다. 매일 쏟아지는 트렌드 상품을 자동으로 수집하고, 최저가를 분석해 정돈된 엑셀 시트로 만들어 주는 파이프라인을 구축하는 일은 자동화 비즈니스의 첫 단추와 같습니다.

저 역시 "이 파이프라인만 구축해 두면, 트렌드 아이템을 발굴하고 소싱하는 시간이 90% 이상 줄어들겠구나!" 하는 야심 찬 기대로 시스템 개발에 나섰습니다. 하지만 이 간단해 보였던 상품 검색 자동화는 저에게 크나큰 기술적 난관과 실패의 쓴맛을 안겨주었습니다.

노트북 화면을 보며 고민하는 파인선생
노트북 화면을 보며 고민하는 파인선생

웹 스크래핑의 모래성: IP 차단과 태그 변경의 늪

처음에는 아주 간단하게 파이썬의 BeautifulSoup이나 Selenium을 활용해 네이버 쇼핑과 구글 쇼핑의 검색 결과 페이지를 긁어오도록 코드를 짰습니다. 필요한 상품 정보(이름, 가격, 리뷰 수, 썸네일 링크)를 수집하는 데 성공하고 엑셀 파일로 떨어지는 결과를 보며 기뻐했던 것도 잠시였습니다.

본격적으로 수백 개의 키워드를 자동으로 돌리기 시작하자마자, 가차 없는 차단 장벽이 앞을 가로막았습니다.

  • 가차 없는 IP 밴과 캡차(CAPTCHA): 구글과 네이버 같은 대형 포털은 로봇의 무분별한 조회를 귀신같이 잡아내어 IP를 차단하고 캡차 화면을 띄웠습니다.
  • 수시로 바뀌는 HTML 레이아웃: 공들여 파싱해 둔 CSS 셀렉터나 HTML 태그 구조가 며칠만 지나면 포털 사이트 업데이트로 조용히 변경되어, 코드가 허공을 치며 에러를 뿜기 일쑤였습니다.

단순히 웹 화면의 기계적인 요소를 긁어오는 전통적인 방식의 크롤링은 끊임없이 무너지는 모래성에 물을 붓는 것과 다름없다는 사실을 뼈저리게 깨달았습니다.

코드를 작성하며 타이핑하는 파인선생
코드를 작성하며 타이핑하는 파인선생

import requests
from bs4 import BeautifulSoup

def scrape_shopping_results(keyword):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36..."
    }
    url = f"https://search.shopping.example/search?q={keyword}"
    response = requests.get(url, headers=headers)

    if response.status_code != 200:
        print("[🚨 에러] 요청이 차단되었습니다.")
        return []

    soup = BeautifulSoup(response.text, "html.parser")
    items = soup.select(".product_item_class") 
    return items

방향 전환: 지능형 에이전트와 공식 API의 결합

매일 깨지는 코드를 수리하는 비효율을 끝내기 위해, 개발 패러다임을 완전히 바꿨습니다. 웹 화면을 강제로 긁는 것이 아니라, 구글의 공식 Custom Search API를 활용하고 이를 제 AI 에어전트인 Antigravity 인터페이스와 연동하여 '맥락을 이해하며 상품을 탐색하는 구조'로 전환했습니다.

공식 경로를 통한 검색 엔진 접근은 다음과 같은 압도적인 안정성을 제공해 주었습니다.

  • 안정적인 데이터 형식 (JSON): HTML 레이아웃이 아무리 바뀌어도 구글 서버는 항상 일정한 규격의 정돈된 JSON 데이터를 반환하기 때문에 파싱 에러가 원천 차단되었습니다.
  • 에이전트 기반 맥락 필기: 수집된 검색 데이터에서 가짜 상품이나 중복 낚시성 데이터를 AI 에이전트가 사전 분석하여 진짜 가치 있는 타겟 정보만 정제하여 엑셀에 적재하도록 지능화했습니다.

구글 Custom Search API 사용량 모니터링 콘솔
구글 Custom Search API 사용량 모니터링 콘솔

 

import googleapiclient.discovery

def get_clean_search_results(query, api_key, cse_id):
    service = googleapiclient.discovery.build("customsearch", "v1", developerKey=api_key)
    result = service.cse().list(q=query, cx=cse_id).execute()

    clean_items = []
    for item in result.get("items", []):
        clean_items.append({
            "title": item.get("title"),
            "link": item.get("link"),
            "snippet": item.get("snippet")
        })
    return clean_items

공식 API를 통해 데이터를 안전하게 퍼 올리고, 에이전트가 이를 필터링하게 하니 밤새 몇 천 개의 키워드를 자동으로 순회하며 돌려도 차단이나 에러 없이 완벽하게 작동하는 파이프라인이 완성되었습니다.


결론: 깨지기 쉬운 편법보다 견고한 정석이 자동화의 자산입니다

상품 검색 자동화를 직접 헤딩해 가며 얻은 최고의 교훈은 "단순 스크래핑 편법에 의존하는 자동화는 언제든 깨질 수 있는 리스크"라는 점입니다. 1인 기업으로서 장기적으로 안정적인 수익 자동화 파이프라인을 굴리기 위해서는 튼튼한 공식 API와 지능형 에이전트를 결합하는 정석적인 설계를 해야만 합니다.

오늘 기록한 실패 극복 프로세스를 통해 앞으로 파인선생 AI 자동화랩은 크롤링 유지 보수 지옥에서 완전히 벗어나, 수집된 데이터를 비즈니스화하는 본질적인 부분에 온전히 집중할 수 있게 되었습니다.

다음 편에서는 이렇게 모은 트렌드 상품 리스트 정보를 바탕으로 자동으로 블로그 리뷰 초안 원고를 생성하고 임시 저장까지 시키는 '상품 리뷰 자동 작성 파이프라인' 구축 방법을 다뤄보겠습니다.