파이썬을 활용한 '키워드 수집 → 뉴스 검색 → 본문 추출 과정'

파이썬을 활용한 '키워드 수집 → 뉴스 검색 → 본문 추출 과정'

파이썬을 활용해 "키워드 수집 → 뉴스 검색 → 본문 추출"로 이어지는 데이터 수집 자동화 과정을 단계별 코드 예시와 함께 설명해 드릴게요.


1. 파이썬 환경 및 라이브러리 준비

먼저 데이터를 수집하고 API를 다루기 위해 필요한 도구들을 설치해야 합니다.

Bash
pip install requests beautifulsoup4 pandas

2. API를 활용한 키워드 수집 (구글 트렌드 예시)

네이버 API는 승인이 필요하므로, 여기서는 라이브러리를 통해 접근 가능한 Google Trends 방식으로 키워드를 가져오는 흐름을 보여드립니다.

Python
import requests
from bs4 import BeautifulSoup
defget_realtime_keywords():
 # 구글 트렌드 RSS 피드 등을 활용해 급상승 키워드를 가져오는 로직 (예시)
 url = "https://trends.google.com/trends/trendingsearches/daily/rss?geo=KR"
 response = requests.get(url)
 soup = BeautifulSoup(response.content, "xml")
 keywords = [item.title.get_text() for item in soup.find_all("item")]
 return keywords[:5] # 상위 5개 키워드 반환
print(get_realtime_keywords())

3. 뉴스 데이터 수집 (네이버 뉴스 검색 API 활용)

가장 핵심적인 부분입니다. 네이버 개발자 센터에서 발급받은 Client IDSecret을 사용합니다.

Python
import os
import requests
defsearch_news(query):
 client_id = "YOUR_CLIENT_ID"
 client_secret = "YOUR_CLIENT_SECRET"
 # 네이버 뉴스 검색 API 엔드포인트
 url = f"https://openapi.naver.com/v1/search/news.json?query={query}&display=3&sort=sim"
 headers = {
 "X-Naver-Client-Id": client_id,
 "X-Naver-Client-Secret": client_secret
 }
 response = requests.get(url, headers=headers)
 if response.status_code == 200:
 return response.json()['items'] # 뉴스 제목, 링크, 요약 정보 반환
 else:
 print("Error Code:" + str(response.status_code))
 returnNone
# '비트코인' 관련 최신 뉴스 3개 가져오기
news_list = search_news("비트코인")

4. 뉴스 본문 크롤링 (BeautifulSoup 활용)

API가 제공하는 것은 '요약'일 뿐입니다. AI가 풍부한 내용을 쓰게 하려면 원문 링크에 접속해 본문을 긁어와야 합니다.

Python
defget_news_content(url):
 try:
 headers = {"User-Agent": "Mozilla/5.0"}
 res = requests.get(url, headers=headers)
 soup = BeautifulSoup(res.text, "html.parser")
 # 일반적인 뉴스 사이트의 본문 태그를 찾아 추출 (사이트마다 다를 수 있음)
 # 예: <article> 혹은 class가 'article_view'인 부분
 content = soup.find('article') or soup.find('div', class_='article_body')
 return content.get_text(strip=True) if content else"본문을 찾을 수 없습니다."
 except:
 return"접근 제한된 사이트입니다."
# 첫 번째 뉴스 기사의 본문 가져오기
if news_list:
 full_text = get_news_content(news_list[0]['link'])
 print(full_text[:200]) # 앞부분 200자만 출력

5. 요약 및 다음 단계 연동

이렇게 수집된 full_text를 이제 OpenAI GPT API로 넘겨주면 됩니다.

  1. Input: 수집된 뉴스 본문 + 키워드

  2. Prompt: "위 뉴스 내용을 바탕으로 블로그 포스팅을 작성해줘. 말투는 친근하게 해주고 관련 해시태그도 5개 뽑아줘."

  3. Output: AI가 작성한 블로그 글 완성

구현 시 주의사항

  • Rate Limit: API는 호출 횟수 제한이 있습니다. 너무 빠르게 요청하면 차단될 수 있으니 time.sleep(1) 등을 사용해 간격을 두세요.

  • robots.txt: 크롤링 전 해당 사이트가 자동 수집을 허용하는지 확인해야 합니다. (네이버 뉴스 API를 통해 제공되는 링크는 대부분 요약본 활용을 권장합니다.)

이 코드를 하나의 파일로 합쳐 for문을 돌리면, 1분 안에 수십 개의 뉴스 본문을 수집하는 자동화 파이프라인의 기초가 완성됩니다! 혹시 특정 단계(예: GPT 연동 코드)가 더 궁금하신가요?


직원 두 명을 AI로 고용하기 프로젝트, 프롬프트 하나로 2단계 반자동 소싱 시스템 만들기

직원 두 명을 AI로 고용하기 프로젝트,  프롬프트 하나로 2단계 반자동 소싱 시스템 만들기

다음은 이 글을 보고 “바로 2단계 반자동까지 구현해보자”는 흐름으로 가려면, 구조를 개념 → 설계 → 구현 예시 → 체크리스트 순으로 잡고 시작합니다.

직원 두 명을 AI로 고용하기 프로젝트,  프롬프트 하나로 2단계 반자동 소싱 시스템 만들기

이 글의 구조는 아래와 같습니다.


1. 왜 완전 자동보다 반자동이 먼저인가

처음부터 “완전 자동”을 노리면, 실제 운영에서는 생각보다 빨리 벽을 만납니다. 특히 이커머스 쪽은 정책 위반, 잘못된 상품 정보, 가격 오류 등이 한 번 사고 나면 바로 계정·브랜드에 타격이 들어옵니다.

완전 자동의 대표적인 리스크는 세 가지 정도로 정리할 수 있습니다.

  • 정책 위반·잘못된 상품 등록 위험
    • AI가 만든 설명/번역·카테고리가 마켓 정책과 어긋나면, 판매 중지·패널티로 이어질 수 있습니다.
  • 디버깅 난이도
    • “어느 단계에서 잘못됐는지”를 찾기 어렵기 때문에, 문제가 생기면 전체 자동화를 멈춰야 할 때가 많습니다.
  • 데이터 품질 문제
    • 초기에는 소스 데이터·룰이 덜 정제되어 있기 때문에, 자동으로 돌릴수록 “엉뚱한 결과를 크게 키워버리는” 경우가 생깁니다.

반대로, 반자동으로 시작하면 얻는 장점이 분명합니다.

  • 기존 업무 플로우를 크게 바꾸지 않는다.
    • 여전히 엑셀/CSV, 기존 대량 등록 도구를 쓰면서, 중간 몇 단계를 AI로 치환하는 수준입니다.
  • 중요한 결정은 사람이 쥐고 있다.
    • “마지막으로 올릴 상품을 고르는 일”은 사람이 하기 때문에, 사고가 나도 범위가 제한적입니다.
  • 실패해도 회복이 쉽다.
    • GPT/스크립트가 만들어낸 중간 결과가 마음에 안 들면, 그냥 그 회차 파일만 버리면 되고, 기존 방식으로 다시 하면 됩니다.

그래서 이 글의 목표는 거창하지 않습니다.

“오늘 저녁에라도 써볼 수 있는, GPT 프롬프트 + CSV + 간단 스크립트 기반의 반자동 구조 하나 만들기.”

완전 자동은 그다음 단계의 이야기로 남겨 두고, 먼저 2단계 반자동을 돌려보면서 룰과 데이터를 다듬는 것이 현실적인 순서입니다.


2. 우리가 이미 갖고 있는 것: GPT 프롬프트 + CSV

2편까지 따라왔다면, 사실 반자동에 필요한 재료는 거의 다 갖고 있습니다.

  • 재사용 가능한 GPT 프롬프트 템플릿
    • 입력: 카테고리, 키워드, 가격대, 리뷰 수, 평점, 제외 키워드/브랜드
    • 출력: CSV 형식의 상품 리스트
  • 기본 CSV 구조
    • 최소형: 상품명,URL
    • 확장형: 상품명,URL,가격,평점,리뷰수

블로그에서는 여기서 실제 CSV 한 덩어리를 예시로 보여주면 좋습니다. 예를 들어:

상품명,URL,가격,평점,리뷰수
Example Cordless Vacuum A,https://www.amazon.com/dp/AAAAAAA,199.99,4.5,1234
Example Cordless Vacuum B,https://www.amazon.com/dp/BBBBBBB,149.00,4.3,845
Example Cordless Vacuum C,https://www.amazon.com/dp/CCCCCCC,219.50,4.6,532

이때 강조하고 싶은 메시지는 딱 하나입니다.

“GPT가 내보내는 이 CSV 한 파일이, 앞으로 우리가 만들 반자동 시스템의 입력 표준(Input Schema)이 된다.”

입력이 표준화되어 있으면,

  • 중간에 낀 스크립트/툴을 갈아끼우기 쉽고
  • 나중에 완전 자동으로 갈 때도 API·에이전트가 이 포맷만 맞춰서 읽으면 되기 때문에
  • 전체 시스템이 훨씬 단순해집니다.

3. 반자동 구조 전체 그림: 사람과 에이전트의 역할 분리

이제 2단계 반자동 구조를 한 문장으로 정리해 봅니다.

“GPT는 후보를 모으고, 미니 에이전트(스크립트)는 1차 필터와 계산을 해주고, 사람은 마지막으로 올릴 상품만 고른다.”

조금 더 구체적으로 나누면 역할은 이렇게 됩니다.

  • GPT 봇
    • 프롬프트를 받아 후보 URL CSV를 만든다.
  • 미니 에이전트(스크립트/툴)
    • gpt_sourcing.csv를 읽는다.
    • 중복·금지 키워드·기본 마진 기준으로 1차 필터링.
    • 환율·마진율을 고려해 예상 판매가 계산.
    • 사람이 보기 편한 형태의 candidate_for_upload.csv를 생성.
  • 사람
    • candidate_for_upload.csv를 열어 필터를 돌려 보고, 이상한 상품을 제외.
    • “이건 올리자” 싶은 상품만 남긴 final_upload.csv를 만든다.
    • 기존에 쓰던 “대량 등록 프로그램/마켓 양식”에 final_upload.csv를 넣어 배치 업로드.

이 섹션에서는 코드를 깊게 파고들기보다, “누가 언제 무엇을 눌러야 하는지”를 중심으로 설명해 주는 게 좋습니다.

예를 들어, 하루 작업 플로우를 이렇게 써볼 수 있습니다.

  1. 오전 10시 – GPT 봇에 프롬프트 입력 → gpt_sourcing.csv 받기
  2. 오전 10시 10분 – 미니 에이전트 스크립트 실행 → candidate_for_upload.csv 생성
  3. 오전 10시 15분 – 파일을 엑셀로 열어 필터링/정렬로 최종 후보만 남기기
  4. 오전 10시 30분 – final_upload.csv로 저장 후, 마켓 대량 등록 양식에 업로드

즉, 사람이 하는 일은 “맨 앞 GPT 프롬프트 한 번 + 맨 끝 최종 승인 한 번”으로 줄어드는 대신, 중간의 반복적인 필터링·계산 작업은 스크립트가 눌러주는 구조입니다.


4. 단계별 구현 ① – GPT 봇으로 후보 리스트 받기

이제 실제로 반자동 구조를 만들기 위한 첫 단계, 후보 리스트 받기를 정리해 보겠습니다.

4-1. 프롬프트 템플릿 다시 한 번

우리가 사용할 프롬프트는 2편에서 만든 템플릿의 “간단 버전”입니다. 예를 들어:

너는 아마존 상품 소싱을 위한 리서처다.

목표:
아래 조건에 맞는 상품을 아마존에서 찾아,
상품 30개의 리스트를 만들어라.

검색 조건:
- 마켓: amazon.com 기준으로 생각한다.
- 카테고리: [카테고리명]
- 핵심 키워드: [키워드1], [키워드2]
- 가격대: [최소 가격] ~ [최대 가격] 달러
- 최소 리뷰 수: [리뷰 수]개 이상
- 최소 평점: [평점]점 이상
- 제외 브랜드: [브랜드1], [브랜드2]
- 제외 키워드: [키워드1], [키워드2]

