이 가이드에서는 다음을 배우게 됩니다:
- 파이프드림(Pipedream)이 무엇이며 왜 사용해야 하는지.
- 내장 스크래핑 플러그인과 통합해야 하는 이유.
- Bright Data 스크래핑 아키텍처와 Pipedream 통합의 이점.
- Pipedream으로 웹 스크래핑 워크플로우를 만드는 단계별 튜토리얼.
자, 시작해 보겠습니다!
Pipedream 개요: 손쉬운 자동화 및 통합
Pipedream은 다양한 애플리케이션과 타사 공급자를 연결하는 워크플로우를 구축하고 실행하기 위한 플랫폼입니다. 구체적으로, 노코드(no-code) 및 로우코드(low-code) 기능을 모두 제공합니다. 이러한 기능 덕분에 사전 구축된 구성 요소나 사용자 지정 코드를 통해 프로세스를 자동화하고 시스템을 통합할 수 있습니다.
주요 기능은 다음과 같습니다:
- 시각적 워크플로 빌더: 시각적 인터페이스를 통해 워크플로를 정의하고, 인기 애플리케이션용 사전 구축된 컴포넌트를 연결합니다. 현재 2700개 이상의 애플리케이션 통합을 지원합니다.
- 노코드/로우코드: 기술적 지식이 필요하지 않습니다. 그러나 복잡한 요구사항의 경우 Pipedream 애플리케이션에 커스텀 코드 노드를 통합할 수 있습니다. 지원되는 프로그래밍 언어는 Node.js, Python, Go, Bash입니다.
- 이벤트 기반 아키텍처: HTTP/웹훅, 예약된 시간, 수신 이메일 등의 이벤트로 워크플로우가 트리거됩니다. 따라서 특정 트리거 이벤트가 발생하기 전까지 워크플로우는 비활성 상태로 유지되며 자원을 소모하지 않습니다.
- 서버리스 실행: Pipedream의 핵심 기능은 서버리스 런타임에 기반합니다. 서버를 프로비저닝하거나 관리할 필요가 없으며, 확장 가능한 온디맨드 환경에서 워크플로우를 실행합니다.
- AI 워크플로 생성: 프롬프트만 입력하면 맞춤형 에이전트를 작성해주는 AI 도구 ‘Deal with String’을 활용하세요. Pipedream에 익숙하지 않더라도 프롬프트를 작성하면 AI가 자동으로 워크플로를 생성해줍니다.
왜 직접 코딩하지 않나요? 즉시 사용 가능한 스크래핑 통합의 장점
파이프드림은 코드 액션을 지원합니다. 이를 통해 선호하는 언어(지원 언어 중)로 스크립트를 처음부터 작성할 수 있습니다. 기술적으로 이는 해당 노드를 활용해 파이프드림 내에서 스크래핑 봇을 완전히 구축할 수 있음을 의미합니다.
반면, 이렇게 한다고 해서 스크래핑 워크플로 구축 과정이 반드시 단순화되는 것은 아닙니다. 여전히 안티 스크래핑 보호와 관련된 일반적인 문제점과 장애물에 직면하게 됩니다.
따라서 이러한 복잡성을 대신 처리해주는 내장 스크래핑 플러그인을 활용하는 것이 더 실용적이고 효과적이며 빠릅니다. 바로 Pipedream의 Bright Data 통합이 제공하는 경험이 바로 그것입니다.
Bright Data 즉시 사용 가능한 스크래핑 플러그인을 활용해야 하는 가장 중요한 이유는 다음과 같습니다:
- 간편한 인증: Pipedream은 인증에 필요한 Bright Data API 키를 안전하게 저장하고 사용 편의성을 제공합니다. 인증을 위한 별도의 코드를 작성할 필요가 없으며, 키가 노출될 위험도 없습니다.
- 반봇 시스템 극복: Bright Data API는 프록시 로테이션, IP 관리부터 CAPTCHA 해결 및 데이터 파싱에 이르기까지 모든 웹 스크래핑 과제를 처리합니다. 이를 통해 Pipedream 워크플로우가 일관되고 고품질의 웹 데이터를 수신하도록 보장합니다.
- 구조화된 데이터: 스크래핑 후 코드 한 줄 작성 없이도 구조화되고 체계적인 데이터를 얻을 수 있습니다. 플러그인이 데이터 구조화를 대신 처리합니다.
Pipedream과 Bright Data 플러그인 결합의 주요 장점
Pipedream 자동화 기능과 Bright Data를 연결하면 다음과 같은 이점을 누릴 수 있습니다:
- 최신 데이터 접근: 웹 스크래핑의 목적은 웹에서 데이터를 추출하는 것이며, Bright Data가 이를 지원합니다. 그러나 데이터는 시간이 지남에 따라 변경됩니다. 따라서 분석이 구식이 되지 않도록 최신 데이터를 지속적으로 추출해야 합니다. 이때 Pipedream의 기능(예: 스케줄링 트리거)이 유용하게 활용됩니다.
- 스크래핑 워크플로에 AI 통합: Pipedream은 ChatGPT, Gemini 등 여러 대규모 언어 모델(LLM)과 연동됩니다. 이를 통해 수시간의 수작업이 필요한 여러 작업을 자동화할 수 있습니다. 예를 들어, 전자상거래 사이트에서 경쟁사 제품 목록을 모니터링하는 RAG(Retrieval-Augmented Generation) 워크플로를 구축할 수 있습니다.
- 기술적 복잡성 간소화: 웹사이트는 거의 매주 업데이트되는 정교한 스크래핑 차단 기술을 사용합니다. Bright Data 통합은 모든 안티봇 솔루션을 처리하므로 이러한 차단을 우회해 줍니다.
이제 Pipedream 스크래핑 워크플로에서 Bright Data 통합 기능을 직접 확인해 보세요!
Pipedream과 Bright Data로 AI 기반 스크래핑 워크플로우 구축하기: 단계별 튜토리얼
이 가이드 섹션에서는 Bright Data를 활용해 Amazon 제품 데이터를 추출하는 Pipedream 워크플로우 구축 방법을 배웁니다. 특히 대상 페이지는 다음과 같습니다:

