Cloudflare 배포 및 사용 안내
진한 파랑 대시보드에서 뉴스와 블로그를 따로 수집하고, 같은 내용을 묶어 분석합니다. ZIP은 별도 빌드 없이 Cloudflare Pages에 업로드할 수 있습니다.
파일을 직접 열었을 때
ZIP을 완전히 압축 해제하고 index.html을 열면 메뉴, 예시 데이터, 파일 가져오기가 작동합니다. 실제 뉴스·블로그 검색은 로컬 HTML 파일만으로 실행할 수 없습니다. 아래 순서로 Cloudflare Pages에 배포하고 API를 연결해 주세요. 연결 후에는 수집되는 페이지마다 결과 목록과 통계가 갱신됩니다.
1. ZIP 업로드
- Cloudflare 대시보드에 로그인합니다.
- Workers & Pages → Create application → Pages → Direct Upload / Drag and drop 경로를 선택합니다. 화면 명칭은 계정 UI에 따라 조금 다를 수 있습니다. Workers 정적 파일 업로드가 아니라 Pages 프로젝트를 선택하세요.
- 프로젝트 이름을 정하고 archive-insight-cloudflare-v1.1.zip을 업로드합니다. ZIP 최상위에
index.html과_worker.js가 있습니다. - 배포하면
프로젝트명.pages.dev주소가 생성됩니다.
Cloudflare 공식 문서에 따르면 _worker.js는 대시보드의 드래그 앤 드롭 배포를 지원합니다. 일반 functions/ 폴더를 업로드하는 방식과 다릅니다. 공식 Direct Upload 안내
2. 실제 검색 연결
프로젝트의 Settings → Variables and Secrets에서 아래 값을 Production 환경에 등록하세요. 비밀값은 암호화된 Secret으로 저장하고 ZIP이나 HTML에 적지 않습니다.
| 변수 이름 | 값 / 용도 |
|---|---|
APP_ACCESS_TOKEN | 직접 정한 충분히 긴 임의 암호. 검색 API 사용에 필요합니다. 예: 24자 이상의 무작위 문자열. |
BRAVE_API_KEY | Brave Search API 키. 수년 전 기간 검색에 사용합니다. |
NAVER_CLIENT_ID | 네이버 검색 API Client ID. 네이버 검색을 쓸 때 필요합니다. |
NAVER_CLIENT_SECRET | 네이버 검색 API Client Secret. |
- Brave API 대시보드에서 Web Search 사용 권한이 있는 키를 발급합니다. 데이터 보관을 허용하는 이용 조건·요금제를 선택하세요. 요금 및 한도는 제공사에서 확인합니다.
- 선택적으로 네이버 개발자센터에 애플리케이션을 등록하고 검색 API 사용을 설정합니다.
- 환경 변수를 저장한 뒤 같은 ZIP을 새 배포로 다시 업로드합니다. 기존 배포에는 설정이 자동 반영되지 않을 수 있습니다.
- 사이트의 연결 설정에서
APP_ACCESS_TOKEN에 넣었던 암호를 입력하고 연결을 확인합니다. 뉴스·블로그 대상 도메인도 편집할 수 있습니다.
API 키 없이 화면 확인만 하려면 오른쪽 위의 예시 데이터 보기를 누르세요. 예시를 실제 수집 결과로 표시하지 않습니다.
3. 검색과 수집
- 검색어를 쉼표로 구분합니다. 각 검색어를 개별 조회한 뒤 결과를 합칩니다.
- 시작일과 종료일을 선택하고 뉴스, 블로그 또는 둘 다 체크합니다.
- 오래된 자료는 기간 검색 · Brave를 선택합니다. 지정된 도메인을 월별로 조회하고 결과 한도에 걸린 구간은 하루 단위까지 세분화합니다.
- 수집하는 동안 탭을 열어 둡니다. 일시정지하거나 탭을 닫았으면 수집 기록 → 자료 열기 → 이어서 수집으로 재개합니다. 다른 기기에서 이어지지는 않습니다.
- 카테고리, 뉴스·블로그 탭, 결과 내 검색으로 살펴보고 CSV를 내려받습니다.
4. 수집 범위와 분석 기준
- 완전한 전수 수집을 보장하지 않습니다. 검색 제공사의 색인, 날짜 정확도, 조회 한도와 지정 도메인 범위에 따라 누락될 수 있습니다.
- Brave: 사용자 지정 기간으로 조회하며 최대 20건 × 10페이지 후 필요하면 기간을 분할합니다. 검색 결과의 날짜는 색인 날짜로서 게시일과 다를 수 있습니다. 일 단위 한도도 넘으면 수집 상세에 남깁니다. 대상 도메인 밖의 뉴스·블로그는 이 경로로 수집하지 않습니다.
- 네이버: 날짜 범위 요청을 지원하지 않아 최신 결과 최대 1,000건을 받은 후 날짜를 필터링합니다. 과거 자료 전량 수집용으로는 한계가 있습니다.
- 본문: API는 제목·요약·URL·날짜를 제공합니다. 본문 전문 자동 크롤링은 포함하지 않습니다. 본문이 없는 문서는 제목과 요약이 정확히 같을 때만 중복으로 묶습니다. 같은 주제의 다른 내용은 별도 보존합니다.
- 전체 원본: 수집된 서로 다른 URL은 모두 남깁니다. 같은 URL의 반복 검색은 하나의 문서로 관리합니다. 검색 원본 CSV에는 기간 밖, 날짜 미확인, 제외 단어가 있는 문서도 들어갑니다.
- 분석: 검색 작업에서는 날짜가 확인되고 기간·제외어 조건을 충족한 문서를 모두 분석합니다. 가져온 파일은 전체 문서를 분석합니다. 날짜 없는 문서는 연도별 차트에 포함하지 않습니다.
- 중복: 본문을 가져온 문서는 80자 이상 본문이 일치하면 묶고, 그 외는 제목과 30자 이상 요약이 일치할 때 묶습니다. 띄어쓰기와 영문 대소문자를 정규화합니다. 의미 유사도 기반 AI 판정은 포함하지 않습니다.
- 카테고리: 키워드 규칙으로 자동 분류합니다. 각 문서에서 직접 수정할 수 있습니다. 다른 유형의 문서가 하나로 묶이면 최초 대표 문서 유형으로 집계합니다.
수집 상세에서 완료 구간, 기간 분할, 한도 도달과 오류를 확인하고 전체 JSON 백업으로 기록을 보관하세요.
5. 과거 자료 가져오기와 백업
기존 CSV·JSON 자료를 가져오면 검색 API에서 찾지 못한 오래된 문서도 분석할 수 있습니다. 최소 열은 title, url입니다. 선택 열은 type (news/blog), date (YYYY-MM-DD), summary, body, source, category입니다. JSON은 문서 객체 배열 또는 이 사이트에서 내보낸 작업 백업을 받습니다.
수집 원본 CSV를 가져올 때는 body 열이 있으면 본문 중복 분석에 활용합니다. 대표 문서 CSV는 요약용이며 모든 원문 복원에는 전체 작업 백업 · JSON을 사용하세요. 파일 가져오기는 브라우저 안에서 처리됩니다.
6. 오류 해결
- 연결 설정 필요: 환경 변수 이름과 Production 설정, 재배포 여부를 확인합니다.
- 암호 오류: 사이트에 입력한 암호와
APP_ACCESS_TOKEN값이 같은지 확인합니다. - 요청 한도: 자동으로 최대 3회 시도한 후 멈춥니다. 제공사 한도가 회복되면 이어서 수집합니다.
- 결과 없음: 지정 도메인, 날짜, 제외어와 수집 상세를 확인합니다. 날짜 미확인 자료는 전체 원본 CSV에서 확인할 수 있습니다.
- 수집 속도: 제공사 제한을 줄이기 위해 요청 간 약 1초 이상 간격을 둡니다. 탭이 백그라운드로 가면 브라우저가 속도를 늦출 수 있습니다.
개발 및 출처
별도 라이브러리 설치 없이 HTML/CSS/JavaScript와 Cloudflare Pages Advanced Mode로 동작합니다. API 키는 서버 환경에서만 읽습니다. 화면과 예시 데이터는 공개적으로 열리며 실제 검색 호출은 사이트 암호가 필요합니다. 외부 요청은 검색 제공사에만 전송하고 검색 결과 원문 URL을 서버가 임의로 방문하지 않습니다.
Cloudflare Advanced Mode · Brave 날짜·페이지 조회 · 네이버 뉴스 API · 네이버 블로그 API
문서 확인 기준: 2026-09-18. 실제 배포 계정 및 사용자의 API 키 연결은 ZIP 전달 후 사용자가 설정합니다.