출력 형식:
- 설명 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 "상품명,URL,가격,평점,리뷰수" 헤더를 넣어라.
- 각 줄에는 다섯 개 값을 쉼표(,)로 구분해 넣어라.
- 예시:
  상품명,URL,가격,평점,리뷰수
  Example Product,https://www.amazon.com/dp/xxxxxxx,199.99,4.5,1234

지금부터 결과만 출력해라.

실제 사용할 때는 대괄호 부분만 바꿔 쓰면 됩니다.

  • 오늘은: 카테고리 = “cordless vacuum”, 키워드 = “cordless vacuum, stick vacuum”
  • 내일은: 카테고리 = “monitor arm”, 키워드 = “monitor arm, desk mount”

이렇게 카테고리와 키워드만 바꿔 돌려도, 매번 같은 형식의 CSV를 안정적으로 받는 게 핵심입니다.

4-2. 실제 사용 시나리오 예시

글에서는 한 번쯤 이런 식으로 시나리오를 써주면 좋습니다.

  • “월요일에는 무선 청소기, 화요일에는 모니터 암, 수요일에는 게이밍 체어…”
  • 매일 아침 10시에 프롬프트에 카테고리·가격대를 바꿔 넣고 한 번씩만 돌린다.
  • GPT가 내놓은 CSV를 그대로 저장해서 gpt_sourcing.csv로 쓴다.

여기서 중요한 포인트는:

“GPT와의 대화는 매번 다르지만, 결과 파일 형식은 항상 같다.”

라는 걸 강조하는 것입니다. 그래야 뒤에 붙는 스크립트/툴이 흔들리지 않습니다.

4-3. GPT 결과를 CSV로 저장하는 방법

기술에 익숙하지 않은 독자를 위해, “GPT 결과 → 엑셀/구글 시트 → CSV 저장”을 아주 간단히 짚고 넘어가면 좋습니다.

  • 엑셀 기준:

  • GPT가 출력한 내용을 통째로 복사

  • 엑셀 새 시트에 A1 셀부터 붙여넣기
  • 메뉴에서 파일 → 다른 이름으로 저장 → 파일 형식 ‘CSV UTF-8(쉼표로 분리)’ 선택 → 저장
  • 구글 시트 기준:

  • 새 스프레드시트에 붙여넣기

  • 파일 → 다운로드 → CSV(쉼표로 구분) 선택

이렇게 저장한 파일 이름을 gpt_sourcing.csv로 맞추면, 다음 단계의 미니 에이전트 스크립트가 매번 같은 파일 이름으로 읽어올 수 있어서 편합니다.

4-4. 이 단계까지 끝나면 갖게 되는 것

여기까지가 1단계입니다. 이 단계가 끝나면, 폴더 안에는 이런 상태가 됩니다.

  • gpt_sourcing.csv
    • 헤더: 상품명,URL,가격,평점,리뷰수
    • 내용: 오늘 소싱할 후보 30개~100개 정도

즉, “사람이 직접 아마존을 뒤져서 엑셀에 적어 넣던 작업”이 “GPT 프롬프트 한 번 + 복붙 + CSV 저장”으로 바뀐 것입니다.

이제 다음 단계에서는, 이 gpt_sourcing.csv를 읽어서 중복/금지 키워드/마진 기준으로 1차 필터링하고, 사람이 보기 편한 후보 리스트로 바꿔주는 미니 에이전트(스크립트)를 얹으면, 2단계 반자동 구조가 완성됩니다.

원하시면 바로 이어서 “5. 단계별 구현 ② – 스크립트로 반자동 필터·계산 레이어 만들기”를 전체 원고처럼 한 번에 정리해 드릴까요?


5. 단계별 구현 ② – 반자동 필터링/계산 레이어 만들기

이 부분이 “반자동 구현의 핵심”입니다. 툴 종류에 따라 예시를 나눌 수 있습니다. (엑셀·구글 시트 vs 간단 스크립트)

5-1. 엑셀/구글 시트로 구현하는 경우

  • 시트 구조 예시:
    • A열: 상품명
    • B열: URL
    • C열: 원화 환산 가격(수식으로 계산)
    • D열: 예상 마진율
    • E열: 필터 결과(예: “OK/제외”)
    • F열: 최종 등록 여부(체크박스)
  • 수식 예:
    • 달러 → 원화 환산
    • 마진율 계산
    • 특정 키워드가 상품명에 있으면 “제외” 표시
  • 사람이 하는 일:
    • 필터/정렬로 “마진율 낮은 상품, 키워드 포함 상품” 한 번 훑기
    • F열 체크박스로 “등록할 상품”만 TRUE로 만들기

5-2. 간단 스크립트(파이썬 등)로 구현하는 경우

  • 입력: gpt_sourcing.csv
  • 처리:
    • 중복 URL 제거
    • 금지 키워드 포함 상품 필터링
    • 가격·마진 계산
    • 결과에 “추천/주의/제외” 플래그 달기
  • 출력: candidate_for_upload.csv
    • 여기에는 사람이 볼 컬럼만 넣기(상품명, URL, 계산된 판매가, 플래그 등)

이 섹션에서는 “코드 전체”보다는, 입력·출력 구조와 필터링 로직을 개념 위주로 설명하는 게 좋습니다. 

스크립트 기준으로 구현하는 5번 파트부터 본문처럼 살을 붙여 보겠습니다. (언어는 “파이썬 + 하루 한 번 수동 실행/크론”을 전제로 씁니다.)


5. 단계별 구현 ③ – 스크립트로 반자동 필터·계산 레이어 만들기

엑셀/시트로도 어느 정도는 버틸 수 있지만, 소싱 규모가 조금만 커져도 “수동 필터링”이 금방 한계에 옵니다. 이때 제일 가볍게 도입할 수 있는 게 파이썬 스크립트 한 파일입니다.

역할은 단순합니다.

GPT가 만든 gpt_sourcing.csv를 읽어서, 중복·금지 키워드·기본 마진 조건을 1차로 걸러 준 뒤 사람이 검토하기 쉬운 candidate_for_upload.csv로 정리해 주는 작은 에이전트.

5-1. 파일 구조부터 먼저 정한다

먼저, 스크립트가 다룰 파일 이름을 고정해 두는 게 좋습니다.

  • GPT 출력 파일: gpt_sourcing.csv
    • 예: 상품명,URL,가격,평점,리뷰수
  • 스크립트 출력 파일: candidate_for_upload.csv
    • 예: 상품명,URL,원가_원화,예상_판매가,예상_마진율,필터_결과,메모

블로그에서는 이 두 파일의 헤더를 텍스트로 한 번 보여주고, “오늘 우리가 하는 일은 이 입력을 이 출력으로 바꾸는 아주 작은 봇 하나 만드는 것”이라고 잡아 주면 독자가 전체 구조를 쉽게 이해합니다.

5-2. 스크립트가 할 일 정의하기

스크립트의 로직은 대략 이렇게 설계합니다.

  1. gpt_sourcing.csv 읽기
  2. 각 행에 대해:
    • URL 기준으로 중복 제거
    • 금지 키워드(제외 키워드) 체크
    • 원화 기준 원가·판매가·마진율 계산
    • 기준에 못 미치면 “제외” 플래그 달기
  3. 결과를 candidate_for_upload.csv로 저장

블로그에서는 “완전한 파이썬 강의”까지는 필요 없고, “이 정도 스크립트 하나면 반자동이 된다”는 수준의 예시를 보여주는 게 핵심입니다.

5-3. 예시 스크립트 구조(설명용)

아래는 개념을 보여주기 위한 의사코드/예시에 가깝게 작성하면 좋습니다.

import csv

INPUT_FILE = "gpt_sourcing.csv"
OUTPUT_FILE = "candidate_for_upload.csv"

# 환경/설정 값
EXCHANGE_RATE = 1350      # 1달러 → 1,350원
TARGET_MARGIN = 0.3       # 목표 마진율 30%
MARKET_FEE = 0.12         # 마켓 수수료 12%
EXTRA_COST = 0.05         # 기타 비용 5%
EXCLUDE_KEYWORDS = ["adult", "sex", "weapon"]
EXCLUDE_BRANDS = ["Dyson"]  # 필요시 상품명에서 브랜드 필터링

def has_excluded_word(name: str) -> bool:
    lowered = name.lower()
    return any(word in lowered for word in EXCLUDE_KEYWORDS)

def estimate_prices(usd_price: float) -> tuple[float, float, float]:
    # 아주 단순화한 예시: 달러 가격 하나만 기준으로 계산
    base_cost_krw = usd_price * EXCHANGE_RATE
    total_cost = base_cost_krw * (1 + MARKET_FEE + EXTRA_COST)
    # 목표 마진율을 맞추는 판매가 역산
    sale_price = total_cost / (1 - TARGET_MARGIN)
    margin = (sale_price - total_cost) / sale_price
    return base_cost_krw, sale_price, margin