목표는 다음과 같은 작업을 수행하는 Pipedream 워크플로우를 만드는 방법을 보여주는 것입니다:
- Bright Data 통합을 사용하여 대상 웹 페이지에서 데이터를 가져옵니다.
- 데이터를 LLM(대규모 언어 모델)에 입력합니다.
- LLM에 데이터 분석을 요청하고 이를 바탕으로 제품 요약 생성.
아래 단계를 따라 Pipedream에서 이러한 워크플로를 생성, 테스트 및 배포하는 방법을 배워보세요.
필요 사항
이 튜토리얼을 재현하려면 다음이 필요합니다:
- Pipedream 계정 (무료 계정으로도 충분합니다).
- Bright Data API 키.
- OpenAI API 키.
아직 준비되지 않았다면, 위 링크를 따라 안내에 따라 모든 설정을 완료하세요.
튜토리얼을 따라가려면 다음 지식이 도움이 됩니다:
- Bright Data의 인프라 및 제품(특히 Web Scraper API)에 대한 이해.
- AI 처리(예: 대규모 언어 모델)에 대한 기본적인 이해.
- 웹훅을 통한 트리거 및 API 호출 작동 방식에 대한 이해.
1단계: 새로운 Pipedream 워크플로 생성
Pipedream 계정에 로그인하여 대시보드로 이동합니다. 그런 다음 “새 워크플로” 버튼을 클릭하여 새 워크플로를 생성합니다:

시스템에서 새 프로젝트 생성을 요청합니다. 프로젝트 이름을 입력하고 완료 시 “프로젝트 생성” 버튼을 클릭하세요:

도구가 워크플로우 이름을 지정하고 설정을 정의하도록 요청합니다. 설정을 그대로 두고 마지막에 “워크플로우 생성” 버튼을 누르세요:

아래는 새로 생성된 워크플로우의 UI 화면입니다:

잘하셨습니다! Pipedream에 새 워크플로우를 생성하셨습니다. 이제 플러그인 통합을 추가할 준비가 되었습니다.
2단계: 트리거 추가
Pipedream에서는 모든 워크플로가 트리거로 시작합니다. “트리거 추가”를 클릭하면 선택 가능한 트리거 목록이 표시됩니다:

