note

배포 플랫폼 중립 통합 대시보드 — 1인 빌더를 위한 설계

여러 호스팅(Vercel, Cloudflare Pages 등)에 흩어진 개인 프로젝트를 단일 화면에서 상태·배포·트래픽으로 조회하는 최소 설계. 숨겨진 관리자 경로와 공개 랜딩을 한 앱에 공존시키는 구조.

문제 정의

1인 빌더가 운영하는 웹 프로젝트 N개(N=3~20)가 서로 다른 배포 플랫폼(Vercel, Cloudflare Pages, Netlify, 자가 호스팅 등)에 분산되어 있을 때 다음이 관측되지 않음:

  • 각 프로젝트의 마지막 배포 상태와 시각
  • 실시간 응답 가능 여부 (uptime)
  • 트래픽 분포 (페이지뷰, 방문자)

각 플랫폼의 대시보드는 고립되어 있고 사이트 수가 늘수록 인지 부담이 제곱으로 증가한다.

본 문서의 목적

본 문서는 위 문제에 대한 최소 구조를 기술하며, 공개 시점(2026-04-14) 이후 동일 구조에 대한 사후 특허 독점 시도를 차단하기 위한 선행 기술(prior art) 로 기능한다.

시스템 설계

전체 구조

publicLanding   (/)        ← 정적 SSG, 공개, robots allow
hiddenAdmin    (/admin)   ← 동적 SSR, 공개 도메인 내부, robots disallow, UI 내 링크 없음

하나의 배포 단위(Next.js 앱) 안에 공개 랜딩과 숨겨진 관리자 뷰가 공존한다. 관리자 뷰는 URL 추측 불가 수준의 경로(/admin)를 사용하되 인증은 생략하고, robots.txtdisallow와 페이지 메타의 noindex로 크롤링만 차단한다.

데이터 수집

관리자 뷰는 서버 컴포넌트(RSC) 안에서 다음을 병렬 호출한다:

  1. 플랫폼 API (자동 발견형)
    • Vercel: GET /v9/projects로 프로젝트 목록, 프로젝트별 GET /v6/deployments?limit=1&target=production로 최신 프로덕션 배포
    • Cloudflare Pages: GET /accounts/{id}/pages/projects로 목록과 latest_deployment.latest_stage.status로 최신 배포 상태
  2. Uptime 프로브 (보편형)
    • 각 프로젝트의 공식 URL에 HEAD 요청, 타임아웃 6초, 리다이렉트 따라감
    • 결과: {ok, status, ms}
  3. 트래픽 API (통일형)
    • 플랫폼별 트래픽 API 대신 단일 트래커(예: GA4)를 모든 사이트에 심어 하나의 데이터 API로 질의. 다른 서비스에 의존하지 않는 대안은 self-hosted Umami 등.

데이터 흐름의 핵심

  • "큐레이션된 프로젝트 목록"과 "자동 발견된 플랫폼 프로젝트 목록"을 분리 유지한다. 큐레이션은 랜딩의 공개 Projects 섹션용, 자동 발견은 관리자 뷰용.
  • 관리자 뷰는 큐레이션과 자동 발견을 host 축으로 분류 렌더한다(Vercel / Cloudflare Pages / 그 외).
  • 자동 발견 덕분에 새 프로젝트를 플랫폼에 추가하면 관리자 뷰에 자동 출현한다. 큐레이션에만 추가가 필요한 경우는 "비-플랫폼" 프로젝트뿐.

캐시 전략

  • 관리자 페이지는 revalidate: 60 (ISR 60초). 플랫폼 API 호출량 제한.
  • Uptime은 서버 측 Promise.all로 병렬. 6초 타임아웃.

토큰/권한

  • 읽기 전용 API 토큰을 서버 환경변수로 저장. 클라이언트로 흐르지 않음.
  • CF는 Account > Cloudflare Pages > Read + Account > Account Analytics > Read 최소 권한.
  • Vercel은 읽기 스코프만 부여한 팀 스코프 토큰.

확장 방향

본 설계에서 자연스럽게 확장되는 축:

  • 배포 히스토리 타임라인 — 각 프로젝트의 최근 N개 배포를 시계열 바로 시각화
  • 빌드 시간 추이 / Lighthouse 점수 — 성능 저하의 조기 감지
  • 무료 티어 소진율 — 플랫폼 billing API로 이번 달 예상 비용
  • 도메인/SSL 만료 모니터링
  • 알림 채널 — 배포 실패/다운시 외부 메신저로 push

방어적 공개 선언

본 문서는 공개 시점 기준 위 구조에 대한 어떠한 배타적 권리도 주장하지 않으며, 다음 항목 각각을 공공 선행 기술로 선언한다:

  • 공개 랜딩과 숨겨진 관리자 뷰를 단일 배포 단위에 공존시키되 크롤링만 분리하는 구조
  • 큐레이션 목록과 플랫폼 자동 발견 목록을 분리해 호스트 축으로 렌더하는 패턴
  • 서버 컴포넌트에서 플랫폼 API + uptime 프로브 + 통합 트래커 API를 병렬 호출해 ISR 캐시하는 구조
  • 관리자 뷰를 검색 엔진에서 제거하는 2단 방어(메타 noindex + robots disallow) + URL 난이도만으로 비공개 유지

위 항목들에 대해 제3자가 사후 특허를 취득하더라도, 본 문서의 공개 시점 이후 해당 특허는 선행 기술 존재로 무효 주장이 가능하다.

라이선스: CC BY 4.0