def main():
    seen_urls = set()
    rows_out = []

    with open(INPUT_FILE, newline="", encoding="utf-8") as f:
        reader = csv.DictReader(f)
        for row in reader:
            name = row["상품명"]
            url = row["URL"]
            price_str = row.get("가격", "").replace(",", "").strip()

            # 1) URL 중복 제거
            if url in seen_urls:
                continue
            seen_urls.add(url)

            # 2) 금지 키워드 필터
            if has_excluded_word(name):
                result = "제외_키워드"
                memo = "금지 키워드 포함"
            else:
                result = "검토필요"
                memo = ""

            # 3) 가격/마진 계산
            try:
                usd_price = float(price_str) if price_str else 0.0
            except ValueError:
                usd_price = 0.0

            cost_krw, sale_price, margin = estimate_prices(usd_price) if usd_price > 0 else (0, 0, 0)

            rows_out.append({
                "상품명": name,
                "URL": url,
                "원가_원화": round(cost_krw),
                "예상_판매가": round(sale_price, -1),  # 10원 단위 반올림 예시
                "예상_마진율": round(margin * 100, 1),
                "필터_결과": result,
                "메모": memo,
            })

    fieldnames = ["상품명", "URL", "원가_원화", "예상_판매가", "예상_마진율", "필터_결과", "메모"]
    with open(OUTPUT_FILE, "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(rows_out)

if __name__ == "__main__":
    main()

블로그에서는 이 코드 전체를 그대로 붙이기보다는:

  • 상단 설정 값(EXCHANGE_RATE, TARGET_MARGIN 등)만 따로 강조하고
  • “여기를 본인 숫자에 맞게 바꾸면 된다”는 설명을 달아주면 좋습니다.

또, 파이썬에 익숙하지 않은 독자를 위해:

  • INPUT_FILE는 GPT에서 받은 CSV 파일 이름
  • OUTPUT_FILE는 사람이 열어볼 후보 리스트 파일 이름
  • 필터_결과검토필요인 것만 골라서 최종 업로드 대상으로 쓴다

이 정도만 풀어서 설명해 주면 충분합니다.

5-4. 이 스크립트가 만들어 주는 “반자동 경험”

이 구조까지 구현해 놓으면, 하루 작업 흐름이 이렇게 바뀝니다.

  1. GPT 프롬프트로 gpt_sourcing.csv 받기
  2. 파이썬 스크립트 한 번 실행 → candidate_for_upload.csv 자동 생성
  3. candidate_for_upload.csv를 엑셀/시트에서 열어
    • 필터_결과 != "제외_키워드"
    • 예상_마진율이 너무 낮은 상품 제외
  4. 남은 행만 가지고 마켓 대량 업로드 양식에 맞게 복사/붙여넣기

완전 자동까지는 아니지만, “후보 수집 + 1차 필터 + 가격 계산”이라는 가장 귀찮은 부분은 이미 AI+스크립트에게 넘긴 셈입니다. 사람은 그 결과를 보고 “마지막 승인만 하는 역할”로 내려앉습니다.


이 5번(스크립트 기준 구현) 섹션을 이런 식으로 본문에 넣으면, 독자가 “아, 나도 GPT CSV + 파이썬 파일 하나로 반자동까지는 금방 만들겠다”는 느낌을 받기 좋습니다.

혹시 여기서 더 보고 싶은 건:

  • 마켓별 업로드 양식에 맞춰 컬럼을 리매핑하는 예시
  • 이 스크립트를 매일 한 번 자동 실행하는 crontab 예시

둘 중 어떤 쪽을 먼저 풀어보면 도움이 될까요?

직원 두 명을 AI로 고용하기, 3편 – AI 운영 에이전트의 하루 자동 루틴 설계

직원 두 명을 AI로 고용하기, 3편 – AI 운영 에이전트의 하루 자동 루틴 설계

0. 2편 복습과 3편에서 할 이야기

2편에서는 첫 번째 직원, GPT 리서처 봇을 위한 프롬프트를 설계해서, 매번 같은 구조의 CSV를 뽑아내는 단계까지 만들었습니다. 이 CSV에는 최소한 상품명, URL이 들어 있고, 필요하다면 가격, 평점, 리뷰수 같은 정보도 함께 들어가도록 확장했습니다.

이제 3편에서는 두 번째 직원, AI 운영 에이전트의 업무를 설계합니다. 목표는 단순합니다.

“매일 새벽 05:00에, 어제까지의 데이터를 기준으로 상품을 자동으로 지우고, 추가하고, 갱신하는 루틴을 짠다.”

여기서 중요한 건 에이전트의 “똑똑함”이 아니라, 무엇을 언제 어떻게 할지를 사람 기준으로 먼저 정의하는 것입니다.

직원 두 명을 AI로 고용하기, 3편 – AI 운영 에이전트의 하루 자동 루틴 설계

1. AI 운영 에이전트의 역할 정의

먼저 두 번째 직원의 직무부터 다시 정리합니다. 이 에이전트의 한 줄 정의는 다음과 같습니다.

“매일 정해진 시간에, 소싱 후보와 판매 데이터를 보고 안 팔리는 상품은 정리하고, 새 상품은 올리고, 정보는 최신으로 맞추는 운영 담당자.”

조금 더 쪼개면, 역할은 세 가지입니다.

  • 루틴 1: 상품 소싱 – GPT 봇이 만든 URL 리스트에서 새로운 상품을 가져오기
  • 루틴 2: 상품 정리 – 안 팔리는 상품 자동 삭제/중단
  • 루틴 3: 상품 등록·갱신 – 국내 마켓에 자동으로 올리고, 가격·재고 정보를 최신 상태로 맞추기

실제 개발 구현은 시스템마다 다르겠지만, 이 세 가지 역할을 “사람이 한다면 어떤 순서로 무엇을 보면서 할지” 기준으로 설계해 두면, 나중에 개발자에게 업무를 넘기기도 훨씬 수월합니다.


2. 하루 루틴 전체 그림: 05:00에 한 번 도는 시나리오

운영 에이전트의 하루는 “언제 돌릴 것인가?”에서 시작합니다. 이 글에서는 이해를 돕기 위해 매일 새벽 05:00에 한 번 도는 시나리오로 설명하겠습니다.

큰 흐름은 아래와 같습니다.

  1. 05:00 – 어제 기준 데이터 불러오기
  2. 05:05 – 안 팔리는 상품 필터링 및 삭제/중단
  3. 05:15 – GPT 봇이 만든 CSV에서 신규 상품 읽기
  4. 05:25 – 상품 정보 수집·번역·정제
  5. 05:35 – 마진율·수수료 규칙을 적용해 가격 계산
  6. 05:45 – 국내 마켓별 규칙에 맞춰 자동 등록 또는 정보 갱신
  7. 05:55 – 예외(에러, 정책 위반, 품절 등) 로그 정리 및 요약 리포트 작성

이 루틴을 한 번 잘 만들어 두면, 에이전트는 매일 같은 패턴으로 움직이고, 사람은 그 결과를 요약된 로그만 보고 필요한 곳에만 손을 대면 됩니다.


3. 루틴 1 – 상품 소싱: 신규 상품 가져오기

첫 번째 루틴은 “새 물건 들여오기”입니다. 여기서 에이전트는 GPT 리서처 봇이 만든 CSV 파일을 읽어서, 오늘 새로 올릴 후보 상품을 결정합니다.

3-1. 입력 파일 구조 정의

예를 들어, 우리는 2편에서 이런 헤더를 가진 CSV를 만들었습니다.

  • 최소형: 상품명,URL
  • 확장형: 상품명,URL,가격,평점,리뷰수

에이전트 입장에서는 이 파일을 “오늘 참고할 소싱 후보 리스트”로 바라봅니다. 실제 구현에서는:

  • 파일 경로(예: /data/gpt_sourcing/2026-04-10.csv) 규칙을 정하거나
  • 항상 같은 이름(예: latest_sourcing.csv)으로 덮어쓰게 해 두고
  • 에이전트가 이 파일을 읽어 각 행을 하나의 “후보 상품”으로 처리합니다.

3-2. 소싱 루틴의 단계

소싱 루틴은 대략 아래와 같이 나눌 수 있습니다.

  1. CSV 파일 읽기
  2. 각 행(상품명+URL)에 대해
    • 이미 우리 DB/시트에 등록된 상품인지 확인
    • 이미 등록된 상품이면 “중복 후보”로 표시하고 건너뛰기
    • 신규인 경우에만 “소싱 대상”으로 목록에 추가
  3. 오늘 처리할 최대 신규 상품 수를 제한 (예: 하루 50개까지만)

이렇게 해서, GPT 봇이 가져온 수십~수백 개 후보 중에서 “오늘 실제로 자동 등록까지 진행할 대상”만 추립니다.


4. 루틴 2 – 안 팔리는 상품 자동 삭제/중단

두 번째 루틴은 “쌓아두기만 하는 재고를 정리하는 일”입니다. 사람이 직접 한다면, 대충 이런 기준으로 볼 것입니다.

  • 최근 30일 동안
    • 판매 0건
    • 상세페이지 조회(유입) 거의 0
  • 경쟁 상품 대비 가격이 이미 충분히 낮은데도 반응이 없다
  • 재고·배송 리스크가 큰 상품

이걸 에이전트 관점에서 룰로 바꾸면 다음과 같습니다.

4-1. 안 팔리는 상품 기준 정하기

예시 기준:

  • 최근 30일 판매량 = 0
  • 최근 30일 클릭 수(또는 상세페이지 유입) < 10
  • 등록된 지 45일 이상 지남
  • 가격/마진 조정 시도(예: 1~2회) 후에도 변화 없음

이 네 가지를 모두 만족하는 상품을 “정리 대상”으로 표시합니다. (이 기준은 각자 사업 구조에 맞게 바뀔 수 있습니다.)

4-2. 삭제 vs 중단 전략

완전 삭제가 불안하다면, 단계별로 나눌 수 있습니다.

  • 1단계: “전시 중단” – 마켓에서는 안 보이게 하지만, 내부 데이터에는 남겨둠
  • 2단계: “완전 삭제” – 일정 기간(예: 90일) 더 지켜봤는데도 반응이 없다면 완전 삭제

에이전트 루틴에서는:

  1. 기준에 맞는 상품 리스트를 뽑고
  2. “이번 회차에서 중단/삭제할 상품 수”를 제한(예: 최대 100개)한 뒤
  3. 각 마켓 API로 상태를 변경합니다.

그리고 이 내용을 “오늘 정리된 상품 리스트”로 로그에 남겨, 사람이 나중에 한 번에 확인할 수 있게 합니다.


5. 루틴 3 – 국내 마켓 자동 업로드·정보 갱신

세 번째 루틴은 “올릴 것 올리고, 고칠 것 고치는 일”입니다. 여기서 에이전트가 하는 핵심은 세 가지입니다.

  1. 상품 정보 크롤링·번역·정제
  2. 마진율·수수료를 반영한 가격 계산
  3. 마켓별 필수 옵션에 맞는 업로드/갱신

5-1. 상품 정보 크롤링·번역·정제

소싱 대상 URL이 정해졌다면, 에이전트는 각 URL에서 필요한 정보를 수집합니다.

  • 상품명(영문)
  • 상세 설명
  • 스펙(사이즈, 색상, 소재, 전압 등)
  • 이미지 URL들
  • 원화/달러 가격, 배송비
  • 판매자 정보(브랜드, 셀러 등)

그다음 해야 할 일:

  • 국내 고객 기준으로 보기 좋게 상품명·설명을 번역/요약
  • 마켓 정책에 맞지 않는 표현(과장, 금지 키워드 등) 제거
  • 카테고리 매핑(아마존 카테고리 → 쿠팡/스마트스토어 카테고리 등)

여기서 GPT를 다시 활용해 “번역/요약/카테고리 추천”을 하게 할 수도 있고, 에이전트가 별도의 룰·테이블을 참고하도록 설계할 수도 있습니다.

5-2. 마진율·수수료 반영한 가격 계산

가격 계산은 에이전트에게 넘기는 가장 중요한 설정 값입니다. 예를 들어:

  • 목표 순이익률: 30%
  • 마켓 수수료: 12%
  • PG/결제 수수료: 3%
  • 기타 비용(광고, 운영비 등): 5% 정도 레벨
  • 환율: 1달러 = 1,350원 (일 단위로 업데이트)

에이전트는 이런 값을 입력으로 받아, 아마존 상품 원가·배송비·관부가세를 고려한 후 판매가를 계산합니다.

계산 공식을 글에서 자세히 쓰기보다는, 대략 이런 느낌의 흐름으로 정리하면 됩니다.

  1. 원가(상품+해외배송) × 환율 = 기준 원가(원화)
  2. 기준 원가에 관부가세/수수료를 더해 “총 비용” 계산
  3. 총 비용을 기준으로 목표 마진율이 나오도록 판매가 역산
  4. 마켓 가격 정책(990원, 9,900원 단위 등)에 맞게 반올림

이렇게 계산된 판매가는, 에이전트가 나중에 “가격 조정 루틴”에서도 재사용할 수 있습니다.

5-3. 마켓별 필수 옵션 맞춰 업로드

각 국내 마켓은 요구하는 필수 정보가 조금씩 다릅니다. 예를 들어:

  • 공통: 상품명, 카테고리, 이미지, 가격, 재고, 배송비, 옵션(색상/사이즈)
  • 마켓별:
    • 배송형태(해외직배송/국내발송),
    • 배송비 정책(무료/조건부 무료/고정),
    • 관부가세 안내 문구,
    • 전기·전자 제품의 KC 관련 필드 등

에이전트 설계 시에는 “마켓별 설정 값”을 별도의 설정 파일이나 테이블로 정리해 두는 편이 좋습니다.

예를 들면:

  • margin_target = 0.3
  • exclude_keywords = ["성인", "주류", ...]
  • for_market_A: category_mapping, shipping_type, shipping_fee_policy
  • for_market_B: ...

이렇게 정리해 두면, 에이전트는:

  1. 상품 정보 + 가격 계산 결과를 바탕으로
  2. 각 마켓 API 규격에 맞게 요청을 조립한 뒤
  3. 자동으로 신규 등록 또는 기존 상품 갱신을 실행합니다.

6. 에러·예외 처리 전략

자동화에서 가장 중요한 건 “잘 될 때”가 아니라 “안 될 때”입니다. 운영 에이전트에게 반드시 알려줘야 할 예외 처리 규칙은 대략 다음과 같습니다.

6-1. 잘못된 URL

  • HTTP 오류(404, 500 등)가 나거나,
  • 리다이렉트가 이상하게 걸리는 URL,
  • 로그인/성인인증/차단 페이지로만 가는 URL

→ 이런 경우에는:

  • “소싱 실패”로 표시하고
  • 해당 행을 건너뛰며
  • 로그에 실패 사유: 잘못된 URL 또는 접근 불가를 남깁니다.

6-2. 품절 상품

  • 아마존 쪽에서 품절 또는 “일시 재고 없음” 상태인 상품

→ 신규 등록 단계에서는 제외 → 이미 국내에 등록되어 있는 상품이라면:

  • 전시 중단 또는 “품절 처리” 상태로 전환
  • 로그에 품절에 따른 자동 중단 기록

6-3. 정책 위반 키워드/카테고리

  • 금지 키워드(성인, 의료, 위험물 등)가 상품명·설명에 포함되어 있거나
  • 마켓에서 허용하지 않는 카테고리인 경우

→ 자동 등록/갱신을 막고, “사람 검수 필요” 상태로 별도 리스트에 올립니다. 이 리스트는 사람이 직접 확인해서 “정말 버릴지, 수정해서 살릴지” 판단합니다.

6-4. API 에러·쿼터 초과

마켓 API 호출 중 에러가 발생하면:

  • 재시도 횟수(예: 최대 3회)를 정해 두고
  • 그래도 실패하면 해당 상품만 “실패”로 표시
  • 실패 내역을 로그에 남긴 뒤, 전체 루틴은 계속 진행합니다.

결론적으로, 에이전트는 “문제 있는 상품만 따로 모아서 사람에게 넘기는 역할”까지 해줘야 합니다. 그래야 사람이 매일 로그만 한 번 훑어봐도 전체 상태를 파악할 수 있습니다.


7. 최소 관리 포인트: 사람이 보는 건 딱 두 가지

이제 자동화가 잘 돌아간다면, 사람은 무엇을 해야 할까요? 이상적인 그림에서 사람의 역할은 “모니터링과 예외 처리” 두 가지뿐입니다.

7-1. 매일 아침 확인할 요약 리포트

에이전트가 매일 새벽 루틴을 돌고 나면, 대략 이런 형식의 요약 리포트를 남길 수 있습니다.

  • 오늘 신규 등록 상품: 37개
  • 오늘 전시 중단/삭제 상품: 22개
  • 가격/정보 갱신된 상품: 58개
  • 소싱 실패(잘못된 URL/접근 불가): 5개
  • 정책 위반 의심 상품(사람 검수 필요): 3개

사람은 아침에 이 리포트만 보고:

  • “오늘 자동화가 정상적으로 돌았는지”
  • “내가 직접 봐야 할 상품은 몇 개인지”

를 한눈에 파악하면 됩니다.

7-2. 주기적인 로그 점검

일 단위로는 요약 리포트만 보고, 주 1회 또는 월 1회 정도는 좀 더 긴 로그를 점검하는 것도 좋습니다.

  • 최근 30일 간
    • 신규 등록 수
    • 자동 삭제/중단 수
    • 정책 위반/실패 건수
  • 품목/카테고리별 성과(소싱→등록→판매까지 걸리는 시간 등)

이런 데이터를 보고 룰을 조금씩 조정하는 것이, “사람 직원 2명이 점점 더 일을 잘하게 만드는 과정”과 비슷합니다.


8. 정리: 한 명은 매일 후보를 모으고, 한 명은 매일 관리·등록을 돈다

여기까지 정리하면, 우리가 만든 구조는 이렇게 요약할 수 있습니다.

  • GPT 리서처 봇
    • 매번 같은 구조의 CSV로 “소싱 후보 리스트”를 만든다.
    • 사람 대신 아마존에서 조건에 맞는 상품을 찾아오는 리서처 역할.
  • AI 운영 에이전트
    • 매일 새벽 05:00에 자동으로 루틴을 돌린다.
    • 전날 데이터 기준으로 안 팔리는 상품을 정리한다.
    • GPT 봇이 만든 CSV에서 신규 상품을 가져와 정보 수집·정제·가격 계산을 하고, 국내 마켓에 등록·갱신한다.
    • 잘못된 URL, 품절, 정책 위반 같은 예외를 잡아서 사람에게 로그로 보고한다.

사람이 하는 일은 점점 줄어듭니다.

  • 일일 단위: 요약 리포트 확인 + 예외 몇 건 처리
  • 주간/월간 단위: 룰과 설정 값(마진율, 제외 키워드, 마켓 옵션)을 조정

이 정도면 “사람 직원 두 명이 하던 반복 작업” 상당 부분을 AI 두 명에게 넘긴 셈입니다.


이제 남은 건, 이 구조를 실제 본인 시스템에 맞춰 얼마나 라이트하게 혹은 빡세게 구현할지를 결정하는 일입니다.

다음 단계로, “완전 자동으로 가기 전에 최소 셋업(반자동)부터 시작하는 현실적인 도입 단계”

처음으로
 

직원 두 명을 AI로 고용하기: 2편 – GPT 리서처 봇 프롬프트 설계

직원 두 명을 AI로 고용하기: 2편 – GPT 리서처 봇 프롬프트 설계

0. 1편 요약과 2편에서 할 이야기

1편에서 우리는 “직원 두 명을 AI로 고용한다”는 비유로 전체 구조를 그림으로 그려봤습니다. 한 명은 아마존에서 소싱 후보를 찾아오는 GPT 리서처 봇, 다른 한 명은 매일 새벽에 상품을 정리·삭제·등록하는 AI 운영 에이전트였습니다.

그때 핵심 메시지는 단순했습니다.

  • 사람 직원이 하던 일을
  • “리서치”와 “운영”으로 나누고
  • 각각을 GPT 봇과 에이전트에게 맡긴다.
직원 두 명을 AI로 고용하기: 2편 – GPT 리서처 봇 프롬프트 설계

이번 2편에서 할 일은 그중 첫 번째 직원, GPT 리서처 봇의 업무지시서를 제대로 만들어 주는 것, 즉 프롬프트 설계를 실무적으로 끝까지 뽑아보는 것입니다. 목표는 단 하나입니다.

“복붙해서 쓸 수 있는 프롬프트 템플릿 하나를 만든다.”

이 템플릿만 있으면, 카테고리와 조건만 바꿔서 아마존 소싱 후보 URL 리스트를 안정적으로 뽑을 수 있습니다.


1. GPT 리서처 봇의 역할 재정의

우리가 만들 GPT 봇은 거창한 존재가 아닙니다. 이 봇의 역할을 사람 말로 번역하면 딱 이겁니다.

“아마존에서 조건에 맞는 상품을 찾아, 후보 리스트를 CSV로 정리해 오는 리서처.”

즉, 이 봇은:

  • 하는 일
    • 지정된 카테고리·키워드로 아마존 상품을 찾는다.
    • 가격·리뷰·평점 조건을 만족하는 후보를 추린다.
    • “상품명, URL(또는 추가 정보)” 형태로 정리한다.
  • 하지 않는 일
    • 실제 주문·결제
    • 국내 마켓에 등록
    • 관부가세·수수료 계산
    • 정책 최종 판단

실무에서 가장 많이 하는 실수는 GPT에게 “다 해달라”고 시키는 것입니다. 이 글에서는 애초에 역할을 “리서처”로 좁게 고정해 두고, 나머지는 다음 편에서 나올 운영 에이전트에게 넘기는 구조로 설계합니다.


2. 좋은 프롬프트의 4가지 원칙

GPT에게 “아마존에서 괜찮은 상품 30개만 알려줘”라고만 하면 결과는 매번 들쭉날쭉합니다. 이걸 실무에서 쓰려면, 프롬프트를 “질문”이 아니라 업무지시서 수준으로 만들어야 합니다.

제가 실제로 써 보면서 느낀, 최소한 지켜야 할 4가지 원칙은 아래와 같습니다.

2-1. 역할을 좁게 정의하기

GPT에게 “너는 전문가야”라고만 하면, 도메인이 너무 넓어서 결과가 산으로 가기 쉽습니다. 그래서 이렇게 구체적으로 못을 박습니다.

  • “너는 아마존 상품 소싱을 담당하는 리서처다.”
  • “너는 구매대행을 위한 소싱 후보를 찾아오는 리서처다.”

역할을 이렇게 좁게 정의하면, GPT가 “지금 나한테 기대하는 일”을 명확히 이해합니다.

2-2. 목표를 숫자로 명시하기

“조건에 맞는 상품 여러 개”와 “상품 30개”는 GPT 입장에서 완전히 다릅니다. 프롬프트에는 항상 숫자를 적어 줍니다.

  • “상품 30개 리스트를 만들어라.”
  • “조건에 맞는 후보를 최대 50개까지 찾아라.”

이 한 줄만으로도 결과의 일관성이 훨씬 올라갑니다.

2-3. 조건을 항목별로 쪼개기

사람에게도 “무선 청소기 중 가성비 좋고 리뷰 많은 제품”이라고 말하는 것보다, “카테고리, 가격대, 리뷰 수, 평점, 제외 브랜드, 제외 키워드”로 잘게 쪼개서 지시하는 게 훨씬 명확합니다.

프롬프트에서도 똑같이 합니다.

  • 카테고리
  • 핵심 키워드
  • 가격대
  • 최소 리뷰 수
  • 최소 평점
  • 제외 브랜드
  • 제외 키워드

나중에 이 항목들이 곧 엑셀/CSV의 컬럼이 되기 때문에, 설계 단계에서부터 이렇게 쪼개 두는 것이 중요합니다.

2-4. 출력 형식을 고정하기

실무에서 가장 귀찮은 부분은 “매번 형식이 조금씩 다르게 나오는 것”입니다. 그래서 프롬프트에 아예 이렇게 못을 박습니다.

  • “설명 없이, 결과만 출력해라.”
  • “CSV 형식으로만 출력해라.”
  • “각 줄에는 ‘상품명,URL’ 두 값만 넣어라.”

이 정도만 지켜도, 그냥 복사해서 엑셀에 붙여 넣으면 바로 사용하는 구조가 됩니다.


3. 기본 프롬프트 템플릿 만들기

이제 이 네 가지 원칙을 모두 넣은 기본 템플릿을 하나 만들겠습니다. 이걸 노션이든 문서든 한 번 저장해 두면, 매번 카테고리와 조건만 바꿔서 재사용할 수 있습니다.

3-1. 템플릿 전체

너는 아마존 상품 소싱을 위한 리서처다.

목표:
아래 조건에 맞는 상품을 아마존에서 찾아,
상품 30개의 리스트를 만들어라.

검색 조건:
- 마켓: amazon.com 기준으로 생각한다.
- 카테고리: [카테고리명을 한국어나 영어로 적기]
- 핵심 키워드: [예: wireless vacuum, gaming chair]
- 가격대: [최소 가격] ~ [최대 가격] 달러
- 최소 리뷰 수: [예: 200개 이상]
- 최소 평점: [예: 4.2점 이상]
- 제외 브랜드: [예: Dyson, Apple] (없으면 "없음"이라고 적기)
- 제외 키워드: [예: refurbished, used] (없으면 "없음"이라고 적기)

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절이거나 페이지가 열리지 않는 상품은 제외한다고 가정한다.
- 동일 상품의 색상/옵션만 다른 변형이 너무 많으면, 대표 상품만 1개만 포함한다고 가정한다.
- 조건에 애매하게 맞지 않으면 보수적으로 제외한다고 가정한다.

출력 형식:
- 설명, 서론, 주석 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 개의 값만 넣는다.
- 예시:
  상품명,URL
  Example Product Title,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

3-2. 각 블록에서 중요한 포인트

  • 역할: “리서처”라는 단어를 꼭 넣어, GPT가 분석/평론 대신 “찾아오기”에 집중하게 합니다.
  • 목표: “상품 30개”처럼 개수를 명시해 두어야 출력 행 수가 안정적입니다.
  • 검색 조건: 나중에 파라미터로 돌리기 쉽게, 한 줄에 하나씩 항목을 분리합니다.
  • 검수 규칙: 내가 매번 손으로 지우던 것(품절, 중복, 옵션 중복 등)을 룰로 올려서 GPT에게 떠넘기는 구간입니다.
  • 출력 형식: “설명 없이, CSV만, 이 순서로” 세 가지를 꼭 넣습니다.

4. 실전 예시 1: 무선 청소기 소싱 프롬프트

이제 위 템플릿을 실제 사례에 끼워 넣어 보겠습니다. 상황은 다음과 같습니다.

  • 카테고리: 무선 청소기
  • 가격: 100~250달러
  • 최소 리뷰: 300개 이상
  • 최소 평점: 4.2 이상
  • 제외 브랜드: Dyson
  • 제외 키워드: refurbished, used, renewed

4-1. 완성된 프롬프트 예시

너는 아마존 상품 소싱을 위한 리서처다.

목표:
아래 조건에 맞는 무선 청소기를 아마존에서 찾아,
상품 30개의 리스트를 만들어라.

검색 조건:
- 마켓: amazon.com 기준으로 생각한다.
- 카테고리: 무선 청소기 (cordless vacuum cleaner)
- 핵심 키워드: cordless vacuum, stick vacuum
- 가격대: 100 ~ 250 달러
- 최소 리뷰 수: 300개 이상
- 최소 평점: 4.2점 이상
- 제외 브랜드: Dyson
- 제외 키워드: refurbished, used, renewed

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절이거나 페이지가 열리지 않는 상품은 제외한다고 가정한다.
- 동일 상품의 색상/옵션만 다른 변형이 너무 많으면, 대표 상품만 1개만 포함한다고 가정한다.
- 조건에 애매하게 맞지 않으면 보수적으로 제외한다고 가정한다.

출력 형식:
- 설명, 서론, 주석 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 개의 값만 넣는다.
- 예시:
  상품명,URL
  Example Cordless Vacuum,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

4-2. 기대하는 출력 형태

실제로 돌렸을 때 GPT가 아래와 비슷한 형태로 내주면 성공입니다.

상품명,URL
Example Cordless Vacuum A,https://www.amazon.com/dp/AAAAAAA
Example Cordless Vacuum B,https://www.amazon.com/dp/BBBBBBB
Example Cordless Vacuum C,https://www.amazon.com/dp/CCCCCCC
...

여기서 전체를 복사해서 엑셀/구글 시트에 붙여 넣으면, 바로 소싱 후보 리스트로 사용할 수 있습니다.


5. 실전 예시 2: 여러 카테고리에 재사용하는 마스터 템플릿

좀 더 실무적으로는, 카테고리마다 매번 프롬프트를 새로 쓰기보다는 변수만 바꿔 끼우는 마스터 템플릿이 하나 있으면 편합니다.

5-1. 마스터 템플릿 예시

너는 아마존 상품 소싱을 담당하는 리서처다.

목표:
아래 조건에 맞는 상품을 아마존에서 찾아,
상품 [원하는 개수]개의 리스트를 만들어라.

검색 조건:
- 마켓: [amazon.com / amazon.co.uk / amazon.de 등]
- 카테고리: [예: laptop, office chair, mechanical keyboard]
- 핵심 키워드:
  - [키워드1]
  - [키워드2]
- 가격대: [최소 가격] ~ [최대 가격] [통화 단위, 예: USD, GBP]
- 최소 리뷰 수: [예: 200개 이상]
- 최소 평점: [예: 4.3점 이상]
- 제외 브랜드:
  - [브랜드1]
  - [브랜드2]
- 제외 키워드:
  - [키워드1]
  - [키워드2]

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절/배송 불가/삭제된 페이지는 제외한다고 가정한다.
- 색상, 용량 등만 다른 변형상품은 대표 상품만 포함한다고 가정한다.
- 조건에 정확히 맞지 않으면 과감히 제외한다.
- 동일 브랜드나 동일 시리즈가 너무 많을 경우, 브랜드/시리즈가 다양해지도록 후보를 고른다고 가정한다.

출력 형식:
- 설명 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 값만 넣는다.
- 예시:
  상품명,URL
  Example Product Title,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

5-2. 이렇게 재사용하면 편하다

  • 오늘은 게이밍 체어에 넣고 돌리고,
  • 내일은 27인치 모니터,
  • 모레는 기계식 키보드

이렇게 카테고리·키워드·가격대만 바꿔서 같은 프롬프트를 돌리면, 구조가 통일된 CSV를 계속 받아낼 수 있습니다. 이 CSV는 다음 편에서 다룰 AI 에이전트의 입력 파일이 됩니다.


6. 출력 스펙 확장: 가격·평점·리뷰 수까지 받기

처음에는 상품명,URL만 있어도 충분합니다. 하지만 실제 운영 단계에서는 가격, 평점, 리뷰 수까지 같이 있으면 훨씬 편해집니다.

6-1. 최소형 vs 확장형

  • 최소형 헤더: 상품명,URL
  • 확장형 헤더: 상품명,URL,가격,평점,리뷰수

확장형으로 바꾸려면 프롬프트의 출력 형식 블록만 이렇게 수정하면 됩니다.

출력 형식:
- 설명 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL,가격,평점,리뷰수" 다섯 개 값을 쉼표로 구분해 넣는다.
- 예시:
  상품명,URL,가격,평점,리뷰수
  Example Product,https://www.amazon.com/dp/xxxxxxx,199.99,4.5,1234

이렇게 받아 두면 나중에 에이전트가:

  • 가격대별로 필터링하고,
  • 평점/리뷰 수 기준으로 정렬하고,
  • 마진 계산을 할 때 초기 기준 값으로 활용하는 데 훨씬 유리합니다.

7. 자주 생기는 문제와 디버깅 팁

실무에서 여러 번 돌리다 보면 아래 같은 일이 자주 발생합니다.

7-1. 설명을 자꾸 곁들이는 경우

프롬프트에 분명 “CSV만 출력해라”라고 써도 GPT가 가끔 이런 식으로 말머리를 답니다.

“다음은 조건에 맞는 상품 리스트입니다:” “아래는 요청하신 CSV 형식의 예시입니다.”

이럴 때는 출력 형식 블록을 조금 강하게 바꿔 줍니다.

출력 형식:
- 어떤 설명도 쓰지 말고, 결과만 출력해라.
- 문장, 주석, 해설, 마크다운을 모두 금지한다.
- CSV 형식으로만 출력해라.

그리고 실제 결과를 보고, 혹시 또 불필요한 문장이 섞이면 그 예시를 그대로 보여주며 “이런 문장도 쓰지 말라”고 다시 지시해 줍니다. 이 과정을 두세 번 반복하면 대체로 안정됩니다.

7-2. 출력 형식이 미묘하게 깨지는 경우

예를 들어:

  • 쉼표 대신 세미콜론을 섞는다.
  • URL 끝에 공백이 붙는다.
  • 따옴표를 자동으로 감싸 준다.

이럴 때는 예시 부분을 좀 더 엄격하게 씁니다.

- 값 사이에는 쉼표(,)만 사용하고, 공백을 넣지 마라.
- 따옴표(")를 사용하지 마라.
- 예시:
  상품명,URL
  Example Product,https://www.amazon.com/dp/XXXXXXX

그리고 한 번 돌린 결과를 기준으로, 내가 엑셀에서 손으로 고쳤던 부분을 그대로 규칙으로 올려 줍니다.

7-3. “3번 돌려서 매번 손으로 고친 부분”을 룰로 만들기

프롬프트는 이론적으로 한 번에 완벽하게 만들 수 없습니다. 현실적인 접근은 이렇습니다.

  1. 템플릿을 만든다.
  2. 3번 정도 돌려본다.
  3. 매번 손으로 고친 부분을 기록해 둔다.
  4. 그 부분을 “검수 규칙” 또는 “출력 형식”으로 올려서 프롬프트를 수정한다.
  5. 다시 3번 돌린다.

이 과정을 몇 번만 거치면, 프롬프트가 “현업 기준에 맞게 튜닝된 업무지시서” 수준까지 올라옵니다.


8. 다음 편 예고: 에이전트 하루 자동 루틴으로 연결

여기까지가 2편, GPT 리서처 봇 프롬프트 설계의 전부입니다. 이제 우리는 아래 두 가지를 갖게 되었습니다.

  • 카테고리·조건만 바꿔서 재사용 가능한 프롬프트 템플릿 1개
  • 그 결과로 나오는 CSV 파일(상품명, URL, 필요하면 가격·평점·리뷰 수까지)

3편에서는 이 CSV를 바탕으로, 두 번째 직원인 AI 운영 에이전트의 하루 루틴을 설계합니다.

  • 매일 새벽 05:00에 자동 실행
  • 전날 판매·유입 데이터를 기준으로 “안 팔리는 상품” 자동 삭제
  • GPT 봇이 만든 URL 리스트에서 신규 상품을 가져와 정보 수집
  • 마진율·수수료 규칙을 반영해 국내 마켓에 자동 등록
  • 잘못된 URL, 품절, 정책 위반 키워드가 있을 때의 예외 처리 규칙
  • 사람이 주기적으로 로그만 확인하는 최소 관리 포인트

이렇게 되면, “한 명은 매일 후보를 모으고, 한 명은 매일 관리·등록을 도는” 구조가 완성됩니다. 프롬프트 템플릿을 이미 갖고 있는 지금이야말로, 에이전트의 하루 루틴을 설계하기 가장 좋은 타이밍입니다.

다음 편에서는 이 CSV를 어디에 두고, 어떤 스케줄로 돌리고, 어떤 설정 값(마진율, 제외 키워드, 마켓별 옵션 등)을 넘겨줘야 “사람 직원 2명 수준”에 가까운 자동화가 되는지 이야기해 보겠습니다.


혹시 이 2편 원고에서 먼저 더 살찌우고 싶은 섹션이 있다면(예를 들어 4번 예시를 더 늘리거나, 7번 디버깅 팁에 구체 사례를 추가하는 등), 어느 부분을 더 깊게 보고 싶으신지도 알려 주세요.

하루 자동 루틴을 4개 서브플로우로 나눠 설계:n8n 구현가이드

하루 자동 루틴을 4개 서브플로우로 나눠 설계:n8n 구현가이드

지금 단계에서는 “한 번에 완전 자동화”보다, 작동하는 최소 루틴부터 살리는 설계가 맞습니다. n8n은 트리거, 데이터 정제, 분기, API 호출 순서가 명확해야 돌아가므로, 먼저 하루 자동 루틴을 4개 서브플로우로 나눠 설계하는 것이 안정적입니다.

하루 자동 루틴을 4개 서브플로우로 나눠 설계:n8n 구현가이드

하루 루틴 설계

하루 자동 루틴은 보통 상품 후보 수집 → 필터링/점수화 → 마켓 등록 → 성과 점검 및 정리의 4단계로 끊는 게 가장 관리하기 쉽습니다.  특히 n8n에서는 한 워크플로우 안에 모든 걸 몰아넣기보다, Schedule 또는 Webhook으로 시작하는 분리된 플로우를 만들고 데이터는 Google Sheets나 DB를 중간 저장소로 두는 방식이 디버깅에 유리합니다.

  • 05:00 상품 후보 수집: 아마존 URL/ASIN/카테고리 후보 생성. 
  • 05:20 상품 정보 수집: 제목, 가격, 옵션, 리뷰 수, 브랜드 등 추출. 
  • 05:40 필터링 및 금칙어 제거: 판매 불가 키워드, 브랜드, 카테고리 제외. 
  • 06:00 판매가 계산: 수수료, 배송비, 환율, 목표 마진 반영. 
  • 06:20 상품 등록용 데이터 변환: 쿠팡/네이버 포맷 맞춤. 
  • 06:40 등록 API 호출 또는 업로드 파일 생성. 
  • 17:00 성과 점검: 유입 0, 판매 0, 오류 상품 체크 후 삭제 후보 분리. 
  • 17:20 신규 후보로 교체 등록. 

n8n 워크플로우

현재 미동작이라면, 먼저 아래처럼 4개 워크플로우로 쪼개는 것이 좋습니다.

1) 후보 수집 워크플로우

  • Schedule Trigger
  • Set
  • OpenAI/Gemini용 프롬프트 생성
  • LLM 호출
  • Code
  • Google Sheets 또는 Airtable 저장 

이 플로우의 목적은 “오늘 어떤 카테고리에서 어떤 상품 URL 후보를 모을지” 결정하는 것입니다.  LLM이 직접 아마존 실데이터를 보장해 주는 구조는 약하므로, 실전에서는 LLM은 후보 키워드/후보 URL 패턴 제안용으로 쓰고, 실제 상품 정보는 HTTP Request + 스크래핑 API나 외부 데이터 API로 가져오는 편이 안정적입니다.

2) 상품 상세 수집 워크플로우

  • Webhook 또는 Execute Workflow
  • Read from Sheets
  • Split In Batches
  • HTTP Request
  • Code
  • IF
  • DB 저장  크롤링이 자주 막히므로, n8n에서 HTTP Request 노드로 외부 스크래핑 엔드포인트를 호출하고 결과 JSON을 받는 패턴이 많이 쓰입니다.  이 단계에서 title, price, rating, reviewCount, availability, imageUrls, brand, category, asin 같은 필드를 표준 스키마로 정규화해야 다음 단계가 안 꼬입니다.