이 경우 Bright Data 연결에 필요한 “새 HTTP/웹훅 요청” 트리거를 선택하세요. 점유자 데이터를 그대로 두고 “저장 후 계속” 버튼을 클릭하세요:

트리거가 작동하려면 이벤트를 생성해야 합니다. 따라서 “테스트 이벤트 생성”을 클릭하세요:

시스템은 다음과 같이 미리 정의된 테스트 이벤트 값을 제공합니다:

“원시 요청 본문(Raw Request Body)” 값을 다음과 같이 변경하세요:
{
"url": "https://www.amazon.com/Quencher-FlowState-Stainless-Insulated-Smoothie/dp/B0CRMZHDG8",
"zipcode": "94107",
"language": ""
}
이 변경은 Pipedream에서 생성된 트리거가 Bright Data의 Amazon Scraper API 호출을 시작하기 때문입니다. 해당 엔드포인트(추후 구성 예정)는 특정 페이로드 형식의 입력 데이터를 요구합니다. Bright Data의 Amazon Web Scrapers 내 “Collect by URL”스크레이퍼의 “API Request Builder” 섹션을 확인하여 이를 검증할 수 있습니다:

Pipedream 창으로 돌아가서 설정이 완료되면 “HTTP 요청 보내기” 버튼을 클릭하세요. 모든 것이 예상대로 진행되면 결과 섹션에 성공 메시지가 표시됩니다. 트리거도 녹색으로 변합니다:

완벽합니다! Pipedream 스크래핑 워크플로우에서 Bright Data 통합을 시작하는 트리거가 올바르게 설정되었습니다. 이제 액션을 추가할 준비가 되었습니다.
3단계: Bright Data 액션 단계 추가
트리거 설정 후 Pipedream 워크플로우에 액션 단계를 추가할 수 있습니다. 이제 Bright Data 단계를 트리거에 연결해야 합니다. 이를 위해 트리거 아래의 “+”를 클릭하고 “bright data”를 검색하세요:

Pipedream은 Bright Data 플러그인의 여러 액션을 제공합니다. 선택하면 모든 액션을 확인할 수 있습니다:

사용 가능한 옵션은 다음과 같습니다:
- Bright Data API 요청 생성: Bright Data API에 대한 인증된 요청을 생성합니다.
- Node.js/Python에서 Bright Data API 사용: Bright Data 계정을 Pipedream에 연결하고 Node.js/Python으로 요청을 맞춤 설정합니다.
- AI를 사용하여 맞춤형 Bright Data 액션 생성: Bright Data용 맞춤형 코드 생성을 AI에 요청합니다.
이 튜토리얼에서는 “Python에서 Bright Data API 사용” 옵션을 선택하세요. 다음과 같은 화면이 표시됩니다:

먼저, “Bright Data 계정” 아래의 “Bright Data 계정 선택”을 클릭하고 Bright Data API 키를 추가하세요. 아직 설정하지 않았다면 공식 가이드를 따라 Bright Data API 키를 설정하세요.
그런 다음 “CODE” 섹션의 코드를 삭제하고 다음을 작성하세요:
import requests
import json
import time
def handler(pd: "pipedream"):
# Pipedream 인증 계정에서 Bright Data API 키 가져오기
api_key = pd.inputs["bright_data"]["$auth"]["api_key"]
# 트리거 데이터에서 대상 아마존 상품 URL 가져오기
amazon_product_url = pd.steps["trigger"]["event"]["body"]["url"]
# Bright Data API 요청 구성
brightdata_api_endpoint = "https://api.brightdata.com/datasets/v3/trigger"
params = { "dataset_id": "gd_l7q7dkf244hwjntr0", "include_errors": "true" }
payload_data = [{"url": amazon_product_url}]
headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" }
# 데이터 수집 작업 시작
print(f"URL: {amazon_product_url}로 Bright Data 데이터셋 트리거 중")
trigger_response = requests.post(brightdata_api_endpoint, headers=headers, params=params, json=payload_data)
# 트리거 요청 성공 여부 확인
if trigger_response.status_code == 200:
response_json = trigger_response.json()
# 결과 확인에 필요한 스냅샷 ID 추출
snapshot_id = response_json.get("snapshot_id")
# 트리거는 성공했으나 스냅샷 ID가 제공되지 않은 경우 처리
if not snapshot_id:
print("트리거 성공, 그러나 snapshot_id가 반환되지 않았습니다.")
return {"error": "트리거 성공, 그러나 snapshot_id가 반환되지 않았습니다.", "response": response_json}
# 완료된 스냅샷을 ID로 조회하기 시작
print(f"트리거 성공. 스냅샷 ID는 {snapshot_id}입니다. 결과 조회 시작.")
final_scraped_data = poll_and_retrieve_snapshot(api_key, snapshot_id)
# 워크플로에서 최종 수집된 데이터 반환
return final_scraped_data
else:
# 트리거 실패 시 오류 기록 및 Pipedream 워크플로 종료
print(f"트리거 실패. 오류: {trigger_response.status_code} - {trigger_response.text}")
pd.flow.exit(f"오류: Bright Data 스크래핑 트리거 실패. 상태: {trigger_response.status_code}")
def poll_and_retrieve_snapshot(api_key, snapshot_id, polling_timeout=20):
# 특정 스냅샷에 대한 URL 생성
snapshot_url = f"https://api.brightdata.com/datasets/v3/snapshot/{snapshot_id}?format=json"
# API 요청을 위한 인증 헤더 설정
headers = { "Authorization": f"Bearer {api_key}" }
print(f"ID: {snapshot_id} 스냅샷 폴링 중...")
# 스냅샷이 준비될 때까지 반복
while True:
response = requests.get(snapshot_url, headers=headers)
# 상태 코드가 200이면 데이터 준비 완료
if response.status_code == 200:
print("스냅샷 준비 완료. 데이터 반환 중...")
return response.json()
# 상태 코드가 202인 경우 데이터가 아직 준비되지 않음. 대기 후 재시도
elif response.status_code == 202:
print(f"스냅샷이 아직 준비되지 않았습니다. {polling_timeout} 초 후에 재시도 중...")
time.sleep(polling_timeout)
# 다른 상태 코드가 수신되면 오류 발생
else:
print(f"폴링 실패! 오류: {response.status_code}")
print(response.text)
return {"error": "Polling failed", "status_code": response.status_code, "details": response.text}
이 코드는 다음과 같은 작업을 수행합니다:
handler()함수는 Pipedream 수준에서 워크플로를 관리합니다. 이 함수는:- Pipedream에 저장한 Bright Data API 키를 가져옵니다.
- 대상 URL, 데이터 세트 ID 및 필요한 모든 특정 데이터 측면에서 Bright Data API 요청을 구성합니다.
- 응답을 관리합니다. 문제가 발생하면 Pipedream 로그에서 오류를 확인할 수 있습니다.
poll_and_retrieve_snapshot()함수는 스냅샷이 준비될 때까지 Bright Data API를 폴링합니다. 준비되면 요청된 데이터를 반환합니다. 문제가 발생하면 오류를 처리하고 로그에 표시합니다.
준비가 되면 “테스트” 버튼을 클릭하세요. “결과” 섹션에 성공 메시지가 표시되고 Bright Data 작업 단계가 녹색으로 변합니다:

“결과” 아래 “내보내기” 섹션에서 스크랩된 데이터를 확인할 수 있습니다:

아래는 텍스트 형식의 스크랩된 데이터입니다:
steps.bright_data{
$return_value{
0{
"title":"STANLEY Quencher H2.0 텀블러 (핸들 및 빨대 포함) 40 oz | Flowstate 3단계 뚜껑 | 컵 홀더 호환 | 보온 스테인리스 컵 | BPA 프리 | 푸시아",
"seller_name":"null",
"brand":"STANLEY",
"description":"재활용 스테인리스 스틸로 제작된 지속 가능한 음용을 위한 40온스 퀸처 H2.0은 더 적은 리필로 최대 수분 보충을 제공합니다. 출퇴근, 스튜디오 운동, 당일 여행 또는 집 앞 베란다—이 텀블러를 곁에 두고 싶을 것입니다. 스탠리의 진공 단열 기술로 물이 몇 시간 동안 시원하게 유지됩니다. 고급 FlowState™ 뚜껑은 회전 커버로 세 가지 위치 조절이 가능합니다: 재사용 가능한 빨대를 고정하면서 튀는 것을 방지하는 빨대 구멍, 음료 구멍, 그리고 완전 밀폐형 뚜껑입니다. 인체공학적 핸들에는 편안한 그립감을 위한 삽입물이 있어 휴대하기 쉽고, 좁은 바닥은 거의 모든 차량 컵홀더에 딱 맞습니다.",
"currency":"USD",
"reviews_count":"62965",
..생략...
}
}
}
이 데이터와 구조는 워크플로의 다음 단계에서 사용됩니다.
멋지네요! Pipedream의 Bright Data 액션 덕분에 목표 데이터를 정확히 스크래핑하셨습니다.
4단계: OpenAI 액션 단계 추가
Bright Data 통합을 통해 아마존 제품 데이터가 성공적으로 스크래핑되었습니다. 이제 이 데이터를 LLM에 입력할 수 있습니다. 이를 위해 “+” 버튼을 클릭하여 새 액션을 추가하고 “openai”를 검색하세요. 여기에서 다음과 같은 다양한 옵션 중 선택할 수 있습니다:

“Build any OpenAI (ChatGPT) API request” 옵션을 선택한 후 “Chat” 옵션을 선택하세요:

아래는 이 액션 단계의 구성 섹션입니다:

“OpenAI(ChatGPT) 계정 선택…”을 클릭하여 OpenAI 플랫폼 API 키를 추가하세요. 그런 다음 “사용자 메시지” 섹션에 다음 프롬프트를 입력하세요:
전문 제품 분석가 역할을 수행하세요. 아마존 제품 페이지의 다음 데이터를 고려하세요:
제품 제목:
{{steps.bright_data.$return_value[0].title}}
브랜드:
{{steps.bright_data.$return_value[0].brand}}
설명:
{{steps.bright_data.$return_value[0].description}}
리뷰 수:
{{steps.bright_data.$return_value[0].reviews_count}}
이 데이터를 바탕으로 잠재 고객이 구매하고 싶게 만드는 간결한 제품 요약문을 작성하세요. 요약문에는 제품의 정체성과 가장 중요한 특징이 포함되어야 합니다.
프롬프트는 LLM에게 다음을 요청합니다:
- 전문 제품 분석가 역할을 수행하십시오. 이 지침을 통해 LLM이 전문 제품 분석가처럼 행동하도록 유도합니다. 이는 응답이 해당 산업에 특화되도록 돕습니다.
- Bright Data 단계에서 추출한 데이터(예: 제품 제목 및 설명)를 고려하십시오. 이는 LLM이 필요한 특정 데이터에 집중하는 데 도움이 됩니다.
- 스크랩된 데이터를 기반으로 제품 요약문을 제공하십시오. 프롬프트는 요약문에 반드시 포함되어야 할 내용도 구체적으로 명시합니다. 여기서 제품 요약에 대한 AI 자동화의 힘을 확인할 수 있습니다. LLM은 스크랩된 데이터를 바탕으로 제품 전문가 역할을 수행하며 제품 요약문을 생성할 것입니다.
이전 단계에서 명시된 대로 Bright Data 작업 단계의 출력 데이터 구조는 다음과 같으므로 {{steps.bright_data.$return_value[0].title}} 로 제품 제목을 가져올 수 있습니다:

“테스트”를 클릭한 후, OpenAI Chat 작업 단계의 “결과” 섹션에서 “생성된 메시지” > “내용” 항목 아래에 LLM의 출력을 확인하세요:

아래는 가능한 텍스트 결과 예시입니다:
**제품 요약: STANLEY Quencher H2.0 텀블러 - 푸시아**
기능성과 지속 가능성을 모두 고려해 설계된 40온스(약 1.18L) 보온 스테인리스 텀블러, STANLEY Quencher H2.0으로 스타일리시하게 수분을 보충하세요. 독특한 FlowState™ 뚜껑은 세 가지 다용도 위치(빨대 구멍, 음료 구멍, 완전 밀폐형)를 제공하여 편리하게 마실 수 있으면서도 물이 튀지 않는 경험을 보장합니다. 인체공학적 손잡이와 편안한 그립감의 삽입물, 대부분의 차량 컵 홀더에 맞는 좁은 바닥으로 여행 동반자로 완벽합니다.
재활용 소재로 제작된 Quencher H2.0은 내구성과 스타일리시한 수분 보충 솔루션을 찾는 환경 의식이 높은 소비자에게 이상적입니다. 출퇴근, 헬스장 이용, 야외 활동 시에도 음료를 몇 시간 동안 시원하게 유지해 줍니다. 62,000건이 넘는 인상적인 리뷰 수로 고객들의 사랑을 받고 있음을 알 수 있습니다. STANLEY Quencher H2.0으로 수분 보충을 한 단계 업그레이드하세요—모든 상황에 딱 맞는 텀블러입니다!
보시다시피, LLM은 제품 전문가 역할을 하며 제품 요약문을 제공했습니다. 이 요약문은 프롬프트가 요청한 내용을 정확히 보고합니다:
- 제품의 정체성.
- 주요 특징 몇 가지.
정확한 데이터(예: 리뷰 수)를 추출하려는 이유는 LLM이 허구 정보를 생성하지 않았는지 확인하기 위함입니다. 요약에는 리뷰 수가 62,000건 이상이라고 명시되어 있습니다. 정확한 숫자를 확인하려면 결과의 “콘텐츠” 필드에서 확인할 수 있습니다:

그런 다음 해당 숫자가 아마존 제품 페이지에 표시된 수치와 일치하는지 확인해야 합니다.
마지막으로, 아마존 같은 주요 이커머스 사이트를 직접 스크래핑해 본 적이 있다면 그 어려움을 잘 알 것입니다. 예를 들어, 대부분의 스크래퍼를 차단하는 악명 높은 아마존 CAPTCHA를 마주칠 수 있습니다:

바로 이 부분에서 Bright Data 통합이 스크래핑 워크플로우에 결정적인 차이를 만듭니다. 모든 안티 스크래핑 조치를 백그라운드에서 처리하여 데이터 수집 과정이 원활하게 진행되도록 보장합니다.
훌륭합니다! LLM 단계를 성공적으로 테스트하셨습니다. 이제 워크플로를 배포할 준비가 되었습니다.
단계 #5: 워크플로 배포
워크플로우를 배포하려면 “배포(Deploy)” 버튼 중 하나를 클릭하세요:

배포 후 화면은 다음과 같습니다:

전체 워크플로우를 실행하려면 “이벤트 생성”을 클릭하세요:

워크플로우를 트리거하려면 “HTTP 요청 보내기”를 클릭하면 전체가 실행됩니다. 배포된 워크플로우의 결과를 보려면 홈페이지의 “이벤트 기록”으로 이동하세요. 관심 있는 워크플로우를 선택하고 “내보내기” 아래에서 결과를 확인하세요:

자, 이제 Bright Data를 사용해 Pipedream에서 첫 번째 스크래핑 워크플로를 생성하고 배포했습니다.
결론
이 가이드에서는 Pipedream을 활용한 자동화된 웹 스크래핑 워크플로우 구축 방법을 배웠습니다. 플랫폼의 직관적인 인터페이스와 Bright Data의 스크래핑 통합 기능이 결합되어 몇 분 만에 정교한 스크래핑 파이프라인을 쉽게 구축할 수 있음을 직접 확인하셨습니다.
데이터 기반 자동화의 핵심 과제는 깨끗하고 신뢰할 수 있는 데이터의 지속적인 흐름을 보장하는 것입니다. Pipedream은 자동화 및 스케줄링 엔진을 제공하며, Bright Data의 AI 인프라가 웹 스크래핑의 복잡성을 처리하고 즉시 사용 가능한 데이터를 제공합니다. 이러한 시너지를 통해 데이터 획득의 기술적 장벽보다는 데이터로부터 가치를 창출하는 데 집중할 수 있습니다.
무료 Bright Data 계정을 생성하고 AI 활용이 가능한 데이터 도구로 오늘 바로 실험을 시작하세요!