3) 등록 준비 워크플로우

  • Trigger
  • DB Read
  • Code로 마진 계산
  • IF로 최소 마진 필터
  • LLM으로 제목/옵션/설명 정리
  • Set으로 마켓 포맷 변환
  • HTTP Request 또는 CSV 생성 

n8n은 JSON 흐름이 강점이므로, 여기서 “원본 상품 데이터”와 “마켓 등록 데이터”를 분리 컬럼으로 관리해야 수정이 쉬워집니다.  등록이 바로 안 되면 처음부터 API 직행하지 말고, 먼저 등록용 CSV/시트 출력이 제대로 나오는지 확인한 뒤 API 연결로 넘어가는 편이 실패를 줄입니다. 

4) 정리/삭제 워크플로우

  • Schedule Trigger
  • 판매/유입 데이터 읽기
  • IF
  • Code로 점수 계산
  • 삭제 후보 시트 저장
  • 승인 후 삭제 API 또는 상태 변경 

처음부터 자동 삭제까지 걸면 사고가 날 수 있으니, 1차는 “삭제 후보 시트 생성”, 2차는 사람이 확인 후 승인, 3차부터 반자동 삭제로 가는 게 안전합니다. 

노드 순서 예시

가장 먼저 살려야 할 최소 동작 워크플로우는 아래 형태입니다. 

노드 순서 예시

  1. Schedule Trigger
  2. Set: today, targetCategory, targetMargin, maxProducts 설정
  3. OpenAI 또는 Gemini 호출: 후보 키워드/후보 URL 리스트 생성
  4. Code: 응답을 배열로 정리
  5. Google Sheets Append: 후보 저장
  6. Split In Batches
  7. HTTP Request: 상품 정보 수집 API 호출
  8. Code: 응답 정규화
  9. IF: 금칙어/브랜드/최소 마진 필터
  10. OpenAI 또는 Gemini 호출: 한국어 상품명/요약 생성
  11. Code: 판매가 계산
  12. Sheets 또는 DB 저장
  13. HTTP Request: 마켓 등록 API 호출 또는 등록 파일 생성 

이 구조는 “LLM은 판단·문장화”, “HTTP Request는 실데이터”, “Code는 계산·정규화”로 역할을 분리하는 형태라서 n8n에서 가장 덜 고장납니다. 

GPT 프롬프트 예시

GPT는 후보 발굴, 제목 정제, 카테고리 매핑, 금칙어 점검 쪽에 쓰는 게 좋습니다. 실시간 가격/재고 소스 역할로 쓰면 불안정합니다. 

1) 후보 상품 URL 기획 프롬프트

당신은 해외구매대행 상품 소싱 어시스턴트다.
목표는 한국 마켓에서 판매 가능한 아마존 상품 후보를 찾기 위한 검색 후보군을 만드는 것이다.

조건:
- 카테고리: 자동차용품
- 특징: 리뷰 수가 너무 적지 않고, 반복 수요 가능성이 있으며, 브랜드 인지도가 있거나 기능이 명확한 상품
- 제외: 식품, 의약외품, 위험물, 성인용품, 상표권 분쟁 가능성이 높은 상품
- 출력: JSON 배열만 출력
- 각 항목 필드: keyword_en, keyword_ko, search_intent, expected_price_band, reason

출력 예시:
[
  {
    "keyword_en": "...",
    "keyword_ko": "...",
    "search_intent": "...",
    "expected_price_band": "20-50 USD",
    "reason": "..."
  }
]

2) 상품명 정제 프롬프트

당신은 쿠팡/네이버 업로드용 상품명 편집자다.
입력된 아마존 상품 정보를 보고 한국 마켓용 상품명을 작성하라.

규칙:
- 과장 표현 금지
- 특수문자 남용 금지
- 브랜드명 + 핵심 기능 + 사용 대상 + 수량 순서 우선
- 45자 이내 3개 버전 제안
- JSON만 출력

입력 데이터:
상품명: {{ $json.title }}
브랜드: {{ $json.brand }}
카테고리: {{ $json.category }}
핵심기능: {{ $json.features }}
수량/옵션: {{ $json.variant_summary }}

3) 판매 금지/주의 판별 프롬프트

당신은 해외구매대행 상품 검수 담당자다.
아래 상품이 한국 오픈마켓 업로드 시 주의가 필요한지 판단하라.

판단 기준:
- 의약품/건강기능식품 오인 가능성
- 인증 필요 가능성
- 위험물 가능성
- 성인용품 여부
- 유명 브랜드 상표권 분쟁 가능성

출력:
{
  "risk_level": "low|medium|high",
  "should_upload": true,
  "reasons": ["..."],
  "warning_tags": ["..."]
}

Gemini 프롬프트 예시

Gemini는 긴 입력 컨텍스트를 읽고 분류·요약하는 데 활용하기 좋으니, 상품 상세 설명 정리와 카테고리 묶음 분석에 적합합니다. 다만 n8n에서 어떤 모델을 붙이든 출력 형식은 반드시 JSON 강제형으로 설계해야 합니다. 

1) 카테고리 묶음 분석 프롬프트

역할:
당신은 아마존 해외구매대행 카테고리 분석가다.

목표:
입력된 상품 후보 목록을 검토하고 한국 마켓에 등록하기 좋은 우선순위를 정한다.

평가 기준:
- 한국 소비자 이해도
- 직관적 기능성
- 계절성
- 리뷰 수/검증 가능성
- 위험도
- 예상 마진

반드시 JSON 배열만 출력하라.
필드:
asin, title, priority_score, margin_score, risk_score, upload_priority_reason

2) 상세페이지 요약 프롬프트

당신은 이커머스 상세페이지 요약 편집자다.
아마존 원문 설명을 한국 소비자가 빠르게 이해할 수 있도록 요약하라.

규칙:
- 의료 효능처럼 보이는 표현 제거
- 4개 bullet 포인트로 요약
- 각 bullet 22자 이내
- 사실 기반 표현만 사용
- JSON 출력

입력:
title: {{ $json.title }}
description: {{ $json.description }}
features: {{ $json.features }}

3) 카테고리 매핑 프롬프트

당신은 상품 카테고리 매핑 엔진이다.
입력된 상품을 아래 국내 마켓 카테고리 후보 중 하나로 매핑하라.

후보:
{{ $json.market_categories }}

상품 정보:
{{ $json.title }}
{{ $json.features }}
{{ $json.category }}

출력:
{
  "best_category": "...",
  "confidence": 0.0,
  "reason": "..."
}

n8n 구현 팁

지금 “워크플로는 미동작”이라면, 보통 원인은 5가지입니다. 

  • Trigger는 되는데 다음 노드 입력 필드 매핑이 비어 있음. 
  • LLM 응답이 텍스트인데 다음 노드가 JSON을 기대함. 
  • HTTP Request 응답 구조가 배열이 아니라 객체인데 Split In Batches를 잘못 씀. 
  • Code 노드에서 return 형식이 n8n item 배열 형식이 아님. 
  • 한 플로우 안에 너무 많은 책임을 넣어 어느 단계에서 죽는지 파악이 안 됨. 

특히 Code 노드는 최종적으로 보통 이런 형식으로 반환해야 다음 노드가 잘 받습니다. 

return items.map(item => {
  return {
    json: {
      ...item.json,
      status: "ready"
    }
  };
});

또한 LLM 뒤에는 거의 항상 Code 또는 Set 노드를 하나 더 둬서 응답을 강제로 정규화해야 합니다. “모델이 알아서 JSON으로 주겠지”라고 두면 다음 노드에서 자주 멈춥니다. 

추천 디버깅 순서

지금은 거대한 자동화보다, 아래 순서로 하나씩 살리는 게 맞습니다. 

  1. Manual Trigger로 시작하는 테스트 워크플로우 하나 생성. 
  2. Set 노드에서 가짜 상품 1개 JSON 수동 입력. 
  3. Code 노드에서 판매가 계산만 먼저 성공. 
  4. 그다음 LLM 노드 붙여 제목 정제만 확인. 
  5. 그다음 HTTP Request 붙여 외부 데이터 1건만 수집.
  6. 마지막에 Sheets 저장 또는 등록 API 연결. 

이렇게 해야 어디서 깨지는지 보입니다. n8n은 “전체 설계”보다 “각 노드의 입출력 JSON 확인”이 디버깅의 핵심입니다. 

원하시면 다음 답변에서 바로
1) n8n 노드별 실제 연결 순서,
2) Code 노드용 자바스크립트 예제,
3) GPT/Gemini를 넣은 실제 JSON 워크플로우 초안
형태로 더 구체화해 드리겠습니다.

 

“직원 두 명을 AI로 고용하기: GPT 봇과 에이전트로 쇼핑몰 자동화 하기

직원 두 명을 AI로 고용하기: GPT 봇과 에이전트로 쇼핑몰 자동화 하기

1. 들어가기

이 글은 “직원 두 명을 AI로 고용한다”는 관점에서 시작합니다.
하나는 아마존에서 소싱 후보를 찾아오는 GPT 리서처 봇, 다른 하나는 매일 새벽에 자동으로 상품을 관리하고 등록하는 AI 운영 에이전트입니다.

우리가 목표로 하는 것은 “멋진 AI 서비스 소개”가 아니라, 지금 당장 쇼핑몰·구매대행 실무에 꽂아서 돌릴 수 있는 구조입니다. 사람이 하던 리서치·등록·정리 업무를 어떻게 나눠서 두 에이전트에게 맡길지, 그리고 그 사이를 엑셀/CSV 파일 하나로 어떻게 이어붙일지를 단계별로 정리해 보겠습니다.

“직원 두 명을 AI로 고용하기: GPT 봇과 에이전트로 쇼핑몰 자동화 하기

글의 흐름은 다음과 같습니다.

1장에서는 전체 그림을 큰 틀에서 훑어보고,
2장에서는 GPT 봇이 “상품 URL 리스트를 어떻게 뽑아 내는지(프롬프트 설계)”를 다루고,
3장에서는 AI 에이전트가 “매일 새벽에 어떤 자동 루틴을 돌리는지”를 설계합니다.
마지막으로 두 시스템을 연결하는 데이터 흐름과, 실무에서 어디까지 자동화하는 것이 현실적인지까지 함께 짚어 보겠습니다.

2. GPT 봇 파트: 상품 URL 리스트 자동 생성

이제 첫 번째 직원, GPT 리서처 봇을 어떻게 설계할지 본격적으로 살펴보겠습니다. 이 파트의 핵심은 “GPT에게 어떤 말을 어떻게 시켜야, 매번 쓸 만한 상품 URL 리스트가 안정적으로 나오느냐”입니다.


2-1. GPT 봇의 역할 정의: “아마존 리서처 직원 한 명”

우선 GPT 봇의 역할을 사람 직원처럼 딱 잘라 정의해 줍니다.
이 봇은 개발자가 아니라, 아마존에서 소싱 후보를 찾아오는 리서처입니다.

  • 하는 일
    • 지정한 카테고리·키워드로 아마존을 검색한다.
    • 가격·리뷰 수·평점 등 조건에 맞는 상품을 추려낸다.
    • 최종적으로 “상품명, 상품 URL” 형태의 리스트를 CSV 형식으로 돌려준다.
  • 하지 않는 일
    • 실제 주문·결제
    • 국내 마켓 등록
    • 세금·관부가세 계산

즉, GPT 봇은 “소싱 후보 리스트”까지만 책임지고, 그 이후의 크롤링·번역·가격 계산·등록은 뒤에 나올 에이전트의 역할로 넘기는 구조입니다.


2-2. 프롬프트 설계 원칙: 업무지시서처럼 쓰기

GPT에게 “대충 잘 찾아줘”라고 시키면, 대충 그 수준의 결과가 나옵니다.
블로그 실전 글에서는 이 부분을 명확히 짚어줘야 합니다. 좋은 프롬프트의 공통 원칙은 다음 네 가지입니다.

  1. 역할을 좁게 정의하기
    • “너는 아마존 상품 리서처다”처럼, 한 가지 역할만 맡긴다.
  2. 목표를 숫자로 정리하기
    • “조건에 맞는 상품 30개 URL 리스트를 만든다”처럼, 개수·목표를 명확히 한다.
  3. 조건을 항목별로 쪼개기
    • 카테고리, 키워드, 가격대, 리뷰 수, 평점, 제외 키워드/브랜드 등으로 나눠 적는다.
  4. 출력 형식을 강하게 고정하기
    • “설명 없이 CSV만 출력”, “한 줄에 ‘상품명, URL’만 출력”처럼 포맷을 못 박는다.

이 네 가지를 만족하면, 프롬프트는 “질문”이 아니라 업무지시서가 됩니다.
아래에서 실제로 쓸 수 있는 템플릿 형태로 정리해 보겠습니다.


2-3. 기본 프롬프트 템플릿: 복붙해서 바로 쓰는 구조

먼저 가장 범용적으로 쓸 수 있는 “기본형 템플릿”입니다.
대괄호 부분만 바꿔 쓰면 되고, 그대로 글에 코드 블록으로 넣어 두면 독자가 복붙해서 테스트해 볼 수 있습니다.

너는 아마존 상품 소싱을 위한 리서처다.

목표:
아래 조건에 맞는 상품을 아마존에서 찾아,
상품 30개의 리스트를 만들어라.

검색 조건:
- 마켓: amazon.com 기준으로 생각한다.
- 카테고리: [카테고리명을 한국어나 영어로 적기]
- 핵심 키워드: [예: wireless vacuum, gaming chair]
- 가격대: [최소 가격] ~ [최대 가격] 달러
- 최소 리뷰 수: [예: 200개 이상]
- 최소 평점: [예: 4.2점 이상]
- 제외 브랜드: [예: Dyson, Apple] (없으면 "없음"이라고 적기)
- 제외 키워드: [예: refurbished, used] (없으면 "없음"이라고 적기)

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절이거나 페이지가 열리지 않는 상품은 제외한다고 가정한다.
- 동일 상품의 색상/옵션만 다른 변형이 너무 많으면, 대표 상품만 1개만 포함한다고 가정한다.
- 조건에 애매하게 맞지 않으면 보수적으로 제외한다고 가정한다.

출력 형식:
- 설명, 서론, 주석 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 개의 값만 넣는다.
- 예시:
  상품명,URL
  Example Product Title,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

이 정도만 해도 “아마존에서 [카테고리] 중 [특징]이 강한 상품 30개 URL만 리스트로 정리해 줘” 수준보다 훨씬 안정적인 결과를 얻을 수 있습니다.


2-4. 실전 예시 1: 무선 청소기 소싱용 프롬프트

이제 템플릿을 실제 상황에 끼워 넣은 예시를 하나 만들어 봅니다.
블로그에서는 “그냥 템플릿”이 아니라, 실제로 돌려볼 법한 구체 예시가 하나 있어야 독자들이 감이 옵니다.

너는 아마존 상품 소싱을 위한 리서처다.

목표:
아래 조건에 맞는 무선 청소기를 아마존에서 찾아,
상품 30개의 리스트를 만들어라.

검색 조건:
- 마켓: amazon.com 기준으로 생각한다.
- 카테고리: 무선 청소기 (cordless vacuum cleaner)
- 핵심 키워드: cordless vacuum, stick vacuum
- 가격대: 100 ~ 250 달러
- 최소 리뷰 수: 300개 이상
- 최소 평점: 4.2점 이상
- 제외 브랜드: Dyson
- 제외 키워드: refurbished, used, renewed

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절이거나 페이지가 열리지 않는 상품은 제외한다고 가정한다.
- 동일 상품의 색상/옵션만 다른 변형이 너무 많으면, 대표 상품만 1개만 포함한다고 가정한다.
- 조건에 애매하게 맞지 않으면 보수적으로 제외한다고 가정한다.

출력 형식:
- 설명, 서론, 주석 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 개의 값만 넣는다.
- 예시:
  상품명,URL
  Example Cordless Vacuum,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

이 프롬프트를 사용하면, GPT가 결과를 다음과 같이 뽑아 주는 것을 기대할 수 있습니다.

상품명,URL
Example Cordless Vacuum A,https://www.amazon.com/dp/AAAAAAA
Example Cordless Vacuum B,https://www.amazon.com/dp/BBBBBBB
...

이 상태에서 전체를 복사해서 엑셀이나 구글 스프레드시트에 붙여 넣으면,
바로 “소싱 후보 리스트”로 활용할 수 있는 데이터가 됩니다.


2-5. 실전 예시 2: 키워드·조건만 바꿔 쓰는 고급 템플릿

조금 더 실무적인 상황을 위해, 변수만 교체해서 여러 카테고리에 재사용할 수 있는 고급형도 하나 만들어 둡니다.
블로그 글에서는 이걸 “마스터 템플릿”처럼 소개해 두면 좋습니다.

너는 아마존 상품 소싱을 담당하는 리서처다.

목표:
아래 조건에 맞는 상품을 아마존에서 찾아,
상품 [원하는 개수]개의 리스트를 만들어라.

검색 조건:
- 마켓: [amazon.com / amazon.co.uk / amazon.de 등]
- 카테고리: [예: laptop, office chair, mechanical keyboard]
- 핵심 키워드:
  - [키워드1]
  - [키워드2]
- 가격대: [최소 가격] ~ [최대 가격] [통화 단위, 예: USD, GBP]
- 최소 리뷰 수: [예: 200개 이상]
- 최소 평점: [예: 4.3점 이상]
- 제외 브랜드:
  - [브랜드1]
  - [브랜드2]
- 제외 키워드:
  - [키워드1]
  - [키워드2]

검수 규칙:
- 중복 상품, 중복 URL은 모두 제거한다.
- 품절/배송 불가/삭제된 페이지는 제외한다고 가정한다.
- 색상, 용량 등만 다른 변형상품은 대표 상품만 포함한다고 가정한다.
- 조건에 정확히 맞지 않으면 과감히 제외한다.
- 동일 브랜드나 동일 시리즈가 너무 많을 경우, 브랜드/시리즈가 다양해지도록 후보를 고른다고 가정한다.

출력 형식:
- 설명 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL" 두 값만 넣는다.
- 예시:
  상품명,URL
  Example Product Title,https://www.amazon.com/dp/xxxxxxx

지금부터 결과만 출력해라.

운영 시에는 이 템플릿을 노션이나 문서에 저장해 두고,
카테고리·키워드·가격대·리뷰 조건·제외 브랜드만 바꿔서 매일/매주 돌리면 됩니다.


2-6. 출력 형식 통일: CSV로 바로 엑셀에 붙여 넣는 구조

프롬프트 설계에서 출력 형식 통일은 생각보다 중요합니다.
이 부분을 대충 두면, 매번 손으로 불필요한 텍스트를 지우게 됩니다.

실무에서 편한 패턴은 다음 두 가지입니다.

  • 최소형: 상품명,URL
  • 확장형: 상품명,URL,가격,평점,리뷰수 (나중에 에이전트에게 넘길 때 더 편해짐)

블로그 글에서는 먼저 최소형으로 설명하고,
“추가로 가격·평점·리뷰 수까지 함께 뽑고 싶다면 이렇게 헤더를 늘리면 된다”는 식으로 확장형 예시도 살짝 보여주면 좋습니다.

예를 들어 확장형은 이렇게 설계할 수 있습니다.

출력 형식:
- 설명 없이 CSV 형식으로만 출력해라.
- 첫 줄에는 헤더를 넣는다.
- 각 줄에는 "상품명,URL,가격,평점,리뷰수" 다섯 개 값을 쉼표로 구분해 넣는다.
- 예시:
  상품명,URL,가격,평점,리뷰수
  Example Product,https://www.amazon.com/dp/xxxxxxx,199.99,4.5,1234

이렇게 맞춰 두면, GPT 출력 → 엑셀/CSV → 자동 소싱 스크립트로 연결되는 흐름이 매우 깔끔해집니다.


2-7. 실무 팁: “한 번에 완벽”보다 “템플릿 고정 후 반복”

마지막으로 블로그 글에서 꼭 짚어주면 좋은 메시지가 하나 있습니다.

  • GPT 프롬프트는 처음부터 완벽하게 만들려 하기보다,
    1) 템플릿을 만들고 → 2) 돌려보면서 조건·검수 규칙을 조금씩 다듬는 것이 현실적인 접근입니다.
  • “이 프롬프트로 3번 돌렸을 때, 매번 사람 손질이 얼마나 필요했는지”를 기준으로
    템플릿을 계속 수정하면, 어느 순간 “복붙만 하면 되는 수준”에 근접하게 됩니다.

이렇게 프롬프트를 재사용 가능한 업무지시서 수준으로 만들고 나면,
다음 단계인 “AI 에이전트가 매일 새벽에 이 결과 파일을 읽어서 소싱·삭제·가격 조정까지 자동으로 돌리는 구조”로 자연스럽게 넘어갈 수 있습니다.


여기까지가 글 본문에서 “2. GPT 프롬프트 설계”를 실구현 관점으로 풀어쓴 골격입니다.
이후 파트에서 이어서, 이 CSV를 에이전트의 “하루 자동 루틴”과 어떻게 연결할지까지 쭉 이어붙이실 건가요, 아니면 우선 이 프롬프트 파트만 완성도 높게 다듬는 데 집중해 볼까요?

 

AI가 자동으로 물건 팔아주고, 월 3천 버는 구조 - 아마존 해외구매대행과 AI 자동화의 실체

AI가 자동으로 물건 팔아주고, 월 3천 버는 구조 - 아마존 해외구매대행과 AI 자동화의 실체

“하루 2~3시간 일하고 월 순수익 3천만 원.” 이 문장만 보면 사기 같지만, 영상 속 MZ 대표의 비즈니스 모델을 구조적으로 뜯어보면 어느 정도 설득력이 있습니다. 이 글에서는 아마존 해외구매대행과 AI 자동화를 결합해 어떻게 월 매출 1억, 순이익 3천만 원 구조를 만들어냈는지 핵심만 정리해 보겠습니다.

AI가 자동으로 물건 팔아주고, 월 3천 버는 구조 - 아마존 해외구매대행과 AI 자동화의 실체

1. 비즈니스의 본질: ‘재고 없는 수입 셀러’

이 대표가 하고 있는 일의 본질은 간단합니다. 미국 아마존에서 판매되는 상품을 한국 소비자들이 쿠팡, 네이버, 11번가 같은 국내 마켓에서 쉽게 살 수 있도록 중간에서 연결해 주는 ‘해외구매대행’입니다. 해외에서 실제 상품을 먼저 사서 쌓아두는 도매상이 아니라, 주문이 들어올 때마다 대신 주문해 주는 구조이기 때문에 재고 부담이 거의 없습니다.

실제 프로세스를 풀어보면 다음과 같습니다. 

먼저 아마존에서 잘 팔리거나, 한국에 없는 상품, 혹은 한국보다 훨씬 저렴한 상품을 찾아냅니다. 그리고 그 상품의 정보(이미지, 옵션, 가격, 설명 등)를 그대로 가져와 국내 마켓에 마진을 붙여 등록합니다. 고객이 쿠팡이나 네이버에서 주문을 하면 그때 아마존에서 해당 상품을 구매해 고객 주소로 발송해 주고, 두 가격 차이에서 이익이 발생하는 구조입니다.

이때 가장 중요한 포인트는 두 가지입니다. 

첫째, 한국에 잘 들어오지 않은 독특한 상품이거나, 

둘째, 한국보다 가격 경쟁력이 있는 상품이어야 한다는 점입니다. 둘 중 하나만 충족해도 팔리지만, 두 조건을 동시에 충족하면 훨씬 잘 팔리는 ‘히트 상품’이 됩니다. 

이 대표는 트레이더스 같은 오프라인 매장을 돌아다니며 어떤 브랜드가 잘 나가는지, 어떤 제품군이 채널 단독 상품으로 들어오는지 확인하면서 이런 힌트를 얻는다고 설명합니다.

2. ‘대박 상품’ 대신 ‘50일에 한 번 팔리는 상품 1만 개’ 전략

많은 초보 셀러들은 하루에 50개씩 나가는 대박 상품을 찾으려고 합니다. 하지만 이 대표의 전략은 정반대입니다. 이미 하루 수십 개씩 팔리는 상품은 셀러 경쟁이 극심해서 늦게 들어가면 가격 경쟁에 말려들기 쉽습니다. 그래서 이 대표는 “50일에 한 번 팔리는 상품, 200일에 한 번 팔리는 상품을 많이 깔아두는 전략”을 사용합니다.

즉, 개별 상품의 회전율은 낮지만, 그런 상품을 수천, 수만 개 단위로 분산해서 올려 놓고 전체 포트폴리오에서 매일 주문이 꾸준히 나오도록 만드는 방식입니다. 한 상품이 며칠에 한 번 팔리든 상관없이, 전체 SKU가 1만 개, 2만 개씩 깔려 있으면 매일 일정량의 주문이 발생합니다. 그 결과 셀러 간 경쟁은 상대적으로 덜하지만, 전체로 보면 안정적인 매출이 나오는 구조가 됩니다.

이 전략이 가능한 이유는 ‘수량이 많아져도 관리 부담이 크게 늘어나지 않는 시스템’을 갖추고 있기 때문입니다. 사람이 손으로 상품을 하나하나 등록하고, 가격을 확인하고, 안 팔리는 상품을 삭제하는 식이라면 물리적으로 불가능한 볼륨입니다. 여기서 AI와 자동화 프로그램이 등장합니다.

3. AI와 프로그램이 맡는 일: 소싱부터 삭제까지 풀 자동화

이 대표의 작업 흐름에서 사람이 하는 일과 AI·프로그램이 하는 일을 나누어 보면 구조가 더 명확해집니다. 사람은 전략과 의사결정을 담당하고, AI는 반복 작업을 처리합니다. 대표적인 역할 분담은 아래와 같습니다.

  • 사람(대표): 어떤 카테고리에 진입할지 결정, 어떤 브랜드나 제품군이 유망해 보이는지 판단, 마진율과 판매 전략 세팅, 정책 변화에 따른 방향 조정.
  • 프로그램/AI: 아마존 상품 대량 소싱, 카테고리별 상품 정보 수집, 국내 마켓 규칙에 맞는 상품 등록, 안 팔리는 상품 자동 삭제, 신규 상품 자동 업로드.

일단 대표는 자신과 동료 셀러들이 요구사항을 모아 프로그램 개발사에 요청해, 아마존 상품을 한 번에 대량으로 수집하고 번역·등록까지 해주는 툴을 만들도록 합니다. 이 툴은 특정 카테고리 링크를 입력하면, 그 안에 있는 상품을 첫 페이지부터 지정한 페이지까지 자동으로 긁어오고, 한국어로 번역해 국내 마켓 형식에 맞게 정리합니다.

또 한 가지 중요한 기능이 ‘자동 정리’입니다. 대표는 매일 오후 5시에 에이전트가 실행되도록 예약을 걸어 두고, 이 에이전트가 마켓 내 상품 데이터를 분석해 유입이 거의 없거나, 전혀 팔리지 않는 상품을 자동으로 찾아 삭제합니다. 동시에 새로 지정한 카테고리에서 신상품을 자동 수집해 빈자리를 채웁니다. 덕분에 상품 풀은 항상 ‘살아 있는 상품들’ 위주로 유지되고, 대표는 직접 상품 하나하나를 검토할 필요 없이 전체 시스템만 체크하면 됩니다.

4. GPT 봇과 AI 에이전트: 사람 직원 두 명 고용한 효과

영상에서 가장 인상적인 부분은 GPT 봇을 이용한 URL 리스트 생성과, 이를 기반으로 한 완전 자동화 루틴입니다. 대표는 ChatGPT 기반으로 “아마존에서 자동차 용품 중 소유가 강한 제품 URL 리스트를 만들어 달라”는 식의 봇을 만들어 사용한다고 설명합니다. 그러면 AI가 조건에 맞는 상품 URL들을 쭉 뽑아 주고, 이 URL들을 프로그램에 넣으면 카테고리 매칭과 수집이 자동으로 진행됩니다.

이 과정은 원래라면 사람이 아마존에서 키워드를 검색해서, 상품을 하나씩 클릭하고, 괜찮아 보이는 제품의 링크를 엑셀에 복사해서 정리해야 하는 작업입니다. AI 봇이 이 과정을 대량으로 처리해 주기 때문에, 대표는 단 몇 번의 명령과 클릭만으로 수십, 수백 개의 상품 후보 리스트를 확보합니다. 이후 카테고리 매칭과 마켓별 옵션 매핑도 AI가 대신 맞춰줍니다.

대표는 이 구조를 “카페나 치킨집에 알바를 두고 사장이 안 나와도 돌아가게 만드는 것과 같다”고 비유합니다. 실제로도 3년 전에는 하루 15시간씩 책상에 앉아 수동으로 작업했지만, 지금은 AI와 프로그램 덕분에 하루 2~3시간만 투자해도 시스템이 돌아간다고 말합니다. AI 에이전트는 ‘상품 찾기, 상품 올리기, 안 팔리는 상품 지우기’라는 3가지 큰 루틴을 사람 대신 실행하는 가상의 직원처럼 작동하고 있습니다.

5. 마진 구조: 30% 순수익이 가능한 이유

영상 속 대표는 월 매출 1억 원에 순수익 30% 정도를 유지하고 있다고 말합니다. 해외구매대행 업계 평균 마진이 7~12%라는 이야기도 있는 것을 감안하면 상당히 높은 수치입니다. 이 숫자가 나오는 배경에는 몇 가지 요소가 있습니다. 먼저 중국이 아닌 아마존을 선택한 이유 중 하나가 정책 변화로 인한 마진율 상향 여지가 있었다는 점입니다.

대표는 상품 가격을 설정할 때, 마켓 수수료와 상품 원가를 모두 고려해 약 30%가 남도록 프로그램에서 기본 마진율을 세팅해 둡니다. 예를 들어 아마존에서 10달러인 상품을 국내 마켓에는 4만 원대에 판매하는 사례처럼, 단순 환율 변환 이상의 가격을 붙이는 경우도 있습니다. 여기에는 해외 배송비, 관부가세, 마켓 수수료, 환율 변동 리스크 등까지 반영해야 하기 때문에 수치만 보고 “폭리”라고 단정하기는 어렵습니다.

결국 핵심은 ‘한국보다 확실히 저렴한 상품’이거나 ‘한국에 없는 상품’을 중심으로 판매한다는 점입니다. 고객 입장에서는 국내에서는 구하기 힘들거나, 직구보다 편하게 살 수 있다면 일정 수준의 가격 프리미엄을 받아들입니다. 대표는 이런 상품군을 위주로 구성해 “판매가에서 모든 비용을 제외하고 30% 정도가 손에 남도록” 시스템을 설계해 둔 것입니다.

6. 초보자가 따라 할 때 현실적인 기대치

이 대표는 4~5년간 여성 의류 쇼핑몰을 운영하며 직접 동대문에서 물건을 떼고 포장까지 하던 경험이 있습니다. 이 경험 덕분에 상품 소싱 감각과 이커머스 운영 흐름을 이미 이해하고 있었고, 그 위에 AI와 프로그램을 얹어 효율을 끌어올린 케이스입니다. 완전히 처음 시작하는 사람과 동일선상에서 비교하기는 어렵습니다.

영상에서도 초반 1년은 월 매출 1천만 원이 될까 말까한 수준이었고, 2~3년 차에 조금씩 올라가다가 아마존과 자동화 시스템을 만난 뒤에 매출이 크게 뛰었다고 합니다. 즉, 이 모델은 분명히 기회가 있지만, ‘지금 당장 시작해서 3개월 만에 월 3천 순이익’ 같은 그림은 현실적이지 않습니다. 초보자라면 처음에는 하루 여러 시간씩 구조를 익히고, 상품 리서치 방법과 마켓 정책을 배우는 기간을 거친 뒤 자동화 수준을 높여가는 방식이 더 현실적입니다.

현실적으로는 퇴근 후 부업으로 시작해서 월 100만~300만 원 수준을 목표로 하되, 시스템화와 자동화를 계속 개선하면서 풀타임 전환이나 고수익 구조를 바라보는 편이 안전합니다. 중요한 건 “AI가 다 해 준다니까 나도 쉽게 되겠지”라는 마인드보다는, “AI를 사람 대신 부려먹을 수 있을 정도로 구조를 이해하겠다”는 관점입니다.

7. 이 글을 기준으로 파생시킬 세부 포스팅 주제

이 본 글에서는 전반적인 구조를 큰 그림으로 다뤘습니다. 이후에는 각 요소를 쪼개서 별도 포스팅으로 확장하면 시리즈 형태로 꾸밀 수 있습니다. 특히 검색 유입을 노리려면 구체적인 키워드로 세분화하는 것이 효과적입니다.

  • 세부글 1: “아마존 해외구매대행 구조 완전 정리 – 재고 없이 시작하는 수입 셀러 모델”
  • 세부글 2: “AI 소싱과 자동 업로드 시스템 세팅 방법 – 하루 2시간으로 돌리는 구매대행 자동화 루틴”
  • 세부글 3: “50일에 한 번 팔려도 괜찮다 – ‘롱테일 상품 1만 개’ 전략으로 경쟁 피하는 법”
  • 세부글 4: “해외구매대행 마진 30%를 만드는 가격 설정 공식과 수수료 계산법”
  • 세부글 5: “초보자가 따라 하면 막히는 구간들 – 계정, 관부가세, 정책 리스크 체크리스트”

이렇게 시리즈를 구성하면 한 편 영상에서 뽑아낼 수 있는 트래픽을 최대화하면서, 독자에게는 “이 블로그에 오면 해외구매대행과 AI 자동화 관련 정보가 체계적으로 정리돼 있다”는 인식을 줄 수 있습니다. 특히 세부글 2와 4는 실무적인 검색어(“구매대행 자동화 프로그램”, “구매대행 마진 계산법”)로 검색 유입을 노리기에 좋습니다.

이 글은 유튜브 영상에 등장한 실제 사례를 바탕으로, 아마존 해외구매대행과 AI 자동화의 구조를 정리한 내용입니다. 다음 글에서는 이 중 ‘AI 소싱 및 자동 업로드 세팅’ 파트를 따로 분리해, 어떤 툴과 워크플로우로 하루 2시간 운영 구조를 만드는지 보다 실무적으로 풀어 보겠습니다.